What did my seller agent spend? Read Sume usage by thread
Amazon's Seller Assistant plugin logs its actions with audit trails. For the media your agent made through Sume, read the cost by thread_id and run_id.

To find what an agent spent on media through Sume, read GET /v1/usage with the thread_id, run_id or job_id it worked under, and quote debited_usd_micros from the summary. It is the amount the wallet deducted, including every kind of operation in that scope, so no one has to add rows by hand.
Amazon's Seller Assistant plugin page says plugin interactions carry audit trails and actions need human approval (read 2026-10-04). That covers what the agent did in your Amazon account. The media it generated elsewhere has its own ledger.
What is in the summary?
Per the usage docs, the response adds a summary folded over every ledger row the scope caused; the limit parameter only caps how many rows are listed.
| Field | Meaning |
|---|---|
| debited_usd_micros | What the wallet deducted; the figure to quote |
| held_usd_micros | Holds still open; not spend yet |
| refunded_usd_micros | Holds given back after a failure or cancellation; not spend |
| final | true once no hold is open |
| script_runs | The script_run calls in the scope, each with rows and money |
| by_operation_type | The same money split by operation type |
How do you read it?
Pass the scope as a query parameter. job_id also accepts a turn's job id, which sums the turn plus every job it commissioned. Wait until final is true before booking a number.
import os, requests
r = requests.get(
"https://api.sume.com/v1/usage",
headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"]},
params={"thread_id": os.environ["SUME_THREAD_ID"], "limit": 50},
timeout=30,
)
r.raise_for_status()
s = r.json()["summary"]
print("debited USD:", s["debited_usd_micros"] / 1_000_000)
print("open holds:", s["held_usd_micros"], "final:", s["final"])
How do you cap it before it starts?
On Sume's hosted MCP server, paid tools accept max_spend_usd and dry_run, and every write needs an idempotency_key. Paid calls also need the mcp:write scope, which you grant at consent. Set a ceiling that matches the batch you approved, then compare it to the ledger after.
Why check at all?
Because an agent can finish a task without telling you the bill. A ledger read takes one call, and it is the record the docs call authoritative for billing.
Sources
Related posts
More in Agents
- Run the Sume video agent from your backend with Agent Completions
POST /v1/agent/completions runs the same agent as the Sume Agents chat, with tools and media generation, and returns an async run receipt you poll or webhook.
- Safe automation for AI agents that call paid APIs
Keep agents read-only by default, keep secrets out of logs, and on hosted MCP send an idempotency_key, preview with dry_run, and cap with max_spend_usd.
- Scheduled AI video agent runs: cron, API triggers, and receipts
A Sume schedule is a saved Agents automation that runs on a cron cadence and returns a run receipt. Author it in the dashboard; start and monitor runs by API.
- What is a video agent? How Sume defines and runs one
In Sume's docs, a video agent is a sandbox Agent that composes generation tools into a post-ready video. Brief it in chat, or call it over HTTP.
Written by Sume