Guides
Sume guides: the API, Formats, agents, models, media tools and pricing, each answer dated and sourced.

Gift message field in a strict output schema: optional means nullable
In a Sume output_schema every property must be required, so an optional gift message is a string-or-null union, not an omitted key. Here is the shape.

Go: poll a Sume job with a context deadline, next_poll_after_seconds
A Go net/http poller for Sume jobs: 20-minute context deadline, sleeps set by next_poll_after_seconds, stops on data.terminal. Standard library only.

Holiday gift set video from 30 photos: the Sume attachments limit
A gift set has many parts. Sume accepts up to 30 images in attachments and a 30-file media budget per run, so plan which shots go in before you call.

Read-only MCP session lists avatars; create gives insufficient_scope
A hosted MCP connection with read scope can list and search avatars, but paid avatar and video tools return insufficient_scope until you grant write.

How long can your webhook be down? Sume job vs run retry windows
Sume job webhooks retry 10 times, 30 s apart: about 5 minutes. Run webhooks back off to roughly 3 hours. The arithmetic, and what Redeliver covers.

Media import allows about 2 GB, but trim and filter stop at 300 MiB
Sume media import has a practical size cap near 2 GB, while video trim and filter reject sources over 300 MiB with source_too_large. How to plan around the gap.

Instagram Series test: what a 10-episode avatar mini-series costs
Meta is testing Series for episodic Reels. Ten 30-second episodes with one Sume avatar handle cost $55.20 standard, $73.50 plus or $165 max. How to batch it.

Is this video stereo or mono? Read probe audio_channels first
Sume video inspect returns audio_channels, audio_sample_rate and audio_codec. Use them to choose channels and sample_rate for audio detach before you submit.

Java 21: poll many Sume jobs with virtual threads and a Semaphore
Poll 50 Sume jobs from one Java 21 file using virtual threads, a Semaphore cap of 8, and java.net.http. No Maven, no dependencies, runs with java Poll.java.

Sume jobs_wait limits: 20 ids and 55 seconds per call
Hosted Sume MCP jobs_wait takes at most 20 job ids of 256 characters and waits up to 55 seconds. How to wait on a 30-clip storyboard in groups.

Kling 4.0's 3 to 30 seconds, split across Sume models by length
Kling 4.0 spans 3 to 30 s, and Flash 3 to 20 s. No single Sume id covers 3 to 30: Omni 3 to 10, Seedance 2.5 4 to 30, Wan 3.0 2 to 30. A lookup by seconds.

Load-test Sume job polling with k6: reads have their own budget
A k6 script that polls one finished Sume job from 5 virtual users, and what 4,800 reads a minute on Free means for any 429 you see.

Map a bulk queue item index back to a SKU: keep your own ledger
Queue items return index, status and run_id, not your SKU. Save a SKU-by-index table at submit time and join it to the queue receipt when you poll.

OpenRouter video callbacks vs Sume job webhooks: what differs
OpenRouter video callback_url reports completed, failed, cancelled, expired. Sume job webhooks send completed, failed, canceled, signed with HMAC-SHA256.

Price-drop sale videos for 200 SKUs: two bulk queues, one key each
A bulk queue holds at most 100 items. For 200 marked-down SKUs, send two queues, give each its own Idempotency-Key, and track both queue ids yourself.

primary_output_key: which output key is a Sume agent run's headline
Set primary_output_key on a Sume agent run so a backend can read one URL; the receipt resolves it into primary_output_url once the run completes.

Prometheus histogram buckets for Sume video jobs, up to 20 minutes
Pick histogram buckets for submit-to-terminal time on 30-second Seedance 2.5 and other Sume video jobs, so the 20-minute SDK deadline is the last bucket.

Promise.allSettled for a wave of Sume jobs: keep the partial wins
Promise.all throws away nine good Sume videos when one job fails. Use Promise.allSettled over a wave sized to your plan's concurrency, in 30 lines of Node.

Python: quote one 10-second clip across five Sume video models
A Python script that prices a 10-second clip on Seedance 2.5, Omni, Wan 3.0, H3 and H3 Max with Sume's 1.25 multiple and per-job rounding. Run it before a test.

Python requests Retry on POST: safe for Sume only with a key
urllib3 Retry skips POST by default. Allow it for a Sume submit only when every request carries an Idempotency-Key, and retry just 429 and 503.

Realistic AI b-roll in a Short: is the Altered content flag needed?
A realistic generated scene that did not occur needs YouTube's disclosure; a fantasy scene does not. Sort Sume clips before upload using the page's own list.

Reels and Shorts both name 3 minutes: one 180-second master
Instagram does not recommend Reels over 3 minutes to new audiences, and Shorts run up to 3 minutes. Build one 180-second master in Timeline 1.0 for both.

Runway Gen-4 Turbo at 5 credits a second vs Sume 480p video rows
Runway Gen-4 Turbo costs 5 credits ($0.05) per second. Sume's 480p rows for Wan 3.0, MiniMax H3 and H3 Max are $0.0625/s. Ten-second costs compared.

Veo 3.1 audio doubles Runway credits; Omni Flash on Sume does not
On Runway, Veo 3.1 is 20 credits a second silent and 40 with audio; Omni Flash is 10. Dollar costs next to Sume's Omni Flash 1.1 rates.

Seedance 2.0, Fast, Mini and 2.5: a 10-second 720p price ladder
Four Seedance ids are callable on Sume. A 10-second 720p clip is about $1.89 on Mini, $3.03 on Fast, $3.78 on 2.0 and $5.78 on 2.5. Limits for each.

Seedance video agent in ChatGPT and Claude: Sume MCP compared
InfoseekAI put a Seedance video agent into ChatGPT and Claude over MCP on Oct 1, 2026. What a hosted MCP server like Sume's gives you instead, and when.

Speech-to-text price per hour: Scribe, MAI Streaming, Sume
ElevenLabs Scribe v2 is $0.22 per hour, Realtime $0.39, Microsoft MAI streaming $0.54 and Sume STT $0.60. Costs for 1, 10 and 100 hours of audio.

Spend guard layers for an unattended Sume video agent, in order
Five layers cap a Sume agent that runs unattended: key scope, per-run cap, max_spend_usd and dry_run, generation admission, and the wallet. What each one stops.

Square YouTube Short at 1080x1080: set Timeline output size
YouTube classifies square or vertical videos up to 3 minutes as Shorts. Set Timeline 1.0 output width and height to 1080 for square; 1080x1920 for vertical.

Stepping away from a TikTok Shop LIVE: Pause LIVE, not a loop
TikTok Shop's page says to use Pause LIVE when you step away and bars AI or pre-recorded audio. Where a Sume clip belongs, and where it does not, around a LIVE.

Stitch 10-second AI clips into a 3-minute Short with Timeline 1.0
YouTube's AI Shorts clips top out at 10 seconds, but a Short can run 3 minutes. Join clips and a voice track in Timeline 1.0 within its 200 slots and 1,800 s.

Stocking-stuffer gift videos: a bigger spend cap for the hero SKU only
In one bulk queue every item can carry its own generation_spend_cap_usd. Give the hero gift a higher ceiling and cheap stocking stuffers a low one.

Sume 429: read error.details.scope, and rate_limit_unavailable
A Sume 429 names the budget in error.details.scope and gives retry_after_seconds. A degraded rate_limit_unavailable 429 is a different case. Python handler.

Sume schedule run 403: a service-account key cannot start action runs
Starting a Sume schedule run with a service-account key fails with 403 insufficient_scope and service_account_action_runs_unsupported. Use a user API key.

Sume CLI avatar-videos batch: plan, create, watch, result
The Sume CLI batches avatar videos in four steps against local state files. What each step does, and why the per-item idempotency key makes reruns safe.

One Sume schedule on a clock and on call: api_trigger_enabled
A Sume cron schedule can also set api_trigger_enabled to accept API runs. trigger_type is fixed at create time, so choose once. Overlap defaults to skip.

Sume MCP OAuth metadata: curl the well-known URLs before you connect
Before a client fails at sign-in, curl Sume's protected-resource and authorization-server metadata on mcp.sume.com and check the resource audience matches.

Sume media tool prices: background removal, upscale, timeline
Remove background $0.0225 per image, image upscale $0.20, video upscale $0.009 a second, timeline $0.10 an output minute. Batch costs at 10 to 1,000.

Why a Sume output schema is rejected: the strict subset rules
Sume saves an output schema only in the strict subset: object root, additionalProperties false, all properties required, nullable unions, 10 levels.

Sume schedule cron field: expr, IANA timezone and next_run_at
A Sume schedule's cron object holds expr, timezone and next_run_at, or null for an API-only schedule. How to read when the next run is due over the API.

Sume schedule invoke command: check the host before you paste it
The curl command on a Sume schedule's trigger card uses api.dev.sume.com when you copy it from a *.dev.sume.com dashboard. Check the host before production.

Sume schedule run input limits: 64 properties and 2 MiB
The input object on a Sume schedule or Agent Completion run takes up to 64 properties and 2 MiB of UTF-8. Where it lands and how to keep large data out of it.

Sume schedule cap null or 0: what a per-run override can do
A per-run generation_spend_cap_usd lowers a Sume schedule's cap but never raises it; null drops that ceiling, 0 is rejected, and wallet limits still apply.

Sume sync mode: set your client timeout above 30 s, then poll
Sume sync waits at most 30 seconds. If your HTTP client gives up at 30 s too, you lose the job id. Use a 45 s timeout, then poll and reuse the Idempotency-Key.

Timeline output size: 256 to 2160 per side, so no 3840x2160
Sume Timeline 1.0 takes even output width and height from 256 to 2160, default 1080x1920. What that means for 4K, 2560x1080 ultrawide and portrait masters.

Sume webhook and status poll race: never move a job row backwards
A late poll can say processing after the webhook already said completed. A rank-guarded SQLite update keeps a Sume job row from going backwards.

Talking video, face swap, Recast or motion control: pick by your input
Four Sume routes make a person on video. Which one fits depends on whether you have a script, a source video, a photo of each person or a motion clip.

Tavus CVI has six layers; a Sume avatar video is one job
Tavus CVI chains perception, turn-taking, speech, an LLM, TTS and rendering. A Sume talking-video is one request with a script. Which parts you own in each.