Bulk product videos for Prime Big Deal Days: 100 Format runs
Queue up to 100 Format runs in one bulk request with a concurrency window of 1 to 16, then poll one queue id. Setup, limits and the traps to avoid.

To bulk-generate product videos for a sale, send one POST /v1/formats/{handle}/{slug}/bulk-runs request with up to 100 items and a concurrency of 1 to 16. Each item is an ordinary Format run, and you poll one queue id instead of 100 runs.
Amazon's announcement says Prime Big Deal Days runs October 6-7, 2026, with 48 hours of deals across more than 35 categories, including beauty and fashion. That is a short window, so the product clips need to be queued before it starts. Queue behavior below is from Sume's Bulk runs page, read 2026-10-01.
What does one bulk request look like?
The body has two keys: concurrency and items. Each entry in items takes the same body as a single Format run, so a product row can carry its own instruction and input. An accepted create returns 202, and the first concurrency items are already in flight.
curl -sS -X POST "https://api.sume.com/v1/formats/YOUR_HANDLE/product-promo/bulk-runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"concurrency": 3,
"items": [
{ "instruction": "clip 1", "input": { "url": "https://example.com/1.jpg" } },
{ "instruction": "clip 2", "input": { "url": "https://example.com/2.jpg" } }
]
}'What are the limits?
| Field | Rule |
|---|---|
items | 1 to 100 entries, in order |
concurrency | Required integer, 1 to 16 |
| Scope | formats:write to create, formats:read to poll |
| Queue webhook | None; communication.webhook_url is per item |
| Cancel | No queue cancel; cancel a child run instead |
How do I know the batch finished?
Poll GET /v1/format-run-queues/{queue_id}. A completed queue means every item is terminal, not that every item succeeded, so branch on counts.failed. Read each finished child at GET /v1/format-runs/{run_id}. A 429 or 503 during polling is transient; back off, because the queue keeps working.
What about format and retries?
Mint a fresh Idempotency-Key per batch: replaying a spent key returns 202 with the old queue, and the same key with a different payload is 409 idempotency_conflict. If you assemble the finished clips afterwards, Timeline 1.0 renders 1080x1920 MP4 by default and accepts 1 to 200 video slots; see assemble long-form video. For the shorter overview, read Format bulk runs.
Sources
Related posts
More in Use cases
- ProRes 4444 or PNG sequence from AI video: Sume returns MP4
Sume's video jobs return an MP4, not ProRes 4444 or a PNG sequence. Frame stills at times you name come from video frames as images. What to use instead.
- Qwen TTS inline tags vs Sume's emotion and speed controls
Qwen-Audio-3.0-TTS reads tags like [gasp] and [angry] in text. Sume TTS uses generation_config with an emotion guide and speed from 0.6 to 1.5.
- Recraft Crisp Upscale vs Creative Upscale, and Sume's upscale
Recraft's Crisp Upscale enlarges without redrawing; Creative Upscale regenerates. Sume's Image Upscale 1.0 takes an image_url and a factor from 1 to 4.
- Relight a video with AI by API: pixel filters or a prompted edit
Sume has no relight preset. Darken or lift tone with the dim op and exposure or eq filters, or describe new lighting in a video edit prompt. What each can do.
Written by Sume