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

Gemini /v1beta/voices vs finding a voice id on Sume
Gemini added a Voices endpoint on 2026-09-22. Sume has no separate voices list route; list avatars and use one whose `voice.status` is `ready`.

TTS invalid_voice_id 400: a voice name from another vendor
Sume returns 400 `invalid_voice_id` for a voice name that is not a UUID or `voi_` id, before any job or credit. Copy an id verbatim or send an avatar.

Lyria RealTime API: streaming music vs a Sume file job
Lyria RealTime streams steerable instrumental music over a WebSocket. Sume's Music Router returns a finished audio file per job. Here is how they differ.

Lyria 3 Clip 30-second music API: ids Sume lists
Lyria 3 Clip always makes 30 seconds. Sume does not list it; ask for a 30-second track in the prompt with sume/music-auto, lyria-3.5 or lyria-3-pro.

Kazakh speech to text API: Nova-3 and Sume language_code
Deepgram added Kazakh to Nova-3 on Sep 3, 2026. Sume STT 1.0 takes an optional language_code hint, or auto-detect. How to send audio and check the output.

AI music prompt max length: 5000 characters on Sume
Sume's Music Router accepts a prompt of 1-5000 characters. What to spend them on: a seven-axis brief, section markers and exclusions, in one positive prompt.

Text to speech failed request: charged? Sume dry_run and cap
A TTS job that fails on Sume's duration limit captures no credit. Use dry_run to preview cost and max_spend_usd to cap it before a paid request.

Music API timeout at 30 seconds: poll or webhook instead
A song can outlast Sume's 30-second wait. The wait bounds the HTTP call, not the job, so submit async and poll the status URL, or use a webhook.

AI video of a celebrity endorsing your product on TikTok?
TikTok's 2026H2 guidelines list a public figure supporting products they have not actually addressed as not allowed. Use an original avatar instead.

TikTok AI label or your own caption, sticker or watermark
TikTok lets you disclose AI content with its AIGC label or your own clear caption, sticker or watermark. Burn a caption or add an overlay plate with Sume.

TikTok video ineligible for recommendation: AI content rule
TikTok keeps realistic content about public-interest matters out of the For You feed when it is not confirmed as AI or edited. What that means for Sume clips.

TikTok AI label for cropping or reframing: not needed
TikTok says disclosure isn't needed for small edits like color correction, reframing or cropping. See which Sume crop, fit and trim settings are those edits.

Do you have to label a face swap video on TikTok?
TikTok's disclosure list includes a face replaced with someone else's. Sume Avatar Face Swap output is covered: Beta endpoint inputs and disclosure.

Can I make a news-style AI video for TikTok?
TikTok bans AI content made to look like a real news source or a crisis event. A clearly fictional explainer is different. What to avoid, and how to label it.

TikTok unoriginal content and the For You feed: AI batches
TikTok keeps reused material with nothing new out of the For You feed. How to plan templated Sume batches so every video carries something new of its own.

TikTok AI video of a real person without consent: the rule
TikTok does not allow AI likenesses of private figures, including anyone under 18, without consent. How Sume's prompt, props and image avatar inputs relate.

Label an AI background swap on a TikTok Shop video?
TikTok asks for disclosure when a background or object is added or removed in a misleading way. Keep the product itself unchanged and swap only the scene.

TikTok AI parody: spoofs are allowed, realism needs a label
TikTok lists a spoof, meme or dance as allowed humor or art. A realistic AI parody of a person can still need a label. Where the line sits and how to build one.

Instagram API poll_attachment on Reels: how the add-on works
Set poll_attachment when creating a Reel container: two to four options, 3 days by default, Facebook Login only. What Sume prepares before that call.

Instagram API is_comment_prompt_used: comment prompts on Reels
Set is_comment_prompt_used to true on the media container to attach a comment prompt, then read replies from prompt_response. One add-on per media, no poll.

Instagram media_publish config_issue CAPTION_NOT_ATTACHED
A media_publish call can succeed with the caption dropped. The response then carries config_issue CAPTION_NOT_ATTACHED. What it means and a burned-in fallback.

graph.instagram.com 400: parameter only for Facebook Login
Requests to graph.instagram.com with a Facebook-Login-only parameter now return 400 naming it, instead of being ignored. How to read the error and fix the call.

Instagram publish error: linked Facebook account restricted
Meta added a publishing error: the linked Facebook account is restricted and cannot publish video. What it blocks and how to post stills from a clip meanwhile.

Instagram API media_url missing: copyrighted audio and reels
Since 2026-07-30 Instagram omits media_url for video with copyrighted audio or reels with downloads off. Treat it as optional and import files you own.

Bluesky video length limit: 10 minutes, and how to trim to fit
Bluesky's app sets VIDEO_MAX_DURATION_MS to 10 minutes, and 1.132.0 removed the 10-minute gate. Trim longer clips with Sume video trim first.

Bluesky video format not supported: the accepted MIME types
Bluesky's app accepts video/mp4, video/mpeg, video/webm, video/quicktime and image/gif. For anything else, re-encode to MP4 with Sume video trim.

MCP server/discover against Sume's hosted endpoint
The 2026-07-28 MCP spec adds server/discover. Sume's hosted server does not implement it and answers -32601; read initialize and tools/list instead.

MCP listTools nextCursor: Sume returns a single page
TypeScript SDK 2.2.0 follows nextCursor in listTools(). Sume's tools/list returns a tools array with no cursor, so the walk ends after one request.

MCP subscriptions/listen: Sume has no push stream to join
MCP's 2026-07-28 spec adds subscriptions/listen for change notifications. Sume's hosted MCP answers POST only and declares listChanged false.

MCP Apps _meta.ui.resourceUri: what a Sume tool call shows
MCP Apps tools point at a ui:// resource for the host to render. Sume's hosted MCP lists plain tools, so a host shows the tool result, not an app.

MCP expectedIssuer with client credentials: Sume uses an API key
MCP TypeScript SDK 2.2.0 adds expectedIssuer to machine-to-machine providers. Sume's OAuth is authorization_code only; headless agents use an API key.

OAuthFlowError issuer mismatch in the MCP Python SDK 2.2
Python SDK 2.2 rejects authorization server metadata whose issuer is not the server's origin. Sume's metadata sets issuer to the MCP origin.

MCP Python SDK idle session 404: what it means for Sume jobs
Python SDK 2.2 closes stateful sessions idle for 30 minutes, then 404s. Sume's hosted MCP is POST-only; re-poll jobs_wait with the same ids, never resubmit.

Claude Code auto mode with Sume's MCP: paid-call gates still apply
In Claude Code auto mode a classifier reviews each action. On Sume's MCP, paid calls still need idempotency_key, and dry_run and max_spend_usd stay available.

claude -p --permission-prompt-tool with Sume paid jobs
Headless claude -p can route permission prompts to an MCP tool. For Sume paid jobs, keep idempotency_key stable and wait with jobs_wait in 55s slices.

Claude Code AGENTS.md without CLAUDE.md: Sume skills install
Claude Code reads AGENTS.md when no CLAUDE.md exists. sume skills install writes to .agents/skills or .claude/skills, so check which one you got.

CLAUDE_CODE_DISABLE_WEB_FETCH: what Sume crawl tools do
CLAUDE_CODE_DISABLE_WEB_FETCH turns off Claude Code's WebFetch tool. Sume's crawl_* tools come from an MCP server, so they are a separate path.

OpenAI Agents SDK MCP tool_input_guardrails for Sume spend
tool_input_guardrails on an Agents SDK MCP server can reject a call before it runs. For Sume paid tools, check idempotency_key and max_spend_usd.

OpenAI Agents SDK MCP require_approval for Sume write tools
Use require_approval with a tool_names list to gate Sume write tools by name, or connect with OAuth mcp:read so those tools are never visible.

AI SDK SSE heartbeat vs Sume jobs_wait 55s slices
AI SDK 7.0.123 adds optional SSE heartbeats for idle UI streams. Sume's jobs_wait is capped at 55s per call, so you still repeat it with the same ids.

AI SDK addToolOutput clears approval: Sume idempotency_key
AI SDK 7.0.126 clears tool approvals when addToolOutput runs. If a paid Sume call replays, a stable idempotency_key is what guards the create.

Activepieces webhook authentication failed run: Sume signature
Activepieces 0.92 shows a failed run when webhook authentication fails. Sume sends an HMAC signature header you verify yourself in a code step.

Zapier MCP on the Free plan, and Sume's own MCP endpoint
Zapier says MCP is now in its Free, Pro and Team plans. Sume's hosted MCP is a separate server at mcp.sume.com/mcp, reached with OAuth or an API key.

Gemini CLI keeps the OAuth refresh token: what Sume's MCP does
Gemini CLI 0.62 retains the OAuth refresh token on refresh. Sume's MCP token endpoint accepts only authorization_code, so expect a fresh sign-in, not a refresh.

Codex instant_interrupt mid jobs_wait: Sume jobs keep running
Codex's opt-in instant_interrupt lets new input steer a running turn. A Sume job submitted earlier keeps running and billing; re-read it with jobs_wait.

n8n nested AI agent tool: one idempotency_key per Sume generation
n8n's AI Agent Tool can now use its own tools under a pre-v3 parent agent. If both levels reach a Sume paid tool, reuse one idempotency_key per generation.

n8n MCP workflow access error vs a Sume insufficient_scope
n8n now links MCP workflow access errors to workflow settings. A Sume failure reads differently: insufficient_scope means the OAuth session lacks mcp:write.

Demand Gen 9:16 image ad size for YouTube Shorts
Google lists 9:16 Demand Gen images at 600x1067 minimum, 1080x1920 recommended. On Sume, request 1088x1920 (a multiple of 16) and crop 4 px per side.