Back-in-stock video for one SKU: send the facts as input, not prose

One restock clip is one Format run: put SKU, stock count and ship date in an input object, add a short instruction, and key the run by SKU and date.

3 min readSume
All posts

A restock announcement is one run, not a batch. POST /v1/formats/{handle}/{slug}/runs needs at least one of instruction, input, previous_run_id or attachments, and the quickest way to stay accurate is to put the changing facts in input and leave the instruction short.

Split facts from direction

input is a free-form object (up to 64 top-level keys and 2 MiB). The instruction accepts 8,000 characters, but about 4,000 are carried into the run, so a pasted product page is the wrong place for a stock count. Put the numbers in input, and use the instruction for the creative direction only.

curl -sS -X POST "https://api.sume.com/v1/formats/sume/product-commercial/runs" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: restock-SKU-1042-2026-10-05" \
  -d '{
    "instruction": "Back in stock. Calm, 9:16, product on a plain surface.",
    "input": { "sku": "SKU-1042", "units_available": 120, "ships": "2026-10-08" },
    "generation_spend_cap_usd": 40
  }'

Why the key is built from SKU and date

A key is up to 255 characters and scoped to one Format. A replay of the same key returns 200 with idempotency_hit: true and the existing run, so a double click in your back office does not start a second render. A new restock a week later gets a new date in the key, so it starts a fresh run.

Read the receipt

A new run answers 202 with status_url, result_url, events_url and cancel_url. result_url returns 409 run_not_completed until the run is terminal, so poll status_url and read the result only after completed.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume