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.

OpenAI Agents 0.23 nested agent tools: one Sume key per item
Agents SDK 0.23.0 fixed tool state isolation for nested agents. For paid Sume calls, the idempotency key must still come from your item, not from the agent run.

Qwen-Image Max returns one image: what n does on Sume
Alibaba says the Max series is fixed at one image while other Qwen-Image series allow 1 to 6. Sume's n runs 1 to 10 in the schema; read the model's own range.

Seedance aspect ratios on Sume: 3:2 and 9:21 are not on every model
Sume accepts nine aspect ratios in total, but each video model lists its own subset. Check supported_aspect_ratios before you request 3:2 or 9:21.

Shotstack render statuses vs Sume job statuses: a map
Shotstack renders go queued, fetching, rendering, saving, done or failed. Sume jobs go queued, processing, completed, failed or canceled. Map them in code.

Sora Batch API render queue gone: Sume async jobs instead
OpenAI's Sora guide listed Batch API support before the September 24 shutdown. On Sume the pattern is async jobs, a queue and signed webhooks.

TikTok Upload Video: 5 pending shares per 24 hours explained
TikTok's inbox Upload Video endpoint allows at most 5 pending shares in 24 hours. Plan AI video batches around that cap and the creator's manual finish.

AI SDK stream cancel on disconnect: the Sume job keeps running
AI SDK 7.0.127 fixes stream cancellation when consumers disconnect. A cancelled stream does not cancel a Sume job: save the job id and read status later.

AI SDK 7 tool search with deferred tools and Sume tools
AI SDK 7.0.127 lets a search() callback rank eligible deferred tools. Load a few Sume tools up front and fetch the rest by tools_schema on demand.

Wan 3.0 polling every 15 seconds vs Sume's 30-second poll
Alibaba recommends polling Wan 3.0 every 15 seconds. Sume's video guide uses 30 seconds and a signed callback_url. Which to pick and why.

Wan 3.0 video URL purged after 24 hours: what Sume returns
Alibaba keeps Wan 3.0 task ids and video URLs for 24 hours. Sume returns media.sume.com artifacts instead. What to store and when to download.

WaveSpeed polls at 2 seconds minimum; Sume: next_poll_after_seconds
WaveSpeed says start polling near 2 seconds and back off to 5-10. Sume returns next_poll_after_seconds so the server sets the pace. A runnable loop for each.

YouTube notifySubscribers=false: uploading a Shorts backlog quietly
videos.insert takes a notifySubscribers parameter that defaults to true. Why to set it false when you upload a batch of Sume-made Shorts in one sitting.

YouTube publishAt in the past publishes now: a guard for batches
The Videos resource says a past publishAt publishes the video immediately, and it works only on private videos. A Python guard for scheduled Shorts batches.

YouTube search.list: 100 calls a day, and what Sume searches
search.list now has its own 100-calls-per-day bucket. What that means for finding reference Shorts, and why Sume trending search covers TikTok only.

YouTube selfDeclaredMadeForKids vs madeForKids: set it on upload
On videos.insert you set status.selfDeclaredMadeForKids; the API returns madeForKids. How the two differ, and one template for a batch of AI-made Shorts.

YouTube upload failureReason: codec, tooSmall, emptyFile
A failed YouTube upload reports one of six failureReason values. What each means and how to pre-check a clip with Sume video inspect before you upload.

YouTube videos.batchGetStats: 1 quota unit to track your Shorts
videos.batchGetStats costs 1 quota unit and returns views, likes and comments for many videos. How to tie the numbers back to the Sume jobs that made them.

YouTube API uploads stuck private: unverified project rule
Videos uploaded through videos.insert from an unverified API project created after 28 July 2020 are locked private. Test one upload before a Sume batch.

C2PA label for a partly AI-edited video: compositedWith...
When only part of a clip is AI-generated or AI-edited, the C2PA 2.3 guidance uses a different digital source type. What it says and how to log Sume edit jobs.

C2PA inputTo records prompts and seeds; Sume video has no seed
The C2PA guide says prompts, reference images and seed values can be recorded as inputTo ingredients. Sume's v1 video models accept no seed, so log other facts.

C2PA soft binding and watermarks: what a trim or re-encode does
The C2PA 2.3 spec defines soft binding for invisible watermarks. Sume's trim has exact re-encode and keyframe copy modes; here is what to verify after each.

Cloud Run concurrency target GA: a Sume webhook receiver sizing
Cloud Run's custom target concurrency and CPU scaling is GA. Size a Sume webhook receiver around the 10 second attempt timeout and 10 retries.

Cloud Scheduler retries and a static Idempotency-Key: the replay trap
A fixed Idempotency-Key header on a Cloud Scheduler POST replays the first Sume run forever. Derive the key per tick, or use Sume Actions for schedules.

Cloud Tasks batch create is GA: one Sume idempotency key per task
Cloud Tasks batch create went GA on Sep 30, 2026. Give every task its own Sume Idempotency-Key so a batch retry never doubles a paid generation.

Cloudflare Worker roles: let an agent deploy a Sume webhook receiver
Cloudflare's four Worker roles let an agent token deploy a Sume webhook receiver without delete rights. Which role to give it and what Sume still needs.

Cloudflare Queues limits vs Sume queue_full 429: who retries?
Cloudflare Queues allows 100 retries and 24h delaySeconds. Sume answers 429 queue_full or rate_limited. How to back off in a consumer without duplicate jobs.

Cloudflare Workflows step.sleep and a Sume job: poll without steps
Cloudflare Workflows step.sleep does not count toward the step limit, so a Sume job poll loop can wait cheaply. Limits, a loop shape and the retention catch.

Codex 0.160 queued messages resume after reconnect: Sume safety
Codex 0.160 resumes unsent queued messages after a reconnect without duplicate sends. That covers messages, not tool effects, so keep Sume idempotency_key.

Higgsfield 403 insufficient credits vs Sume 402: handle both
Higgsfield returns 403 when credits run out; Sume returns 402 insufficient_credits. A status-code map for 401, 403, 404, 422 and 402 when porting a client.

Higgsfield 423 and 503 model errors vs Sume provider capacity
Higgsfield returns 404, 423 or 503 for a model you cannot use now. Sume uses provider_not_configured and provider_capacity_exceeded. What to retry.

Higgsfield cancel queued request: 202 or 400, and the Sume match
Higgsfield cancels only queued requests (202, else 400). Sume cancels a job before generation starts, or returns 409 job_generation_already_started.

Higgsfield concurrency limit returns 400, not 429: Sume's answer
Higgsfield answers 400 at your concurrency cap and sends no Retry-After. Sume queues valid jobs and returns 429 queue_full only when the queue is full.

Higgsfield hf_webhook query parameter vs Sume callback_url
Higgsfield takes the webhook as an hf_webhook query parameter; Sume takes callback_url in the body and signs the delivery. Payload shapes and a Python verifier.

Higgsfield Idempotency-Key: 422 on a changed body, vs Sume 409
Both APIs replay the original job for a repeated Idempotency-Key. A changed body gets 422 on Higgsfield and 409 idempotency_conflict on Sume. Rules compared.

Higgsfield output URLs last at least 7 days: copy files out
Higgsfield keeps generated output for at least seven days and may remove it later. Where Sume serves a finished video, and why to copy it to your own storage.

Higgsfield polling: 2 to 10 seconds with jitter, vs Sume
Higgsfield says start polling at 2 seconds, grow to 10, add jitter. Sume's video docs poll every 30 seconds and honor next_poll_after_seconds. How to pick.

Higgsfield statuses: nsfw and canceled mapped to Sume job states
Higgsfield returns queued, in_progress, completed, failed, nsfw or canceled. How each maps to Sume's video and job statuses, including cancelled vs canceled.

Higgsfield upload URL: 1 hour, MP4 and WAV. Sume takes public URLs
Higgsfield inputs go through a presigned upload that expires in one hour. Sume has no upload step: pass public HTTPS URLs in frame_images or input_references.

Higgsfield webhook retries: two hours vs Sume's ten attempts
Higgsfield retries 5xx for up to two hours and wants a reply in ten seconds. Sume makes 10 attempts, 30 seconds apart, then lets you redeliver by hand.

Verify a Sume job.completed webhook in Python (stdlib)
A stdlib Python verifier for Sume job webhooks: HMAC SHA-256 over timestamp.raw_body, five-minute tolerance, rotation-safe, and it refuses an empty secret.

Image request timed out: do you pay for it on Sume?
Sume bills image jobs by outcome. A client timeout does not cancel the job, so a finished image can still bill. Use async mode and poll; do not resubmit.

Luma Build tier: 10 concurrent Ray jobs, 20 requests a minute
Luma's Build tier allows 10 concurrent Ray video jobs, 20 requests a minute and $5000 a month. How Sume's plan concurrency and queue capacity differ.

Luma Dream Machine API prompt rules: 3 to 5000 characters
Luma's Dream Machine API rejects prompts under 3 or over 5000 characters, and loop with keyframes. The pre-submit errors, and where Sume's checks live.

Luma generation states and callback_url vs Sume statuses
Luma's Dream Machine API reports dreaming, completed and failed, with a callback_url POST. How that maps to Sume's queued, processing and completed.

Luma modify video: ray-flash-2 15 seconds, ray-2 10, 100 MB
Luma's Modify Video allows 15 seconds on ray-flash-2 and 10 on ray-2, with a 100 MB source. Sume edits video with video_url on gemini-omni-flash-1.1.

Luma failure_reason moderation messages vs Sume generation_rejected
Luma reports moderation and dispatch failures as strings in failure_reason. Sume returns a job error category and next action. A map for handling both.

Luma Modify Video: adhere, flex and reimagine modes vs a Sume prompt
Luma's Modify Video has nine modes: adhere 1-3, flex 1-3 and reimagine 1-3. Sume's video edit has no mode field, so strictness comes from the prompt.

Mastra 1.69 Inngest retries option: durable agents and Sume jobs
Mastra core 1.69.0 adds a retries option for Inngest workflows and durable agents. Pair it with a Sume Idempotency-Key so a retried step never pays twice.