Continue a Sume Format run with previous_run_id after a review gate
Send previous_run_id on a new POST .../runs so the agent redoes one part. A yes/no review model decides whether to continue; each new run gets its own webhook.

A Format run is one agent turn, and previous_run_id on a new POST …/runs continues the same conversation. Sume replays what the agent produced, so it can redo one part and keep the rest. That makes a review gate cheap to add: a decision model reads the finished output, says accept or redo, and your code sends the continue request only on a redo.
What a continue changes
Each continued run is a new run with its own receipt and its own single terminal webhook. The webhook of the original run already fired and does not fire again, so your handler must treat the new run id as a new job.
| Item | Original run | Continued run |
|---|---|---|
| Run id | arun_... | A new arun_... |
previous_run_id | null | The original id |
| Terminal webhook | Already sent | Sent again, own id |
| Spend cap | Its own | Send a new generation_spend_cap_usd |
def next_request(prev_id: str, verdict: str, note: str) -> dict | None:
if verdict == "accept":
return None
return {
"previous_run_id": prev_id,
"instruction": f"Redo only the part with this problem: {note}",
"generation_spend_cap_usd": 2,
}
print(next_request("arun_example", "redo", "the caption is cut off"))
print(next_request("arun_example", "accept", ""))
Cap the loop
Limit the number of redo loops in your code. A decision model that says redo every time will keep spending, and the only thing that stops it is a counter and a cap you own.
Check the docs before you ship
Sume's limits and field names change faster than blog posts do. Read the linked docs pages for the current request fields before you ship, and send a dry_run or a low spend cap on your first real call.
Sources
Related posts
More in Formats
- Cost per Reel from Format run receipts: sum billable_amount_usd_micros
Each Sume Format run receipt reports usage.billable_amount_usd_micros. Divide by 1,000,000 for dollars. A Python loop prices a Reel batch from its run ids.
- Cyber Monday price changed after render: rerun one SKU or continue it?
One SKU's price changed after its video rendered. Send a new run with new input, or continue the old run with previous_run_id. Here is when each fits.
- ElevenLabs Flows templates API vs a Sume Format run with a webhook
ElevenLabs added Flows template endpoints on Sep 28: list, details and run with a webhook. Sume Formats give the same three steps for image, video and audio.
- A failed Format run still lists its media: read artifacts[], continue
A Sume Format run that ends failed still lists its media in artifacts[], and you can continue it with previous_run_id. Here is when that works.
Written by Sume