Developers
Building on the Sume API: keys and hosts, jobs and runs, polling, webhooks, idempotency, errors and rate limits, the SDK, the CLI, and MCP auth.

Sora polling loop ported: Sume statuses and a 30-second poll
Sora's guide polled every 10 to 20 seconds for queued, in_progress, completed, failed. Sume's jobs read pending, in_progress, completed, failed, cancelled.

Sora remix and edits ended: edit a video with Gemini Omni Flash
Sora's remix, then its edits endpoint, went away with the Videos API on 2026-09-24. On Sume, send video_url and an edit prompt to gemini-omni-flash-1.1.

Sora extensions to 120 seconds: 30-second clips and Timeline
Sora's Videos API let you extend a clip up to 6 times, 120 seconds in all, and shut down 2026-09-24. On Sume, chain 30-second clips and join them in Timeline.

Sume editing tool source limits: 1,800 s and 300 s
Video trim, audio detach and video inspect accept a source up to 1,800 seconds. Video filter, Timeline compose and video frames stop at 300 seconds.

Sume SDK fetch wrapper: do not add an Authorization header
A fetch wrapper passed to createSumeClient must not add Authorization. Sending it with x-api-key returns 401, because Sume accepts only one credential.

Sume SDK calls resolve with error: make your task throw
Generated Sume SDK operations return { data, error, response } and never throw. In Trigger.dev or Inngest, throw yourself or a failed run looks successful.

Temporal Activity ID policies are not a Sume Idempotency-Key
Temporal's Conflict and Reuse policies dedupe Activity IDs inside Temporal. They never reach Sume, so a paid submit still needs its own Idempotency-Key.

Temporal Maximum Attempts 1 and a paid Sume submit
Standalone Activities default to at-least-once retries. Maximum Attempts 1 gives at-most-once, but a Sume Idempotency-Key lets you keep retries safely.

Cancelling a Trigger.dev run does not cancel the Sume job
Trigger.dev cancel stops the task and its child runs. A Sume job that already started generating cannot be cancelled, and still bills. Store the job id.

Trigger.dev public tokens show Sume progress without the API key
Hand the browser a Trigger.dev read-only public token for one run while the task holds the Sume key. The Sume key never leaves the server.

Trigger.dev retries and Sume errors: skip 4xx, wait on retry-after
Trigger.dev retries any uncaught throw. Use catchError to skip Sume errors that cannot succeed, and read the retry-after header on a 429.

Trigger.dev replay reuses the payload: key the Sume submit from it
A Trigger.dev replay starts a new run with the same payload. Derive the Sume Idempotency-Key from that payload, not a random id, or a replay bills twice.

Turn a video into a line-art sketch by API with edgedetect
Sume's video filter allowlists edgedetect and negate. Edges come out as white wires on black; negating gives dark lines on white. Modes: wires, colormix, canny.

Vercel CDN skips Vary: Cookie responses: Sume status proxy headers
Vercel's CDN no longer caches Vary: Cookie responses. For a route proxying Sume job status, send Cache-Control private and honor next_poll_after_seconds.

Vidu movement_amplitude does nothing on Q2 and Q3; Sume uses prompts
Vidu says movement_amplitude has no effect on its q2 and q3 models. Sume has no motion-strength field at all; you steer motion in the prompt.

Vidu Q3 allows 1 to 16 seconds; Sume's shortest clip is 2
Vidu Q3 accepts 1 to 16 seconds. On Sume the shortest clip is 2 seconds on wan-3.0, 3 on Gemini Omni Flash, 4 on Seedance, Kling and Grok, 5 on MiniMax.

Vimeo can hide black bars; Sume bakes the right frame into the file
Vimeo's September 2026 Page theme hides black bars on non-16:9 videos. To remove them from the MP4 itself, render the frame with Timeline fit and output size.

VS Code extension icon: 128x128 minimum, 256x256 for retina
VS Code wants an extension icon of at least 128x128, with 256x256 for retina displays. Generate 1024x1024 with GPT Image 2.5 on Sume and downscale to 256.

Zapier Next Gen Zaps drop the 500-item loop cap: pace Sume
Next Gen Zaps loop past 500 items. A loop of paid Sume submits hits per-minute write budgets and accepted-job capacity first, so size the wave from your plan.

Zapier Next Gen Zaps can pause for a reply: approve before Sume
Put the paid Sume submit after Zapier's new human-reply pause, and key it from the approved record so a double click or a resume cannot submit twice.

Magnified inset callout in video: split, crop, overlay
Sume's video filter has one input, but split, crop, scale and overlay are allowlisted, so a zoomed copy of one region can sit in a corner of the same frame.

Amazon A+ createMedia 201, 200, 409: retry-safe uploads on Sume
Amazon's createMedia answers 201, 200 or 409 on retry. Pair it with one Sume Idempotency-Key per asset so a retried submit never bills twice.

Amazon A+ media status NOT_APPROVED: poll Sume, then upload
Amazon A+ video media moves through PENDING_PROCESSING, PENDING_REVIEW and AVAILABLE. Two clocks run: finish the Sume job first, then poll Amazon.

Amazon A+ Content API: mediaUrl is not permanent, keep your own copy
Amazon says A+ getMedia's mediaUrl is non-permanent. Re-fetch it, and keep your own copy of finished Sume clips by downloading from the content URL.

Amazon A+ video descriptions per locale vs Sume caption language
A+ updateMedia upserts video descriptions by locale, one of title or descriptions per call. Sume's caption language is only a speech-to-text hint.

Anam 99.9% uptime SLA vs Sume failed-job retry metadata and refunds
Anam states a 99.9% uptime SLA for Cara-4. Sume documents what a failed avatar job exposes, category and retryability, and refunds the reservation.

AssemblyAI disfluencies: true (English only) vs Sume STT words[]
AssemblyAI's disfluencies: true raised filler-word recall from 49.7% to 76.3%, English only. Sume STT has no such flag, so check words[] on your clip.

AssemblyAI format_text false: 'one hundred' vs 100 and Sume STT
AssemblyAI's format_text: false returns spoken form, 'one hundred' not 100. Sume STT has no formatting toggle; its request is a closed schema.

AssemblyAI speech models: unpinned routing and Sume's fixed STT id
AssemblyAI will route unpinned async requests to Universal-3.5 Pro; pin speech_models to stay put. What changes, and why Sume STT has no model to pin.

AssemblyAI Universal-3.5 Pro and Urdu: language_code on Sume STT
AssemblyAI fixed a bug that sent Urdu to Universal-3.5 Pro, which covers 18 languages. How a language hint behaves on Sume STT, and what to check.

Caption animation speed in and out: Sume motion overrides
Tune burned-in caption animation with design.motion: enter_seconds, exit_seconds, emphasis_in_seconds and emphasis_out_seconds, set per caption request.

Subtitles: how many words per line with design.phrasing
Sume video captions let design.phrasing set max_words (1-12), max_chars (4-60) and pause_seconds (0.05-3) per phrase. Not supported on punch or tiktok-green.

Subtitle position on video: Sume anchor_ratio for captions
Move burned-in captions up or down with design.placement.anchor_ratio, and set a separate landscape_anchor_ratio. A fraction of frame height, per request.

Editorial two-line video captions: the editorial-emphasis style
Sume's editorial-emphasis caption style is a left-aligned two-line card where the phrase-final word drops to a second line at about twice the size.

Cartesia normalization: auto, off or a locale code, versus Sume text
Cartesia Sonic 3.6 adds a normalization field set to auto, off or a locale code. Sume TTS has no such field, so write dates and numbers out in the transcript.

Claude Code 2.1.286 MCP Bearer redaction: Sume key cleanup
Claude Code 2.1.286 stopped MCP errors from printing a credential after Bearer. Update, then sweep old logs and rotate any Sume key that appeared there.

Codex MCP OAuth 503 on discovery: check Sume's two URLs
Codex 0.156.0 refreshes MCP credentials after an OAuth discovery 503. To see if it came from Sume, curl its two well-known metadata URLs.

Flux TTS CONTROL_COMBINATION_INVALID and the 1.15 pause speed cap
Deepgram Flux TTS rejects some control combinations and caps speed at 1.15 with a pause. The error codes, the rules, and Sume's 0.6 to 1.5 speed range.

Deepgram Flux TTS inline IPA vs Sume's pronunciation dictionary id
Deepgram Flux TTS now takes inline IPA overrides in Early Access. Sume TTS takes a pronunciation_dict_id instead. How the two approaches differ in practice.

Flux TTS pause markers: 8 per request, 500-3000 ms, and Sume scripts
Flux TTS allows up to 8 pause markers of 500 to 3000 ms per request, batch only. Plan a script around that limit and see what Sume gives you for pacing.

Deepgram self-hosted 261001 drops Whisper: what Sume STT callers do
Deepgram Self-Hosted release 261001 removes Whisper support and asks you to move to Nova-3 first. What it means for Sume STT, which has no model to migrate.

Extract audio from MP4 to WAV or MP3: the detach defaults
Sume audio detach returns WAV (pcm_s16le, sample-exact) by default or MP3 at 128 kbps. Pick WAV for speech-to-text and timeline use, MP3 when file size matters.

Extract audio segment start beyond video length: error and fix
Audio detach fails detach_start_past_source when range.start is past the probed duration. It differs from audio_detach_range_empty. Check duration first.

ElevenLabs Flows API states vs Sume job status and webhooks
ElevenLabs Flows generations report pending, generating, completed and failed. Sume jobs use async, a 30-second wait cap and terminal-only webhook events.

ElevenLabs Music v2.5 plan limits vs Sume's 5000-character prompt
ElevenLabs Music v2.5 plan chunks reach 6,132 characters, up to 30 lines of 200. Sume Music takes one 5000-character prompt and rejects duration fields.

fal queue retries up to 10 times: who counts attempts on Sume
fal retries failed queue requests on new runners, up to 10 attempts. Sume's docs put retries with the caller, guarded by an Idempotency-Key.

fal error_type request_timeout: which Sume field to monitor
fal exposes error_type in the body and X-Fal-Error-Type as a header. Sume puts category, stage and code in the error body; the request id is also a header.

FastMCP client auth: pass the Sume API key as a string
In FastMCP, pass your Sume API key as a plain string to auth, with no Bearer prefix. The client adds the header; send only one credential.