Cyber Monday product videos in bulk: a Sume Format queue
Adobe expects $15.1B on Cyber Monday. How to run one Sume Format over a product list with a bulk queue, concurrency 1 to 16, and recheck failed items.

To make a product video for every item in a catalog before Cyber Monday, send one Format through the bulk-run endpoint: POST /v1/formats/{handle}/{slug}/bulk-runs. It takes 1 to 100 items per queue and a concurrency from 1 to 16. Adobe's forecast, reported 2026-09-29, puts Cyber Monday at $15.1 billion, up 6.2%.
The queue's limits
The bulk-runs docs set these rules, and one of them surprises people: there is no webhook for the queue, only per-item events.
| Setting | Value | Note |
|---|---|---|
items | 1 to 100 | Split a larger catalog into several queues |
concurrency | 1 to 16 | Higher is faster, and spends faster |
| Queue webhook | None | Use the per-item webhook or poll |
| Status | GET /v1/format-run-queues/{id} | completed is not all succeeded |
A sensible rollout
Run three items at concurrency 1 first, and read their receipts. If the cost and the look are right, raise the concurrency. Set a spend cap on the items, so that one stubborn product cannot spend more than the rest. Work out the total from usage.debited_usd_micros on those first three, then multiply, and keep a margin.
When the queue ends, list each item's status. Items that failed can be queued again as a new, smaller queue. Use a fresh Idempotency-Key for the requeue, since the old key with the same body would only replay the failed result.
Timing
Leave a few days between the first batch and the day. Generation can fail, and a review pass takes longer than the run. For the highest-stakes products, plan a human check of every file before it goes live, because the API runs unattended.
Items need clean inputs
A queue is only as good as its rows. Make every item carry the same fields, with a clear image and a short product name, and reject rows with missing images before you submit. One bad row can fail and still be counted inside a completed queue, so validate first and save yourself a requeue.
Keep a record
A bulk run produces a lot of files, and you will want to trace each one. Keep a short log beside the files: the Format slug, the exact instruction, the Idempotency-Key and the final cost from the receipt. When something works, you can repeat it on demand, and when something fails, you can see what changed between the two runs.
Sources
Related posts
More in Developers
- How to watch the Sume image model list for new and removed models
Image catalogs change. Snapshot GET /v1/images/models each night and diff the ids in Python, so a retired or new model reaches you before a request fails.
- Django webhook view for an AI video job: csrf_exempt and HMAC check
A Django view that verifies Sume's x-sume-webhook-signature over timestamp.raw_body, rejects an empty secret, and handles job.completed for a /v1/videos clip.
- Does a crossfade shorten a Short? Timeline start times explained
In Sume Timeline the declared start of each slot is authoritative, so a crossfade does not eat into the total length. How to keep a Short under its limit.
- Does my Short have audio? Check probe.has_audio before captions
Transcribing a silent clip returns inspect_source_has_no_audio. Probe has_audio first with a frames:false video inspect, then caption only clips with a voice.
Written by Sume