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

Music Router rejects duration: ask for a 28-second bed in the prompt
Sume's Music Router rejects duration and duration_seconds. Put the length in the prompt for a 28-second holiday ad bed, and pay $0.125 a track.

Which Sume video ids turn audio off, and which add sound
Gemini Omni 1.1, MiniMax H3 and H3 Max always produce audio on Sume; generate_audio false is rejected. Kling 3 prices sound on and off, Wan reads a flag.

Omni Flash edit on Sume: what editing a 6 s and a 30 s clip costs
Editing a clip with Omni Flash on Sume bills per output second at the resolution you pick: $0.75 for 6 s at 720p, up to $3.75 for a 30 s hint. How it is priced.

GPT Image 2.5 Flare on Sume: the id is openai/gpt-image-2.5, no suffix
Flare is openai/gpt-image-2.5 on Sume's Image API and Sunburst is openai/gpt-image-2.5-sunburst. An id ending in -flare returns 404 model_not_found.

720p thumbnail list prices: GPT Image 2.5 low vs Google Banana lines
For a 1280x720 image, GPT Image 2.5 low is about $0.0032 at OpenAI's list rate. Google lists $0.0336 (Flash Lite Image) and $0.045 (Flash Image 0.5K).

Bash and openssl script to verify a Sume webhook signature
A tested bash script that checks a Sume webhook signature with openssl, enforces the 300 s window and exits on an empty secret. Plus what it cannot do.

Verify a Sume webhook signature in Perl with Digest::SHA
A tested Perl verifier for the Sume x-sume-webhook-signature header using Digest::SHA, an XOR compare, the 300 s window and an empty-secret refusal.

Polling a Sume job for 20 minutes: 600 fixed reads or 44 backed off
Counting reads for a 20-minute Sume job poll: fixed 2 s versus a 1 s schedule doubling to 30 s. Arithmetic you can run, and why the server hint still wins.

Pre-flight check for Shorts and TikTok ad files: an ffprobe script
A 30-line Python script reads a rendered MP4 with ffprobe and flags it if it is not vertical, over 3 minutes, under 540x960, over 500 MB or under 516 kbps.

primary_output_key on a headline string: primary_output_url is null
If primary_output_key names a text field in your Sume output_schema, the receipt echoes the key but primary_output_url is null. Point it at the media field.

Pro, Startup or Scale: the monthly usage where each Sume plan wins
Startup beats Pro above $120 of monthly usage, Scale beats Startup above $420. The arithmetic, a table, and what concurrency changes.

A Python Enum for Sume job statuses and the terminal set
Sume jobs move through queued, processing, completed, failed and canceled. A tested Python Enum and terminal set so a poll loop stops on all three endings.

Python compare_digest TypeError on a Sume signature header
compare_digest raises TypeError on non-ASCII str. A tested Python verifier for the Sume webhook signature that compares bytes and rejects an empty secret.

Python urllib timeout vs Sume's 30 second sync wait
A client read timeout shorter than Sume's sync wait fails before the server answers. A tested demo of the timeout behavior and how to pick a margin above 30 s.

Q4 budget for 10 AI videos a week: 13 weeks of Wan 3.0 on Sume
Thirteen weeks of ten 15-second Wan 3.0 clips cost $244.40 at 720p on Sume, which is the Pro plan's cost for the quarter. 480p and 1080p, by plan.

Refresh last year's holiday Format: one commit, rerun with v2 keys
Update a Sume Format for this holiday season with one Contents API commit, then re-queue with v2 Idempotency-Keys. Runs read the package they started with.

Video fallback ladder: why reusing an Idempotency-Key returns 409
On Sume's video API a repeated Idempotency-Key with a different body is a 409. When you fall back from one model id to the next, derive a new key per id.

One Sume voice, a different language: the 409 and the confirm flag
Ask Sume TTS to speak Spanish with an English-tagged voice and you get a 409 before any charge. Retry with confirm_language_mismatch only if you mean it.

Seasonal Format: a new slug per season, or edit the same one in place?
Edit one Sume Format in place and keep one address, or create a slug per season and keep each look reproducible. Contents API has no revert, which tips it.

Seconds of video per dollar: Veo 3.1 Lite 20, Omni Flash on Sume 8
One dollar buys 20 seconds of Veo 3.1 Lite at 720p, 10 of Fast, 2.5 of Standard, and 8 of Omni Flash at 720p on Sume. Full table to 4K. Read 2026-10-06.

Seedance 2.5 on Sume takes no bitrate_mode: what to send
The seedance-2.5 catalog row lists 'no bitrate_mode'. Control cost and size with resolution (480p to 1080p) and duration (4 to 30 s) instead.

Seedance 2.5, Wan 3.0, H3 Max, Kling 3, Omni 1.1: one limits matrix
Five video ids on Sume side by side: length, resolution, aspect ratios, references and audio. Read it before you choose, then confirm on the live catalog.

Seedance 2 on Sume vs Veo 3.1 Standard at Google: 720p and 1080p
Seedance 2 on Sume is $0.378 a second at 720p and about $0.85 at 1080p. Google lists Veo 3.1 Standard at $0.40 for both, so 1080p favors Veo on price.

Silent AI clip fails caption_no_speech: burn text with cues instead
A clip with no speech fails the Sume caption job with caption_no_speech. Send cues with text, start and end to burn authored overlay text for a Short or ad.

Sonic 3.6, 3.5 and 3 cost the same on Sume TTS Router: pick by ear
All five Sume TTS Router ids share one per-character price, so model choice is a listening test, not a budget one. Here is how to run it for a few cents.

Sume STT segmentation: boundary_lead_ms 70 default, 0-500 range
Sume STT can return sentence segments with a boundary_lead_ms from 0 to 500, default 70. What it is for when you turn those sentences into caption cues.

How long does a Sume Idempotency-Key last? The docs don't say
The Sume docs describe Idempotency-Key replay and the 409 conflict but give no lifetime. What is documented, what is not, and a safe way to design around it.

Sume job webhook: request_id equals job_id, store one
In a Sume job webhook payload, request_id and job_id are the same value. Which to use as your dedupe key, and what else the payload carries.

Sume MCP tool names: tools.list or tools_list, which one to call?
Use the underscore ids from tools_list, like generate_image. Sume also accepts dotted aliases, but tools_schema wants snake_case and clients may add a prefix.

Can I swap a Sume MCP OAuth token for an API key? Why you should not
A hosted MCP OAuth token is not a Sume API key. Do not mint keys as a workaround for a read-only session; turn Write on at consent, or use a key on purpose.

A Sume poll returned HTML: guard the JSON parse in Python
A proxy or edge can answer a Sume poll with an HTML page. A tested stdlib Python helper that returns None for non-JSON bodies so your loop retries, not crashes.

Which statuses to retry when reading back a Sume job (Python)
After a Sume submit returns a job id, retry reads on 408, 425, 429, 500, 502, 503, 504 and 520 to 525. A tested Python classifier and the 409 gotcha.

Webhook URL with user:pass@ gets a 400: verify the signature instead
Sume refuses a run webhook_url that carries credentials, plain HTTP or a private host. Authenticate your receiver with the signed headers, not the URL.

Same Idempotency-Key on two Formats starts two runs: holiday A/B
A Sume Idempotency-Key is scoped to one Format. Reusing a key across two holiday Formats starts two runs, so make the key carry the variant.

Sume Scale vs Google direct for Gemini Omni Flash: break-even seconds
Google lists Omni Flash at about $0.10 a second; Sume bills $0.125. Scale beats direct only between roughly 4,000 and 16,000 seconds a month.

Sume TTS speed: generation_config 0.6-1.5, a slow/normal/fast enum too
Sume TTS has two speed inputs: a speed enum (slow, normal, fast) and generation_config.speed from 0.6 to 1.5. Volume runs 0.5 to 2. Use one, then listen.

Sume TTS output_format: the mp3 44.1 kHz 128 kbps default and options
Send no output_format and Sume TTS returns mp3, 44,100 Hz, 128 kbps. Here is every allowed container, sample rate, bit rate and raw encoding.

Sume voice languages: the 16 tags to check before you localize
Sume's voice library tags 16 languages: en, ko, ja, zh, es, fr, de, pt, it, hi, nl, pl, ru, sv, tr and tl. Check your market against it before planning a dub.

Sume video trim output: libx264, yuv420p, AAC, exact vs keyframe
Exact trim re-encodes with libx264 and yuv420p, audio as AAC; keyframe copies the stream. Neither YouTube's Shorts nor TikTok's ad page names a codec.

What status should a Sume webhook receiver return? Any 2xx
Sume counts any 2xx as delivered, so 202 or 204 is fine. A tested receiver that verifies the signature, stores the job id, answers 204 and defers the work.

TikTok ad 500 MB cap and 516 kbps floor: file size by clip length
TikTok's ad page caps files at 500 MB and sets a 516 kbps minimum bitrate. For 15 to 600 seconds that is roughly 1 to 39 MB at the floor.

TikTok ad minimum 540x960: Sume's 1080x1920 default clears it
TikTok's ad page sets minimums of 540x960 (9:16), 960x540 (16:9) and 640x640 (1:1). Timeline renders 1080x1920 by default, and width and height are settable.

TikTok ad safe zones vs burned-in captions: anchor_ratio
TikTok says its safe zone varies with ratio, caption length and format. Sume caption design has an anchor_ratio to move a burned-in line.

TikTok's three ad ratios and Kling 3's three: 9:16, 16:9 and 1:1
TikTok's non-Spark ad specs list 9:16, 16:9 and 1:1. Kling 3 on Sume lists exactly those three, at 720p or 1080p and 4 to 15 seconds. Here is what that fits.

TikTok Spark Ads vs standard ad video specs: what to render
TikTok lists .mp4 or .mov and no duration limit for Spark Ads, but 9:16 minimums, 500 MB and up to 10 minutes for non-Spark ads. Sume returns MP4.

Timeline slots must reach within 0.5 s of the voiceover: 24 s example
Lay out Sume Timeline 1.0 for a 24-second voiceover: four 6-second slots from 0, last within 0.5 s of the end. Plan it free, render for $0.10.

Timeline output.fps: omit it, or you may resample and get judder
Timeline takes output.fps of 24, 25, 30 or 60 and warns when it differs from the sources. YouTube Shorts and TikTok ad pages list no frame rate.

10,000-character TTS script: one 48-cent job or three chunks?
A 10,000-character script costs 48 cents on Sume TTS as one job. Splitting into three adds at most a cent or two of rounding, so chunk only for a reason.