Real estate brokerage: one listing video per property in a bulk run
Queue up to 100 listing videos in one Format bulk run: per-item inputs, a spend cap on each item, and reading counts.failed instead of trusting completed.

A brokerage can turn a week of new listings into videos with one Format bulk run: POST /v1/formats/{handle}/{slug}/bulk-runs with concurrency from 1 to 16 and 1 to 100 items, one item per property. Each item is the same body as a single Format run, so each carries its own photos, address line and instruction. The queue runs them in a window and you read GET /v1/format-run-queues/{queue_id} for progress. You need an API key with formats:write and a saved Format whose recipe builds the listing video you want.
What goes in each item
Each item needs at least one of instruction, input, previous_run_id or attachments. For a listing, put the photo URLs and the facts to display in input, and the style rules in the Format's recipe so they do not vary per property. An item can also bind its own generation_spend_cap_usd, which keeps one oversized listing from eating the batch.
| Field | Value | Why |
|---|---|---|
| concurrency | 1 to 16 | How many listings render at once |
| items | 1 to 100 | One per property |
| items[].input | Photo URLs and listing facts | Per-property content |
| Idempotency-Key | Fresh per batch | A replayed key returns the old queue |
| Queue webhook | None | Poll status_url, or set a webhook per item |
Reading the result
completed means every item is terminal, not that every item worked. Check counts.failed, then requeue only the failed listings in a new queue with a fresh key. A bad item fails the create with a 400 before any queue exists, so validate every row first. The per-item webhook is the same as a single run; the queue has none.
Disclosure and accuracy
A batch multiplies mistakes as easily as output. Have a person check price and address on every finished video, and if any photo was AI-edited, follow your local disclosure rules; see the California AB 723 post for one example. Run it at 12 listings, not 100, the first time.
Sources
Related posts
More in Use cases
- Real estate price change: update the video text without a new render
When a listing price drops, re-burn the price on a clean master clip with one $0.20 caption job instead of re-rendering the whole tour. How to set it up.
- Real footage plus one AI shot: do you tick YouTube's AI use label?
Mixing real footage with one AI-generated shot: YouTube asks for disclosure when the result is realistic and meets one of four tests. How to sort each shot.
- Recast one video ad with several faces: consent checklist, cost
Reuse one 15 second ad with different people via H3 Max Recast on Sume: cost per variant, the release to get from each person, and how to label them.
- Recast a video with a shot over 15 seconds: split it first on Sume
H3 Max Recast takes 5-30 s with no shot over 15 s. How to trim a long take, keep the same people on each piece, and join the results in a Timeline.
Written by Sume