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.

MCP progressive discovery: Sume tools_list, then tools_schema
For a large MCP tool set, list first and fetch one contract second. Sume has tools_list for visible tools and tools_schema for a single tool by name.

MCP standardized error handling: Sume's named outcomes
MCP has no single error standard across surfaces yet. Here is how Sume's named outcomes map to retry, re-auth, or stop in a hosted MCP client.

MCP sub-agent with narrower authority: a read-only Sume token
Give a sub-agent a Sume token granted only mcp:read and it sees read-only tools, so it can inspect jobs and assets but never submit a paid generation.

MCP workload identity federation: Sume takes code grant only
MCP's roadmap names Workload Identity Federation. Sume's hosted MCP advertises only the authorization_code grant, so headless workloads use an API key.

Modal 150-second web timeout and 303 redirect: Sume polling
Modal web endpoints return a 303 redirect after 150 seconds. Sume returns 202 with status_url and result_url, so a client polls and follows no redirects.

OpenRouter /images/models supported_parameters vs Sume
How to read supported_parameters enum and range descriptors before sending an image request, and what Sume does with a parameter a model does not list.

OpenRouter video webhooks vs Sume callback_url, signing, retries
OpenRouter's video guide points to a webhooks cookbook. On Sume, pass an HTTPS callback_url, verify x-sume-webhook-signature, retry with Idempotency-Key.

Replicate aborted vs canceled prediction: Sume cancel and 409
Replicate bills a canceled prediction for run time, not an aborted one. Sume cancels only before generation starts, then returns 409.

Replicate webhook_events_filter on Sume: terminal events only
Replicate lets webhook_events_filter pick start, output, logs and completed. Sume webhooks send terminal job events only, so there is no filter to set.

Replicate webhook URL custom id vs Sume job_id as the key
Replicate suggests a query param like customId on the webhook URL. Sume bodies carry request_id and job_id, and job_id is the receiver's idempotency key.

Spotify HDR video podcast: tone-mapped to SDR Rec.709
Spotify converts HDR (Rec.2100) uploads to SDR Rec.709. A Sume exact trim re-encodes to yuv420p and has no colour fields, so tone-map before you trim.

Spotify video audio channels: mono upmixed, 5.1 downmixed
Spotify upmixes mono to stereo, downmixes 5.1, and rejects multi-channel. Sume audio detach offers only channels source or mono; it cannot mix to stereo.

sync-3 image formats JPEG PNG WebP vs Sume image URL rules
sync-3 accepts JPEG, PNG and WebP stills. Sume's docs set URL rules instead: a fetchable public HTTPS image, with private and signed URLs rejected.

Sync Labs API rate limit: 100 per minute, and Sume headers
Sync Labs allows 100 POST /v2/generate and 600 GETs a minute. Sume has a per-plan requests-per-minute budget; read ratelimit headers and retry-after.

AI Gateway async video 413 at 300 KiB: hosted URLs on Sume
AI Gateway caps the persisted video start request at 300 KiB and answers inline base64 with 413. On Sume, send public HTTPS URLs; 413 is payload_too_large.

Vercel AI Gateway poll intervalMs and timeoutMs vs Sume polling
AI Gateway's poll option sets intervalMs (5000) and timeoutMs (600000). Sume jobs return next_poll_after_seconds, and your client owns the deadline.

AI Gateway startVideo webhookUrl: the same pattern on Sume
experimental_startVideo returns once the job is accepted and can call a webhookUrl. On Sume, send mode webhook with webhook_url and keep polling as backup.

Vimeo pixel aspect ratio 1:1: setsar in a video filter
Vimeo recommends square pixels (1:1). Sume's video filter allowlist includes setsar, setdar and scale, so a filtergraph can set the sample aspect ratio.

Wan 3.0 smart duration and adaptive ratio vs Sume's explicit fields
QwenCloud lists smart duration and adaptive aspect ratio for Wan 3.0. On Sume you send an integer duration and an aspect_ratio the model supports.

Wan 3.0 sound toggle vs Sume generate_audio for Wan
Wan 3.0 lists a sound toggle at QwenCloud. On Sume, generate_audio defaults to the model's audio capability and some models reject false.

YouTube 48fps upload: keep the frame rate, conform to 24/25/30/60
YouTube accepts 48 and 50 fps and says to upload at the recorded rate. Sume's trim and Timeline output.fps conform only to 24, 25, 30 or 60.

Deinterlace before YouTube upload: Sume has no deinterlace filter
YouTube says deinterlace 1080i60 to 1080p30 before upload. Sume's video-filter allowlist names no deinterlacer and refuses unknown filters.

YouTube moov atom and edit lists: keyframe trim vs exact trim
YouTube asks for MP4 with moov first and no edit lists. Sume's keyframe trim is a stream copy; exact re-encodes. The docs do not state moov placement.

YouTube Opus and Eclipsa Audio uploads vs Sume's WAV and MP3
YouTube now lists Opus and Eclipsa Audio beside AAC-LC for uploads. Sume audio outputs are wav (pcm_s16le) and mp3 only; neither is Opus or Eclipsa.

YouTube 1080p bitrate: 8 Mbps, and Sume has no bitrate field
YouTube recommends 8 Mbps for 1080p SDR at 24 to 30 fps and 12 Mbps at 48 to 60. Sume rejects codec and crf fields and exposes no bitrate setting.

YouTube upload H.264 settings: what Sume's exact trim sets
YouTube lists H.264 High Profile, 4:2:0 and progressive scan. Sume's exact trim re-encodes with libx264 and yuv420p; profile, GOP and CABAC are not fields.

Akool talking photo links expire in 7 days: what to archive
Akool says talking photo image, video and voice resources are valid for 7 days, so save them early. Sume media URLs do not expire; archive by need.

ant apply agent file: declare the Sume server, keep the key out
In an ant apply agent file, declare the Sume server by name and URL, https://mcp.sume.com/mcp. The API key belongs in a vault, never in the committed file.

Argil audio upload 50 MB vs Sume Fabric's 10 MB audio URL
Argil takes mp3, wav and m4a uploads up to 50 MB. Sume's Fabric route takes a Sume-hosted audio URL up to 10 MB; H3 Max lip sync wants 5-14.8 seconds.

AssemblyAI Sync API: one call, and Sume STT sync mode
AssemblyAI's Sync API returns a short-clip transcript in one POST. Sume STT mode sync waits up to 30 seconds, then returns the job id to poll if not done.

AssemblyAI Sync API file limit vs Sume STT duration_seconds
AssemblyAI's launch post frames its Sync API for short clips. Sume STT 1.0 takes duration_seconds from 1 to 600 and reserves one minute if you omit it.

BFL 24 concurrent requests, 6 for flux-kontext-max, vs Sume
BFL caps concurrent requests at 24 (6 for flux-kontext-max). Sume treats concurrency as a dispatch limit: extra jobs queue until you hit 429 queue_full.

BFL 402 and 429 retry rules, and the same split on Sume
BFL raises on 402 and backs off on 429. Sume splits the same way: 402 insufficient_credits is a stop, 429 queue_full or rate_limited means wait and retry.

BFL polling_url on api.bfl.ai vs Sume status_url
BFL says to always poll the polling_url it returns. Sume's job envelope carries status_url and result_url for the same reason: follow them, do not build URLs.

BFL webhooks vs polling_url, and Sume webhook mode with polling
BFL says webhook users need no polling_url change. On Sume, webhook mode still returns status_url, so verify the signed callback and keep polling as a backup.

C2PA 2.3 editing history: what trim and filter return in Sume
Content Credentials 2.3 shows clearer edit history such as resizing, markup and redactions. Sume trim and filter return a new MP4; inspect never makes one.

Cartesia accent field: multilingual voices only; Sume uses voice id
Cartesia's accent field is for multilingual voices only and works independent of locale. Sume's TTS request has no accent field: pick a voice id and language.

Cartesia Instant Voice Clone: up to 60 seconds; Sume takes a voice id
Cartesia says to feed an Instant Voice Clone up to 60 seconds of audio on sonic-3.6. Sume's TTS API does not take reference audio; it takes a voice id.

Agent SDK permissionMode omitted: auto mode, Sume gates stay
From Agent SDK 0.3.286 an omitted permissionMode can start in auto mode. Sume's idempotency_key and scope checks run server-side whatever mode you pick.

Agent SDK rewind_conversation and a Sume job: find, then cancel
After rewind_conversation or a priority-now message, the MCP call is handled client-side. A submitted Sume job has its own id: find it with jobs_list.

Claude Code: disable an MCP server mid-session, Sume jobs persist
Switching off an MCP server in Claude Code SDK sessions removes its tools for new calls. Sume jobs already submitted keep running until you read or cancel them.

claude mcp add succeeded but no server? Verify Sume with mcp_health
Claude Code 2.1.283 stopped reporting success when the config could not be written. After claude mcp add for Sume, confirm with mcp list and mcp_health.

Cloudflare Workflows deleteBatch: clean up after a Sume job
Cloudflare Workflows can delete up to 100 instances per deleteBatch call. Delete only after the Sume job reaches a terminal event, and keep the job id first.

Colossyan callback vs polling, and Sume terminal-only webhooks
Colossyan posts finished or failed to your callback, or you poll every 5 s. Sume webhooks are terminal-only, so keep status_url polling as a backup.

Colossyan intrinsicDurationTrackReference vs Sume scene duration
Colossyan can size a scene to the actor's speech. In Sume avatar videos you set voice.duration per scene, silence beats need it, and the total stays 4-60 s.

Colossyan dynamicVariables vs Sume: fill placeholders yourself
Colossyan swaps {name} placeholders from dynamicVariables. Sume's avatar endpoint has no such field: fill the script yourself, one idempotent job per recipient.

Creatify custom avatar lipsync_input and consent video, explained
Creatify custom avatars are built from a lipsync_input MP4 plus a consent video. On Sume, a photo input with an image_url creates a reusable avatar handle.

Cursor custom mode with a pinned skill: install the Sume skill
Cursor lets any skill be a custom mode pinned in the chat. Install the Sume skill with sume skills install; the mode cannot waive idempotency_key or MCP scope.