200 product videos in Sume: two queues of 100, 6 to 12 hours
Bulk-run 200 product videos: two queues of 100 items, 8 runs in flight, 25 rounds. At 15 to 30 minutes a run that is about 6.25 to 12.5 hours.

The plan
A Sume bulk request holds 1 to 100 items, so 200 product videos need two queues. Each item is an ordinary Format run, with its own instruction, input and optional output_schema. concurrency is an integer from 1 to 16 and sets how many child runs stay in flight inside that queue.
Send each queue with POST /v1/formats/{handle}/{slug}/bulk-runs, a fresh Idempotency-Key per queue, and a key that carries formats:write. Poll GET /v1/format-run-queues/{queue_id} with formats:read. The queue itself has no webhook, so put communication.webhook_url on each item if you want one signed event per video.
How long it takes
The Format docs say long-form video usually takes 15 to 30 minutes of work per run. The arithmetic below is a best case, because it assumes every slot is full and the workspace's own generation concurrency does not cut the window. Rounds are 200 divided by runs in flight, rounded up.
| Runs in flight (both queues) | Rounds | At 15 min per run | At 30 min per run |
|---|---|---|---|
| 4 (2 queues x 2) | 50 | 750 min = 12 h 30 min | 1500 min = 25 h |
| 8 (2 queues x 4) | 25 | 375 min = 6 h 15 min | 750 min = 12 h 30 min |
| 16 (2 queues x 8) | 13 | 195 min = 3 h 15 min | 390 min = 6 h 30 min |
| 32 (2 queues x 16) | 7 | 105 min = 1 h 45 min | 210 min = 3 h 30 min |
What can stop the window being full
Child runs still go through ordinary admission: wallet, workspace generation concurrency and spend caps. If the workspace allows fewer concurrent generations than you asked for, the queue does not run faster than that. Start at 8 and read counts before you raise it.
Also decide what a ceiling looks like before you start. Every Format has a spend cap, and a Format that never named one reports $400. A run can never spend more than its effective cap, but 200 items at a $400 cap is a theoretical ceiling of $80,000, and at a $120 cap it is $24,000. Those are ceilings, not forecasts. Set generation_spend_cap_usd per item to what one video should cost.
Run it and read it
Create both queues, then poll each queue with exponential backoff. A one-second poll gives you nothing on 15-minute work and spends read budget. Queue status becomes completed when every item is terminal, which is not the same as all succeeded. Branch on counts.failed and counts.canceled.
For each failed item, error is only the generic format_run_failed. Read the child receipt at GET /v1/format-runs/{run_id} for the real reason, then resubmit just those rows in a new queue with a new key. Replaying a spent key returns 202 with the old queue.
- Two create calls cost two write requests. Even the Free plan's 120 writes a minute is far more than this needs.
- Cancel a child with
POST /v1/format-runs/{run_id}/cancel; there is no queue-level cancel. - A bad item fails the whole create with
400anddetails.indexbefore any queue exists.
Sources
Related posts
More in Formats
- A 340-product catalog: four Sume bulk queues of 100, 100, 100 and 40
A bulk queue holds 1 to 100 items, so 340 product videos need four queues. Split the list, key each queue, and remember workspace concurrency still applies.
- Bulk queue key from a payload hash: same body 202, new body 409
Derive a Format bulk queue Idempotency-Key from a sha256 of its body. The same body replays 202 with the old queue; a changed body gives 409.
- Bulk queue spend ceiling: 100 items at $2 is $200; 16 live is $32
With generation_spend_cap_usd of $2 per bulk item, 100 items cap at $200 in total and 16 running items at $32 at once. Caps are ceilings, not prices.
- Bulk queue, empty wallet: failed items, fresh key, check balance
If the wallet runs out during a bulk run, later child runs fail admission and become failed items. Check the balance, then resubmit with a fresh key.
Written by Sume