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.

5 min readSume
All posts

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.

Usage summary fields, from Sume docs, read 2026-10-04
FieldMeaning
debited_usd_microsWhat the wallet deducted; the figure to quote
held_usd_microsHolds still open; not spend yet
refunded_usd_microsHolds given back after a failure or cancellation; not spend
finaltrue once no hold is open
script_runsThe script_run calls in the scope, each with rows and money
by_operation_typeThe 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

All Agents posts

Written by Sume