AI agent spend tracking: see what your agent actually spent, per job

Most writing about agent money is about limits: caps, budgets, kill switches, all set before the work starts. Almost none of it is about the question that arrives after: what did the agent actually spend, on what, and what did the spending buy? A wallet balance going down is not tracking. Tracking is a record where each metered call and each payment can be tied to the job it served. This page shows how that record assembles itself when the work runs through a receipt layer, with real counted numbers from a live one.

See the record forming: the public receipt stream shows calls and settlements landing in the open, each one openable and checkable.

Two records, matched: the money and the work

The work record. Every call an agent makes through the endpoint leaves a receipt: which tool, when, and the hash of what came back. On 2026-10-22 the public stream counted 2,410 receipts in 24 hours from 569 distinct callers. That density is what makes tracking possible at all: spend questions get answered from a complete record of the work, not from sampling or from the agent's own expense report.

The money record. Agent purchases settle as discrete, countable events. A Day Pass activation is one $0.99 settlement in USDC on Base through x402, and it mints its own receipt. Between October 10 and October 22, 2026, five separate buyers activated Day Passes on Zambo, each settlement distinct in the public record. Nothing about that requires trusting a dashboard total: the events are individually countable, and the worked example of reading them is on agents paying for tools.

The match. Put the two together and the practical questions get short answers. Which job consumed the budget? The one whose closed record holds the calls. Did the paid tier actually get used? The receipts under the pass window say how many calls ran and what they returned. Did this agent spend on something that never delivered? The spend is present and the delivery receipt is absent, and the absence is the finding.

Group by job, or the numbers lie politely

Raw call counts mislead: 200 cheap checks and 3 expensive generations look identical in a total. The grouping unit that survives contact with real work is the job. Closing a run with workflow_close binds its step receipts into one record, so cost and output sit under the job that caused them. Then the tracking questions become arithmetic instead of archaeology: cost per delivered job, cost per caller, the share of spend that produced a checkable delivery, and the jobs that consumed without closing. Agents that work in parallel stop blending into one undifferentiated burn rate, which is where most "the agent spent how much?" surprises actually come from.

Set limits too, but know which problem each tool solves

None of this argues against caps. Pre-spend controls, per-agent budgets, approval thresholds for purchases, are how you keep a runaway loop cheap, and spending limits cover that side. Tracking solves the other problem: the retrospective one, the expense review, the client invoice, the dispute about whether paid work happened. A limit says the agent may spend. A record says what it did with the permission. You want both, and you want them from the work layer, because that is the only place where spend and delivery can be checked against each other.

Questions, answered

How do I track what my AI agent spends?

Track it at the work layer, not the wallet layer. When an agent's metered calls run through one endpoint, every call leaves a receipt: the tool, the time, and the result, in one record you can group by job. Agent-side purchases settle as discrete payments you can match to that record: on Zambo a Day Pass is a single $0.99 settlement in USDC on Base through x402, with its own activation receipt. Wallet balance plus receipt record equals a spend history you can actually audit, per agent and per job.

What is the difference between a spending limit and spend tracking?

A limit is a rule set before the work: this much, per day, per tool, and no more. Tracking is knowledge after the work: what was actually spent, on which calls, for which job, and what came back for it. Limits without tracking tell you the agent stopped; they cannot tell you whether the spend bought anything. Tracking without limits still answers the questions that come up in practice, like which job consumed the budget and whether its deliveries match its receipts.

Can I see which job an agent's spending belongs to?

Yes, when the work is receipted as a job and not just as scattered calls. A run closed with workflow_close binds its step receipts into one record, so the calls, and the spend they represent, group under the job they served. The payment side stays equally legible: five separate buyers activated Day Passes on Zambo between October 10 and October 22, 2026, each a distinct $0.99 settlement with its own receipt, countable in the public record rather than estimated from a dashboard.

Why not just watch the wallet or the card statement?

Because a balance answers one question (how much is left) and spend tracking starts with different ones: what did this buy, which job used it, and did the paid work actually happen. A statement line cannot tell you whether the metered call returned anything, or which of six parallel jobs burned the budget. Pair the money record with the work record: settlements show the spend, receipts show the work, and matching the two is what makes an agent's finances auditable instead of merely visible.