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.

Text to speech with highlighted words: sync word timings
Highlight words as text to speech plays: get word timestamps with the audio, then mark the word whose time range holds the player's current time.

Text to speech API in Python: request, poll, save the MP3
Call a text to speech API from Python with Requests: POST the text and a voice, poll the job, then save the MP3. A complete script for Sume TTS 1.0.

Text to speech API in JavaScript: save an MP3 from Node.js
Call a text to speech API from JavaScript on your server: submit the text with the Sume SDK in Node.js, wait for the job, then save the MP3.

Batch transcription API: transcribe many audio files
Batch transcription by API is a loop: one speech-to-text job per file, keyed by the file's id, collected by webhook or polling. How it works on Sume.

Speech to text in Python: transcribe audio with timestamps
Speech to text in Python with Requests: send the audio URL, poll the job, then read the transcript and word timestamps. A script for Sume STT 1.0.

Speech to text API in JavaScript: audio to text in Node.js
Call a speech to text API from JavaScript on your server: send the audio file's URL with the Sume SDK in Node.js, wait for the job, read the text.

How to automate AI video generation from code
To automate AI video generation, save a working brief as a recipe, start it from code per event, list or schedule, and take each video by webhook.

Exposed API key? Revoke it, then check what it did
An exposed API key works for anyone until you revoke it. Rotate to a new key, revoke the old one, then check its last use, its spend, and your jobs.

Can multiple people use the same API key?
They can, but they then share its rate limit, usage record, and revocation. Give each person or service its own key, and know what stays shared.

Free webhook tester: see what a webhook sends before coding
A free webhook tester gives you a public HTTPS URL and shows each request's headers and body. Point Sume's Send test at it to see a signed payload.

Create a talking avatar using Python with the Sume API
Create a talking avatar in Python with Requests: generate the avatar, poll its job, send it a script to speak, then read the finished video's URL.

Bulk image generation: script hundreds of AI images via API
Send one image request per row, each with its own Idempotency-Key, async mode, and up to four images per call. Your plan's concurrency sets the pace.

Python image generation API: generate and save AI images
Generate images from Python with Requests: POST a prompt to an image API, read the URLs from a 200 or poll the 202 job, then save each file.

Sume API headers: auth, idempotency, If-Match, rate limits
Every HTTP header the Sume API reads or sends: the API key, Content-Type, Idempotency-Key, If-Match, request ids, rate limits, and webhook signatures.

Best AI video generation API for developers: how to choose
No single AI video generation API is best for every developer. Compare price units, models, API shape, and limits, then pick by what you need back.

Download a generated video from the Sume API: 401s and 302s
Sume unsigned_urls need your API key and answer with a 302 redirect. Download the MP4 with curl -L or code, and fix each 401, 404, or 409.

Webhook URL rejected as invalid? Sume's webhook URL rules
Sume answers 400 invalid_request when a webhook URL is not public HTTPS. The rules for scheme, host, port, and credentials, and the check at delivery.

Sume API media URL rules: which URLs each endpoint accepts
Sume generation endpoints fetch public HTTPS media URLs. Trim, filter, frames, inspect, and Timeline take only your workspace's media.sume.com URLs.

Sume job types and concurrency: which calls take a slot
Each Sume endpoint's job type and slot use: every generation job, trims and Timeline included, takes a concurrency slot; frames and inspect don't.

Sume API endpoints list: routes, scopes, idempotency
An index of the Sume API's public routes by family: which need no key, which scope each needs, where Idempotency-Key applies, and the post on each.

Sume API output file formats: MP4, PNG, WebP, WAV, MP3
The file each Sume API endpoint returns: MP4 from Timeline and the editing tools, PNG, JPEG, or WebP images, WAV or MP3 audio, and JSON transcripts.

MCP server OAuth flow on Sume: discovery, consent, PKCE, and scopes
Sume's hosted MCP server runs its own OAuth: a 401 points to discovery metadata, the user consents on mcp.sume.com, and PKCE S256 yields a one-hour token.

Fix MCP insufficient_scope on Sume: scopes, missing tools, timeouts
An MCP insufficient_scope error on Sume means the OAuth session lacks mcp:write. Start with mcp_health, then fix scopes, missing tools, and timeouts.

Sume agent run errors: action_run_in_progress, agent_run_not_found
409 action_run_in_progress means a schedule run is already active and you sent reject. 404 agent_run_not_found means the id is not your Agent Completion run.

How to run the Sume CLI in CI and on headless servers
Run the Sume CLI in CI with a pinned release binary, SUME_API_KEY from your secret store, an isolated SUME_CONFIG_DIR, a doctor preflight, and --json output.

Sume CLI commands: a reference for account, jobs, assets, and skills
The Sume CLI commands beyond generation: login and account, health and doctor checks, schema discovery, jobs, assets, batch helpers, skills, and aliases.

Sume CLI not working? Fixes for login, API base, jobs, and media
When the Sume CLI is not working, run four read-only checks, then fix the cause: a missing key, a wrong API base, an unfinished job, or a rejected media URL.

Sync vs async API for video generation: Sume's four submit modes
Sume's submit modes are async, sync, subscribe, and webhook. sync and subscribe wait 30 s at most, so for video, submit async and poll, or take a webhook.

Sume TypeScript SDK quickstart: install, client, errors, retries
Install @sume-com/sdk, create one client with createSumeClient, and call typed operations that return errors instead of throwing, with retries built in.

Why did my AI video generation job fail? Reading the job error
A failed Sume job carries a public error: category, stage, retryable, public_reason, and next_action. Where to read it, and what each field tells you to do.

Wait for a Sume job or run to finish in the TypeScript SDK
waitForJob, waitForRun, and subscribeFormatRun poll a Sume job or run until it ends. Here are their default timeouts, the errors they throw, and retries.

Sume webhook not received? How to debug delivery and signatures
When a Sume webhook does not arrive, read webhook_delivery on the job or run, prove your endpoint with a test delivery, then redeliver the real event.

How to cancel an AI video generation job or run with the Sume API
A Sume generation job cancels only before generation starts; Format, Action, and Agent run cancels are idempotent. Routes, responses, billing, webhooks.

Video generation API timeouts: Sume's wait caps, SDK defaults, expiry
A Sume sync submit waits 30 s at most and SDK waits default to 10–20 minutes, but a client timeout never cancels the job. Every limit, and your own deadline.

Sume request_id vs job_id vs run_id: which ID to store and quote
Store the job or run id, dedupe webhooks on job_id or the run envelope's request_id, and quote the req_ request id with the job or run id to Sume support.

Sume developer dashboard: API keys, usage, jobs, billing, playground
Sume's developer dashboard, page by page: create API keys, buy credits on Billing & subscription, inspect Jobs and Usage, and try Avatar in the playground.

Idempotency keys for AI video APIs: retry without paying twice
An idempotency key makes a retried create return the original run or job instead of a second paid one. How Sume's Idempotency-Key works on each API.

Video API media inputs and outputs: public URLs in, Sume URLs out
Sume generation requests take media as public HTTPS URLs in named fields, with no separate upload step, and return Sume-hosted media.sume.com URLs to store.

How to generate avatar video from the terminal with the Sume CLI
Install the Sume CLI, sign in through the browser, and submit talking avatar videos. Image, Video, and Music 1.0 have no CLI submit command yet.

How Sume API keys work: scopes, auth headers, hosts, and rotation
A Sume API key is a workspace-scoped secret sent as Bearer or x-api-key, never both. Scopes are fixed at creation, and a key works only on its own host.

Video job concurrency and queueing on Sume: limits and queue_full
Sume accepts valid paid jobs as queued and runs them under a plan concurrency limit. A submit fails with 429 queue_full only when the queue is also full.

Sume API errors and rate limits: codes, 429s, and when to retry
Sume API errors share one envelope with a stable code and a request id. Reads and writes have separate per-minute budgets; queue_full is not a rate limit.

Signed webhooks for Sume video runs: events, retries, verification
Sume sends one HMAC-SHA256 signed POST when a Format, Action, or Agent Completion run completes or fails. Verify the raw body and dedupe on request_id.

Which MCP server lets Claude Code or Cursor generate video and images?
MCP servers that let Claude Code and Cursor make video and images: Sume, fal, Replicate, Runway, Higgsfield. Endpoints, sign-in, billing, setup.