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
- 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.
- AI presenter for a SaaS demo video, with or without a product image
For a SaaS demo, omit `product_image` for a productless avatar video, or add one. Each Sume avatar job runs 4 to 60 seconds, so longer demos are split.
- AI video background swap for a fashion lookbook with Seedance 2.5
Seedance 2.5 describes green screen editing that swaps a background and keeps the subject. On Sume, send the garment clip as a video reference, 4 to 30 seconds.
- Seedance 2.5 green screen editing: what Sume can do
ByteDance says Seedance 2.5 improves green screen editing. Sume's docs document an edit mode only for Gemini Omni Flash 1.1; Seedance takes video references.
Written by Sume