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.

Pinterest CSV video thumbnail: mm:ss, seconds or an image URL
A Pinterest bulk CSV thumbnail can be mm:ss, seconds or a public image URL, and an image must match the video ratio. Make the still with Sume video-frames.

YouTube Data API 10,000-unit pool: budget checks for a pipeline
Google gives a project 10,000 units a day shared by endpoints other than search.list and videos.insert. Poll Sume for job status instead of spending them.

YouTube 'daily custom thumbnail limit reached': retry in 24 hours
YouTube caps custom thumbnails per channel per day, and the error says to retry in 24 hours. Queue Sume thumbnails and stop the loop on that message.

TikTok upload_url is valid for one hour: finish the Sume job first
TikTok says the Direct Post upload_url is valid for one hour after issuance. Wait for the Sume job to complete before you initialize so the upload fits.

Sume webhook retries: 10 attempts 30 seconds apart, size your downtime
Sume retries a failing webhook up to 10 attempts at a default 30-second spacing, about 4.5 minutes. Past that, redeliver or poll after a publisher outage.

LinkedIn missing or deprecated version header errors: fail in CI
LinkedIn answers a missing or deprecated Linkedin-Version header with an error response. Check the header in CI, before a video post fails at runtime.

Can Strands Decider 2B pick which Sume MCP tool to call?
Strands Decider 2B scores options you give it. Build them from Sume's tools_list, then check the pick with tools_schema and dry_run before any paid call.

Pinterest CSV: title 100, description 500 characters, pre-upload check
Pinterest's bulk CSV allows titles up to 100 characters and descriptions up to 500. Check every row in Python before you upload 200 Sume-rendered Pins.

Agent Completion output_schema shaped like a Clef or Decider answer
Map Clef and Strands Decider answer types (yes/no, choice, score) onto a Sume output_schema with enum and integer bounds, and see what it does not check.

Graph API X-App-Usage call_count: pause a Reel publisher early
Meta's X-App-Usage header reports call_count, total_cputime and total_time as percentages. Read it after each call and pause your publisher before the limit.

Spread Graph API calls evenly: pace a nightly Reel batch
Meta advises spreading queries evenly to avoid traffic spikes. Space publish calls across the hour, and size the Sume render wave from generation_limits.

YouTube Data API: 100 videos.insert calls a day, plan Sume uploads
Google's default quota gives a project 100 videos.insert calls per day. Batch Sume clips into a daily upload plan and render only what you can post.

Threads video frame rate 23 to 60 fps: conform with video-trim
Threads accepts 23 to 60 fps video. Sume video-trim output.fps takes 24, 25, 30 or 60, all inside that range. Conform a mixed-rate clip in one call.

Fan out one Sume clip to three platforms: one webhook, three task keys
Receive one job.completed webhook per Sume job, then enqueue a task per platform. Key each task by job id plus platform so a retry never double-posts.

LinkedIn API sunsets: 202510, 202511 and 202601 dates, and the upgrade
LinkedIn lists 202510 sunsetting October 15, 2026, 202511 on November 16, 2026 and 202601 on January 15, 2027. Pick one target and test with a Sume clip.

TikTok Direct Post init: 6 requests a minute per token, queue clips
TikTok limits each user access_token to 6 init requests per minute on Direct Post. Queue finished Sume clips and release them at that pace.

TikTok publish_id status: poll it after the Sume job webhook fires
The TikTok Direct Post page I read returns a publish_id to check status and mentions no webhook. Let Sume's webhook trigger the post, then poll TikTok.

WhatsApp Business Tools MCP: for dev and testing, not production sends
Meta says the WhatsApp Business Tools MCP is for development and testing, not production sending at scale. Use it to set up; send from your code.

Ask a decision model to approve a Sume dry_run estimate before paying
Call the paid MCP tool with dry_run true, hand the estimate to a yes/no decision, and only then send idempotency_key with a max_spend_usd that you set.

Check a Short before you upload: duration, size and audio in one probe
Before posting a 9:16 file, probe it. Sume video inspect returns the probe and up to 24 stills for free. Compare duration with YouTube's 3-minute Shorts limit.

Captions fail on a silent Short with caption_no_speech: send cues
A silent clip has no speech to transcribe, so Sume's captions API returns caption_no_speech. Send cues with text, start and end to burn overlay text instead.

Preflight a 90-second voiceover timeline free before the render
Sume's Timeline 1.0 plan endpoint compiles your request, returns duration and billable minutes, and charges nothing. Use it before the $0.20 render.

Emotion tags in the script or an emotion field: Sume's bill
MAI-Voice takes emotion tags. Sume's documented control is generation_config.emotion, and every transcript character is billed, tags included.

Brand name mispronounced by the AI voice? Four fixes and the cost
When a TTS voice says your brand name wrong, change the voice, the language, the spelling or the dictionary. Each retake on Sume costs 1 to 7 cents.

Sume TTS 1.0 or TTS Router: which endpoint for a voiceover?
Both bill $0.0475 per 1,000 characters. TTS 1.0 always runs sonic-3.6; the router makes you name a Sonic id. Pick by whether you need to pin the engine.

mp3 or wav for an AI voiceover? What each allows on Sume TTS
Sume TTS defaults to mp3 at 44.1 kHz. Choose wav for slicing and exact joins, mu-law at 8 kHz for phones, and mp3 for delivery: what each container permits.

Burn captions from TTS word timings: no second transcription
Ask Sume TTS for word timings, group them into phrases and send them as caption cues. The caption job skips speech-to-text and still costs $0.20.

Transcribe a 9-minute recording in two calls for ten cents
Detach the audio at 16 kHz mono ($0.01), then send it to Sume STT ($0.01 a minute): nine minutes of speech to text for $0.10 in two requests.

Which Sume route transcribes a 5-minute video? Three compared
Video inspect, detach plus STT, and legacy video analyses all return speech. For 5 minutes: $0.05 plus compute, $0.06, and $0.30 on production only.

Native audio in stitched AI clips: which Sume models force it
Gemini Omni Flash 1.1 always makes audio, H3 Max adds stereo, Seedance 2 can. A stitched Timeline render takes its audio from the spine, so plan the sound.

AI video seed on Sume: no model accepts one, lock shots with frames
Every Sume v1 video model reports seed false and rejects the field. To repeat a look, lock first and last frames, references, resolution and a stable prompt.

Longest AI video Sume can render: 1800 s from 60 clips
One Timeline render caps at 1800 seconds. With 30-second clips that is 60 clips, with 200 slots allowed. The math and the render price follow.

Pin the Sume CLI to a release tag in CI and check for updates
Install a fixed sume binary from GitHub Releases, verify checksums.txt, and run sume update --check to see a newer release without changing files.

Windows PowerShell: install the Sume CLI, watch a 30 s render
Install the Sume CLI on Windows with one irm | iex line, set SUME_API_KEY, then use jobs watch and jobs download on a 30-second video job without resubmitting.

TypeScript webhook verifier for Wan 3.0 clips: refuse an empty secret
A TypeScript verifier for Sume webhooks: HMAC SHA 256 over timestamp.body, rotation entries, a 5 minute replay window and a hard refusal of an empty secret.

Poll or webhook for Wan 3.0 30-second jobs: use both on Sume
A webhook tells you when a Wan 3.0 job ends; polling is the backup when delivery fails. Sume retries a webhook up to 10 times at 30 s spacing. How to wire both.

Wan 3.0 sync mode waits 30 seconds: a 30-second clip needs async
Sume's sync mode holds a request at most 30 seconds, so a 30 second Wan 3.0 clip needs async or a webhook. What the timeout means and how to avoid paying twice.

Chain Ideogram 4.5 edits with webhooks: job.completed starts pass 2
Run a multi-turn Ideogram 4.5 edit chain on Sume without polling: submit with mode webhook, verify the signature, and start the next pass from job.completed.

Conversational video edits on Omni: a three-turn chain on Sume
Edit a clip in turns on Sume: each Omni video_to_video call takes the last result as video_url. Three turns on a 10 s clip cost $3.75 at 720p. curl chain.

Omni edit: one change per turn or one combined prompt, and the cost
Three single-change Omni edits on a 10 s clip are $3.75 at 720p; one combined prompt is $1.25. Per-turn is 3x the price, so pick by how a failed edit costs you.

SQLite ledger: a restarted poller never resubmits a 30-second video
Save the Sume job id and Idempotency-Key in SQLite before you poll, so a crash resumes the same $17 render instead of paying twice. Python, stdlib.

Which Omni input continues a scene: end frame, reference clip or edit?
Sume has no extend button. Continue an Omni scene with a last-frame image, a 3 s reference clip, or a video edit; this table says which, with costs per 10 s.

Kling motion control: output length follows the motion video
In Sume's Kling 3.0 motion control, duration_seconds (1-30) only sets the reservation. The motion video sets the output length. Price: $0.1575 a second.

Save a 30-second Wan 3.0 clip to Cloudflare R2 from Node
Fetch a finished Wan 3.0 render from Sume and write it to Cloudflare R2 with the AWS S3 client. Shows the R2 endpoint config and the 30 s price at three tiers.

Startup plan accepts 48 jobs, not 50: send 50 AI video clips in waves
Sume admits concurrency plus queue jobs per plan: 6, 24, 48 or 120. Fifty 30-second clips fit only on Scale at once. See waves per plan and how to retry.

Poll a Seedance 2.5 job in Go: submit, wait 30 s, check status
A Go program that submits a 30-second Seedance 2.5 job to Sume, polls the polling_url every 30 seconds for up to 20 minutes, and prints the result URL.

Seedance 2.5 API 'coming soon' on ModelArk: what to call today
ByteDance says Seedance 2.5 API access is coming via ModelArk. Sume lists seedance-2.5 now: id, limits, price, and how to keep a later switch cheap.

tqdm in Jupyter for a 30-second AI video render, no percentage
Sume gives job statuses, not a percent. Use a tqdm elapsed-time bar with the status as its label, and stop on terminal. Runs in a notebook cell.