Three Demand Gen video hooks in one Sume bulk run
Queue three hook variants of one video in a single Sume Format bulk run (up to 100 items per request) so you can test which opening works.

To get three video variants in one pass, queue three items in a single Format bulk run with POST /v1/formats/{handle}/{slug}/bulk-runs; one request can hold up to 100 items. How many videos a Demand Gen campaign should carry is Google's call, and this post does not state it; check the current Google Ads guidance.
Make the three differ in the hook
The point of three videos is to give the campaign something to choose between. Three videos that differ only in the first seconds, the hook, test a clear variable and keep the rest of the ad constant.
Create the queue
A bulk request is a server-side queue of ordinary Format runs. Each item is one run with its own receipt. concurrency sets how many are in flight at once. Use a fresh Idempotency-Key for each batch, since replaying a spent key returns the old queue.
curl -sS -X POST "https://api.sume.com/v1/formats/your-handle/your-format/bulk-runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"concurrency":3,"items":[
{"instruction":"Hook A: open on the problem, 15 s"},
{"instruction":"Hook B: open on the result, 15 s"},
{"instruction":"Hook C: open on a question, 15 s"}
]}'Poll and check
The key needs formats:write to create a queue and formats:read to poll it. Poll GET /v1/format-run-queues/{id}. A queue reaching completed means every item is terminal, not that all succeeded, so branch on counts.failed. The queue itself has no webhook; set communication.webhook_url per item.
- Keys made before the Formats API shipped lack these scopes; create a new key
- Cancel a single child with
POST /v1/format-runs/{run_id}/cancel - There is no public cancel-queue endpoint
- Read each child at
GET /v1/format-runs/{run_id}
Test one first
Spend one run on a test first. A bulk request starts the first concurrency items right away, so a wrong instruction costs three runs instead of one.
Sources
Related posts
More in Formats
- Retry one scene and keep the voice track: Format previous_run_id
A new voice is not a reason to redo a whole video. Continue a finished Format run with previous_run_id and an instruction that touches one scene only.
- YouTube template videos need distinct storylines: vary each brief
YouTube monetization policy flags mass-produced, repetitive template content. Vary the brief for every item in a Sume Format bulk run and test similarity.
- Ready-made Formats for product video: the Sume Format catalog
Sume ships ready-made Formats for product and UGC-style video and images, each callable from your backend with one HTTP request at the reserved sume handle.
- What is a Sume Format? Turn an agent thread into one API call
A Sume Format is a saved video recipe your backend calls by handle and slug. One POST runs it in a fresh sandbox and returns media plus optional typed JSON.
Written by Sume