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.

Five hooks times five offers times four ratios is 100 items, which is the largest bulk queue Sume accepts. Build the matrix in a script, send it as one POST …/bulk-runs with concurrency up to 16, and map results back by item index.
Build the 100 items
Each item is the same body as a single Format run. It must name at least one of instruction, input, previous_run_id or attachments. Put the combination in the instruction and in input so the child sees it.
Create a lookup of index to hook, offer and ratio. The queue returns items[] in the same order, with index, status, run_id and error.
| Dimension | Count | Running total |
|---|---|---|
| Hooks | 5 | 5 |
| Offers | 5 | 25 |
| Ratios (9:16, 1:1, 4:5, 16:9) | 4 | 100 |
| Queue cap | 1 to 100 items | full |
Order matters
Items start in the order you send them, so put the 9:16 combinations first if that is your main placement. With concurrency: 16, items 0 to 15 start straight away and 84 wait.
If you need 6 hooks, 100 is not enough: 6 x 5 x 4 is 120. Split into two queues and use a different Idempotency-Key for each.
Read the results
The queue is completed when every item is terminal, not when every item succeeded. Check counts.failed and counts.canceled, then read the child receipt for the reason a child failed. The queue has no webhook; poll status_url, or register a webhook on each item.
Sources
Related posts
More in Formats
- 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.
- 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.
- 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.
- 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.
Written by Sume