Format run receipt: $14.96 billed against a $120 cap, field by field
The documented Format run receipt shows billable_amount_usd_micros 14,959,638 and a cap of 120,000,000. How to read micros, and what unused cap means.

The example webhook in the Format run docs carries a usage block: billable_amount_usd_micros is 14959638 and generation_spend_cap_usd_micros is 120000000. Both are USD micros, so divide by 1,000,000.
That is $14.96 billed against a $120 cap. The cap is a ceiling the run may not exceed, not a charge. The remaining $105.04 stays in the wallet.
| Field | Micros | Dollars |
|---|---|---|
| billable_amount_usd_micros | 14,959,638 | $14.96 |
| generation_spend_cap_usd_micros | 120,000,000 | $120.00 |
| Headroom (cap minus billed) | 105,040,362 | $105.04 |
Why the cap matters more than the bill
A Format run is allowed to spend up to its cap. The docs set the default cap at $400 and the maximum at $500, so a request without an explicit smaller cap can legally reach $400. The receipt example shows the sensible habit: a $120 cap for a job that landed at about an eighth of it.
The same payload is returned by GET /v1/format-runs/{run_id}, so one parser reads both the webhook and a poll.
micros = 14959638
print(f"${micros / 1_000_000:.2f}")Sources
Related posts
More in Formats
- Format run webhook receiver in Python: HMAC and a 5-minute window
Verify a Sume format.run.terminal webhook in Python: HMAC-SHA256 over timestamp.raw_body, stale-timestamp rejection, empty-secret refusal, run_id dedupe.
- Format showcase field: judge a Format by a real output first
GET /v1/formats returns showcase, a verified sample output. Use it with description and io to pick a Sume Format before you spend credits on a run.
- Format spend caps: the $400 default, $500 maximum, and your own
A Sume Format run can never spend past its cap. How the cap is chosen, what happens when a run hits it, and how to size generation_spend_cap_usd per run.
- Format vanity URL or skl_ invoke_url: store the opaque path
A Format has a vanity URL (handle/slug) and an opaque skl_ invoke_url. Renamed handles keep resolving for 90 days, but only the skl_ path survives every rename.
Written by Sume