Blog

Formats

Sume Formats over the API: create and version a Format, call it, run bulk batches, get structured output, take webhooks, and debug failed runs.

Start with: What is a Sume Format? Turn an agent thread into one API call

5 hooks x 5 offers x 4 ratios = 100: one weekly bulk queue

Sume bulk runs take 1 to 100 items. A 5 hooks by 5 offers by 4 ratios matrix fills the queue exactly. Name each item by index so results map back.

After Sora: keep the recipe, not the prompt, as your stable layer

OpenAI named no replacement for the Sora Videos API. Put house style and output rules in a Sume Format so the next model change does not rewrite your code.

Format spend caps: the $400 default, $500 maximum, and your own

A Sume Format run can never spend past its cap. How the cap is chosen, what happens when a run hits it, and how to size generation_spend_cap_usd per run.

Format showcase field: judge a Format by a real output first

GET /v1/formats returns showcase, a verified sample output. Use it with description and io to pick a Sume Format before you spend credits on a run.

List the Formats by Sume that return video, in Python

Call GET /v1/formats, page with next_cursor, and filter on the sume handle and io.output_kind to find ready-made video Formats. Standard library only.

TikTok 60-minute uploads vs Sume's 30-minute source limit

Sociality.io reports TikTok uploads up to 60 minutes. Sume trims and Timelines stop at 1800 seconds (30 minutes). What fits, and the cut points for the rest.

Format run receipt: $14.96 billed against a $120 cap, field by field

The documented Format run receipt shows billable_amount_usd_micros 14,959,638 and a cap of 120,000,000. How to read micros, and what unused cap means.

Recreate a winning ad's structure for your product with Sume

sume-recreate keeps a reference video's scene order, beat timing and caption rhythm, casts a new presenter and generates every shot fresh. How to call it.

Sume Formats that return a product still instead of a video

Nine Sume catalog Formats are declared with text input and image output, from water-splash-hero to magazine-cover-campaign. Use them for 9:16 hero stills.

A Sume bulk queue item failed: read the child receipt first

A Sume queue item only says format_run_failed. Open the child run by run_id, compare spend to the cap, read output_error, then retry with previous_run_id.

Run 300 ad variants as three bulk queues on Sume

One Sume bulk queue holds 1 to 100 Format runs, so 300 variants means three queues with their own idempotency keys, caps and failure checks. The limits to plan.

Sume product commercial vs cinematic studio vs beauty studio

Three Sume catalog Formats make premium 9:16 product films: product-commercial, cinematic-studio-commercial and beauty-studio. How to call each.

Python: find the Sume Format that takes your input and returns video

Page through GET /v1/formats and filter on the io profile (input_kind, output_kind) to pick a Sume Format by shape. Includes the null-io case.

Python: turn a product CSV into Sume bulk Format queues

A short Python script splits a product manifest into batches of 100, builds one bulk body per batch with per-item spend caps, and keeps idempotency keys stable.

Restyle your own footage with the Sume restyle Format

sume-restyle keeps the motion, timing and cuts of a clip you attach, rewrites its look chunk by chunk, and reassembles it with your original audio.

Virtual try-on or virtual fitting: which Sume Format for clothing?

Both are Sume catalog Formats that take a garment still and return 9:16 video. Try-on is an outfit-change reveal; fitting is a fit preview with a small turn.

Cast pack for a series Format run: the 30-file attachment budget

One Format run carries 30 media files in total, at most 30 images, 10 videos and 10 audio, counting URLs in input. How to fit a cast and two locations in.

Weekly series drop: on_active_run reject stops a second render

Set on_active_run to reject and a second episode run on the same Format answers 409 format_run_in_progress instead of starting. skip records a skipped run.

Season outline as nested input: one key, 64-key limit, 2 MiB

Put a whole season outline under one key of a Format run's input. Only top-level keys count toward 64, and the body can be up to 2 MiB, so 40 episodes fit.

Bulk queue says completed: it does not mean every episode rendered

A Sume Format queue is completed when every item is terminal, failed and canceled included. Check counts.failed and counts.canceled before publishing a season.

Cancel one episode in a running Sume bulk queue: what it frees

There is no cancel-queue endpoint on Sume. Cancel one item run and its slot frees for the next episode. A canceled run delivers no webhook; read cancel_effect.

Render a Short and wait for it in one request? Timeline sync mode

Timeline 1.0 can answer a Short render in one request when mode is sync and the job finishes within 30 seconds. Otherwise it returns 202 and you poll.

Previously on: add a recap to a YouTube Shorts series episode

Open a Shorts episode with a Previously on recap: build it with Timeline 1.0 audio.parts and see what it costs per minute.

Shorts series sequential playback: fade out or hard cut each episode?

YouTube plays Shorts series episodes in order. Pick a hard cut or a short fade at the end of each one, with the Timeline 1.0 fade limits.

Continue a scene in the next Shorts episode: last frame as first frame

Pull the last frame of episode 1 with Sume video frames and use it as the first frame of an Omni clip for episode 2. Sequence, API calls and an 8-second price.

Does each Shorts series episode need to stand alone?

Each Shorts episode may be the first one a viewer sees. Add a recap overlay with Sume trim, compose and Timeline 1.0 for about $0.15.

Animate a photo in a Short: why Timeline stills stay static

A still in a Timeline 1.0 slot is a static hold and its motion field is ignored. To move a photo, generate a 3-second Omni image-to-video clip and cut that in.

How do I cap what one Shorts episode run can spend in Sume?

Set generation_spend_cap_usd on each Format run: up to $500, 0 is rejected, null means the $500 platform maximum, and omitting it inherits the Format's cap.

Queue a 100-episode Shorts season in one Sume call?

Yes: one bulk-runs call queues up to 100 Format runs, 1 to 16 at a time. Here is what it returns, what it skips, and how to poll a season.

Why did my Shorts episode Format run fail after 90 minutes?

A Sume Format run has an expires_at deadline of 90 minutes from creation, after which it is force-finalized as failed. Split an episode into scene runs.

Redo one scene of a Shorts episode without redoing the episode

Continue the same Format thread with previous_run_id and a new instruction to redo a single scene. Sume treats it as one more turn of the same conversation.

Format run webhook receiver in Python: HMAC and a 5-minute window

Verify a Sume format.run.terminal webhook in Python: HMAC-SHA256 over timestamp.raw_body, stale-timestamp rejection, empty-secret refusal, run_id dedupe.

Format run limits: 64 input keys, 2 MiB, 8,000-character instruction

Put episode data in input (64 top-level keys, 2 MiB) and the task in instruction (8,000 characters). The body cap is 4 MiB; unknown top-level fields return 400.

Format vanity URL or skl_ invoke_url: store the opaque path

A Format has a vanity URL (handle/slug) and an opaque skl_ invoke_url. Renamed handles keep resolving for 90 days, but only the skl_ path survives every rename.

Format run create: 202 fresh, 200 replay, 409 conflict in Python

A Format create returns 202 for a fresh run and 200 with idempotency_hit true for a replay. 409 means conflict or in-flight. A Python classifier.

Micro-drama episode manifest as a Format output schema (strict rules)

Bind an output_schema to a Format run and get typed JSON: episode number, title and a SumeMediaFile video. Strict subset: object root, every property required.

One bad item in a 100-item Format bulk request: 400, nothing runs

A Format bulk create validates every item first. One invalid item returns 400 with details.index and queues nothing.

No queue webhook on Sume bulk runs: count item webhooks instead

Sume bulk queues have no queue-level webhook. Put a webhook_url on each item and count terminal events to know a season is finished.

Poll a Sume bulk queue every 10 seconds: read limits by plan

How often can you poll a Sume bulk queue? Reads are 40 times the write limit, so a 10-second poll fits every plan. The math, and when to back off.

Sume webhook payload is null: receipt over 1 MiB, fetch result_url

A Sume format.run.terminal webhook with payload null means the receipt was over 1 MiB. Read error.result_url and fetch the receipt instead of failing the run.

enum and const in a Sume output schema: a status that cannot drift

Use enum and const in a Sume output_schema to pin a status field to values your publisher expects, since oneOf and allOf are rejected. Examples that pass.

Retry only the failed episodes from a Sume bulk queue

A Sume bulk queue shows completed even when items failed. Find the failed children and re-queue only those, with fresh keys and untouched keys for the rest.

Season 2 of a Shorts series: same Sume Format, new input, new keys

Start season 2 without rebuilding anything. Keep the Format, change the input and idempotency keys, and keep season 1 receipts as a style reference.

Shorts series bulk queue finishes out of order: publish by number

Episodes in a Sume bulk queue run in parallel and finish in any order. Sort by an episode number in your output schema, not by completion time.

Shorts series: episode video and thumbnail from one Format run

YouTube Shorts series take a custom thumbnail per episode. Bind one output schema so each Sume Format run returns the video and the thumbnail together.

Sume Format run expires_at: 90 minutes, and how to set your timeout

A non-terminal Sume Format run carries an expires_at, 90 minutes from creation. Use it as your client timeout instead of inventing a number.

Sume output schema limits: depth 10, 5,000 properties, 120,000 chars

How big can a Sume output_schema be? Depth 10, 5,000 properties and 120,000 characters, and a refusal before any spend. What to flatten and where it fails.

Format run output_extraction_failed: it stays completed, read again

output_extraction_failed is a transport failure, not a verdict. The run stays completed and Sume projects the output again on your next read of the receipt.