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.

6 min readSume
All posts

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.

Bulk run fields for a listing batch, read 2026-10-03
FieldValueWhy
concurrency1 to 16How many listings render at once
items1 to 100One per property
items[].inputPhoto URLs and listing factsPer-property content
Idempotency-KeyFresh per batchA replayed key returns the old queue
Queue webhookNonePoll 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

All Use cases posts

Written by Sume