Which Format version ran my API call? Check the receipt
Every Sume Format run receipt carries format.version. Read it after you edit a package, so a bulk batch or schedule is never judged against the wrong version.

To find out which Format version ran your API call, read the format.version field on the run receipt. A package edit does not change a run that has already started, so the receipt is your proof of which version produced a given video.
This matters the moment you edit a Format that something else is calling: a bulk queue, a script on a timer, or a teammate. Without the version on record, a good result and a bad result look identical until someone diffs the packages by hand.
A concrete example: you tighten the hook rules in a Format at 10:00 while a scheduled run fires at 10:05 and a bulk queue is halfway through. Three populations of output now exist, and only the version on each receipt can sort them.
What the receipt records
The run receipt returned by POST /v1/formats/{handle}/{slug}/runs, and again by the status and result URLs, includes a format object with a version. Store it next to the run id in your own table. The Format runs page lists the receipt fields, and the Call a Format page shows the request that creates one.
Two details keep you out of trouble. First, the invoke_url that starts with skl_ is permanent, while a renamed handle keeps resolving for 90 days. A caller using an old handle still reaches your Format, but you should not rely on that window. Second, the version describes what ran, not what is current. A receipt from last week will show last week's version even after you edit.
Editing a package while work is in flight
The Contents API writes the package as a commit. A multi-file PUT at the package root lands as one commit, and an If-Match header carrying the package sha makes a second editor fail with 409 format_package_sha_mismatch instead of silently overwriting you. The Format contents page covers both.
A run reads its package when it starts and is unaffected by later edits. In a bulk queue, every item is its own run, so the practical reading is that items already running keep the old package while items that start after your commit use the new one. Treat a mid-batch edit as creating two populations, and let the version field tell you which item belongs to which.
If you need a clean cut, the safest pattern is to pause what you control before the commit: stop adding items to your own queue, let in-flight runs finish, commit, then run one canary. The platform will not hold your runs for you, so the pause is your job.
What Sume does not give you
There is no revert, blame, or history browser in the API. If you want to go back, you PUT the older file content again, and that creates a new version. Keep your own copy of each package in source control, and record the receipt version beside the commit that produced it.
The table summarizes what to store and where it comes from.
| Field | Where it comes from | Why keep it |
|---|---|---|
| format.version | Run receipt | Proves which package ran |
| invoke_url (skl_ id) | Receipt or catalog | Permanent address that survives renames |
| package sha | Contents API read | Value to send in If-Match on your next edit |
| status and failure code | Receipt | Separates a bad package from a bad input |
A small routine for edits
Before you edit, read the package sha. Commit with If-Match. Then start one test run and confirm the receipt shows the new version before you release the batch or the schedule. If you promote a change by renaming rather than editing, remember that old callers keep working for 90 days, which can hide the fact that they still run the old recipe.
If two runs from the same afternoon disagree and you cannot say why, compare the version field first. It is the cheapest check in the whole debugging path, and it costs nothing.
Write the version into your review notes too. When a reviewer says the captions looked better on Tuesday, you can answer with the version that ran on Tuesday and the one that runs today, instead of guessing.
Sources
Related posts
More in Formats
- 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.
- How to embed AI video generation in your product with Sume Formats
To embed AI video generation, your server holds one Sume API key and runs a Format per customer, with a derived Idempotency-Key, spend cap, and webhook.
- Sume Format bulk runs: queue up to 100 renders in one request
A Sume bulk request queues 1 to 100 ordinary Format runs on the server and keeps 1 to 16 in flight. Poll one queue URL; read each child as a normal run.
Written by Sume