AI video generation cost per video: what one Sume API run cost
To see what one Sume run or video job cost, call GET /v1/usage with run_id or job_id and read debited_usd: the wallet deduction, agent turns included.

To see what one AI video run or job cost on Sume, call GET /v1/usage with run_id (or job_id, or thread_id) and read summary.debited_usd: what the wallet actually deducted for that scope, the agent's own LLM turns included. A Format run receipt's usage.billable_amount_usd_micros is the spend-cap figure, not the total.
The fields below come from Sume's Usage and Runs and results pages and the API reference, read on 2026-09-26. How a cap bounds spend before and during a run is covered in Spend caps for unattended AI agents.
How do I get the cost of one run?
Pass the run id to GET /v1/usage. The response adds a summary folded over every ledger row the scope caused; limit (1–100) only caps the rows listed, never the sum. A run scope covers a Format, Action, or Agent run: its generation jobs plus the run thread's own turn rows.
A Format run receipt carries the same money in its usage block (debited_usd_micros, held_usd_micros, refunded_usd_micros, final), built from the same rows and the same fold, so the receipt and the ledger never disagree.
curl "https://api.sume.com/v1/usage?run_id=arun_…&limit=50" \
-H "Authorization: Bearer $SUME_API_KEY"Which figure is the cost: billable or debited?
Several fields look like the cost. Only one is.
| Field | What it counts | Is it the cost? |
|---|---|---|
billable_amount_usd_micros on the receipt | Reserved plus captured generation attributed to the run, the figure its cap is enforced against. The agent's own LLM turn is left out. | No. It is the cap's figure. |
debited_usd_micros, debited_usd | What the wallet deducted: captured ledger rows of every operation type, the agent's own turns included. | Yes. The figure to quote. |
held_usd_micros | Holds still open. | Not yet. Not spend. |
refunded_usd_micros | Holds given back after a failure, a cancellation, or queue_full. | No. Not spend. |
final | true once no hold is open, so debited_usd_micros will not move. | It tells you the cost is settled. |
cap | For a run: its generation cap, what counts against it, and what is left. | Never a cost. |
What did one video job cost?
Pass job_id instead to sum one generation job's ledger row. It also accepts an agent turn's job id, which sums the turn's own row plus every job it commissioned. Each ledger row carries run_id, thread_id, and turn_job_id, so a job traces back to the run that started it.
A job on the OpenRouter-compatible video generation route, POST /v1/videos, also reports usage.cost on its poll response: the Sume billable amount.
How do I convert micros and cents to dollars?
Sume bills in US dollars, and the balance is USD-denominated. Amounts come in three shapes, so convert them the documented way:
*_usd_microsare integers: 1,000,000 micros is $1.00. Dollars are micros ÷ 1,000,000, which is exactly whatbillable_amount_usdon a submit response holds.- Dividing micros by 10,000 gives cents, not dollars, and overstates spend 100×. The API reference's example: 133,061 micros is $0.133061, not $13.31.
- On a submit response,
billable_amount_usd_centsisceil(micros / 10_000)for wallet rounding. In a usage summary,debited_usd_centsis the debited micros rounded half-up once, the only rounding, anddebited_usdis that figure in dollars. credit_amounton a ledger row andavailable_creditson the balance are legacy rounded USD cents, kept for compatibility.
How do I total a retried or continued run?
A continuation is a new run with its own receipt and its own usage; both runs share a thread_id. To total the whole conversation, query GET /v1/usage?thread_id=…: a thread summary adds runs[] with each run's money, and by_operation_type splits the same money by operation. Retry one scene of an AI video shows the continuation itself.
Never sum ledger rows yourself: a refunded row keeps its hold amount in billable_amount_usd_micros. A scope with more than 5,000 rows sets summary.truncated, and the figures then cover the newest rows only.
How do I reconcile run costs with my own billing?
If you resell runs, bill your customer from your own records and reconcile against GET /v1/usage, as Embed a Format in your product advises: keep each run id you create, and read its summary.debited_usd once summary.final is true, when the figure will not move. A run's agent turns and its generation draw from the same balance; How Sume pricing works covers the wallet.
Sources
Related posts
Written by Sume