How to price an API for AI agent customers
Price per call, in the response, in a unit an agent can compare. Agents have no procurement process and no patience for a quote, so a price that requires a conversation is a price they route around. Set it low enough that a single call is not a decision, and state it in the 402 offer.
/mcp. Nothing here needs an API key or a signup.
Everything below follows from one fact about this buyer: it decides in one round trip, with no memory of your brand and no ability to escalate to a human. Pricing that assumes a considered purchase is pricing for somebody who is not there.
Why agent pricing is not SaaS pricing
SaaS pricing is built around a person who evaluates once and pays monthly. The whole apparatus, tiers, seats, annual discounts, a demo call, exists to move that person from consideration to commitment.
An agent has none of that shape. It has a task, a budget, and a set of routes it can call. It does not consider, it selects. Three things follow:
- A tier is a decision the agent cannot make. Choosing between Starter and
Pro requires forecasting usage the agent does not have.
- A monthly minimum is a barrier, not a floor. An agent needing four calls
will not commit to a month to get them.
- "Contact sales" is a rejection. There is nobody on the other side to
contact, so the route is simply unusable and gets skipped.
The longer comparison of when recurring pricing still wins is in pay-per-call versus subscription.
Pick the unit the agent is actually buying
The unit should be the thing the caller asked for, not the thing that is easy to meter. Get this wrong and the price becomes unpredictable, which for an agent under a budget is worse than being expensive.
| Unit | Works when | Fails when |
|---|---|---|
| Per call | One request returns one usable answer | One answer needs six calls to assemble |
| Per record | Results vary wildly in size | The caller cannot predict the count |
| Per token | You return generated text | You return structured facts |
| Per seat | There is a seat | There is not |
Per call is the default for a data wire because it is the only unit the caller can price before spending. An agent can decide "this answer is worth half a cent" in advance. It cannot decide "this answer is worth an unknown number of records at a tenth of a cent each" without calling first, which is the thing it is trying to decide about.
Where to set the number
The useful test is whether a single call is beneath deliberation. If the agent has to weigh whether to make one request, you have priced yourself into the decision loop, and the cheapest way out of a decision loop is to not call you.
| Band | Reasonable for | Risk |
|---|---|---|
| $0.001 to $0.01 | A lookup, a feed slice, one fresh answer | Settlement cost can exceed value at the bottom |
| $0.01 to $0.10 | Aggregation, enrichment, work done per request | Agents start comparing on price |
| $0.10 and up | Something with real marginal cost behind it | Needs a reason a cheaper route cannot serve |
This service sits at $0.005 to $0.01 per call across 59 paid routes, and that number is not arbitrary. It is set so that an agent running a research loop can make dozens of calls without the spend becoming a thing anyone has to approve. The buyer-side arithmetic, including what a typical multi-call task actually costs, is worked through in what it costs an agent to query live data.
Free previews are a pricing decision
A free preview is not marketing generosity. It is how the agent learns your data is relevant before it spends, which lowers the risk of the paid call and therefore raises the price you can charge for it.
Give the preview enough to prove relevance, which usually means headlines, counts, timestamps and identifiers, and withhold the part that does the work. An agent that can see three matching results exist will pay for the full set. An agent that gets a 402 with no evidence has to gamble, and mostly will not.
Preview routes are the one place you still need conventional rate limiting, because price is doing no work there.
Publish the price where a machine will find it
A price on a pricing page is a price for a human. An agent needs it in two other places: in a machine-readable index it can read before choosing, and in the 402 response itself so it never has to have read anything.
# the price, in the response, before any payment happens curl -i "https://thebotwire.com/fda/latest?since=7d" # every route and its price in one machine-readable fetch curl "https://thebotwire.com/llms-full.txt" # free preview: proves relevance at zero cost curl "https://thebotwire.com/cve/preview?q=openssl"
Full route and parameter reference lives at /docs. The wider design question of building an interface this buyer can use at all is covered in what an agent-native API is.
FAQ
Should I charge per call or per record returned?
Per call, unless every request genuinely does work proportional to result size. Per-record billing makes the cost unknowable before the request, and an agent working to a budget treats unknowable cost as risk. Predictability is worth more than precision at these amounts.
Is a free tier worth offering to agents?
A free preview is, a free tier usually is not. A tier needs identity to police, which reintroduces the account you removed. A preview that proves relevance without delivering the payload gets you the same discovery benefit with price still doing the abuse control on the paid route.
How do I stop agents abusing a keyless paid endpoint?
The price does most of it. Every request costs money before the response is returned, so a flood is self-limiting in a way a free keyed tier never is. The free preview routes are the part that still needs conventional limits.
What if my costs are per query, not per call?
Then charge per call and set the number above your expected per-call cost, with a cap on the work a single call can trigger. Publishing filter limits, a maximum window or a maximum result count, keeps the worst case bounded without pushing variable pricing onto a caller who cannot forecast it.
Do I have to use crypto to charge per call?
No, but you do need settlement that clears in one round trip without an account. Card rails cannot economically settle half a cent, which is why the per-call band in practice runs on stablecoin settlement. The mechanism is specified at github.com/coinbase/x402.
Sources
The 402 payment offer format, asset denomination in atomic units, and the verify-then-settle flow that makes per-call pricing workable are specified at github.com/coinbase/x402, which builds on the 402 Payment Required status defined in RFC 9110. The route count and price band quoted here are published live at thebotwire.com/health.
Related: What is a pay-per-call API, and when is it cheaper than a subscription? · How much does it cost for an AI agent to query live data?