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.

How big can a Format run request be? The instruction is capped at 8,000 characters, input at 64 top-level keys and 2 MiB, attachments at 30 images, and the whole body at 4 MiB. Anything over the body cap returns 413 payload_too_large.
These limits shape how you pass a season. An episode brief that includes a full dialogue script, a cast list and a shot order is data, not instruction text, and belongs in input.
What goes where
The Format body is the recipe (house style and quality bar). Your instruction goes after it and wins where the two disagree. The input object is a free-form data block that the Format reads by key.
| Field | Limit | Over the limit |
|---|---|---|
| instruction | 8,000 characters accepted; about the first 4,000 carried as prompt text | Refused |
| input | 64 top-level keys, 2 MiB compact | 400 |
| attachments | Up to 30 images | 400 |
| Whole body | 4 MiB | 413 payload_too_large |
| Idempotency-Key | Up to 255 characters | Rejected |
Habits that avoid errors
Send media by URL, not inline. Name at least one of instruction, input, previous_run_id or attachments; {} and {"input": {}} are 400 invalid_request. Unknown top-level fields return 400 unknown_parameter, with a suggestion if the name is close, so webook_url comes back as webhook_url.
Pick the Idempotency-Key from the item that the run makes, such as the episode id and a version you bump on purpose. A random key per request makes the header useless.
Spend and model
generation_spend_cap_usd sets this run's ceiling up to $500; an omitted value inherits the Format's cap, which is $400 for a Format that never set one. The model field picks only the orchestrating LLM; the Format's tools choose the video, image and audio models.
Sizing an episode brief
Most overruns come from pasting a whole script into one field. The docs accept 8,000 characters of instruction but carry only about the first 4,000 to the run as prompt text, so keep it well below that and put structured data in input, which is written whole to a file the agent reads and is never truncated. The full request body must stay under 4 MiB, so pass media by URL rather than inline.
- Instruction: 8,000 characters.
- Input: 64 top-level keys, 2 MiB.
- Images: 30. Body: 4 MiB.
What the errors look like
Over-limit creates do not run and do not bill. A body above 4 MiB returns 413 payload_too_large, more than 64 input keys or a non-object input returns 400, and unknown top-level fields return 400 unknown_parameter. Send a deliberately oversized body in staging and confirm your client surfaces the error text instead of swallowing it.
Sources
Related posts
More in Formats
- 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 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.
- 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.
- Can a 4:5 or 2:3 video run in Google Ads? What the specs allow
Google Ads lists 16:9, 9:16 and 1:1 as primary and says ratios in between are allowed; a spec page also names 4:3, 2:3 and 4:5. Exact sizes for Sume Timeline.
Written by Sume