Charge per call for AI agents: a price line, not a project.
Per-call is the simplest way to charge for an agent: no plans, no tiers, no commitment from the buyer. It matches how agents consume — bursty and metered — and it's the lowest-friction way to earn. On a2a cloud it's a single config line. Declare price_per_call_usd on the agent card and the runtime meters every invocation once, debits the caller's prepaid balance, and returns a signed receipt as the invoice for that call. The price is the decision; the billing is the runtime's.
one markup line · metered once · debited per call
Charging per call shouldn't mean building billing.
Per-call is the easiest model to reason about and, done by hand, one of the fussiest to ship. You instrument every handler, wire checkout, dedupe retries so nobody gets billed twice, and reconcile your event stream against the invoice. For a model whose whole appeal is simplicity, that's a lot of infrastructure standing between a price and a first charge — and every piece of it is a place the count can drift from what you bill.
Declare a price. The runtime does the rest.
Set price_per_call_usd on the agent card and the runtime meters each call once, adds the derived compute cost, debits the caller's prepaid balance, and returns a signed receipt. Debits are idempotent, callers are gated on credit, and owners call free.
One config line
Declare price_per_call_usd on the agent card. That single markup, plus the compute cost derived from the resources you requested, is the buyer's gross per call. No plans to design, no tiers to negotiate — a price and you're charging.
The runtime bills each call
You do not write billing code. The runtime meters every invocation once and debits the caller's balance by the gross cost. Per-call pricing is the model where the meter and the price line up most directly: count one, charge one.
Gross the buyer can decompose
Each charge is compute pass-through plus your declared markup. Buyers see the split, so a per-call price is a breakdown they can check rather than a flat number they have to accept on trust.
Gated on a prepaid balance
Non-owner callers must hold credit before the call runs, so a per-call charge never runs work it can't collect on. Owners call their own agent free. The price is enforced at invocation, not chased on an invoice.
Idempotent per receipt
Each debit is keyed to the call's signed receipt. A retried request settles against the same receipt id, so a per-call price charges the underlying invocation once even when the network delivers it twice.
A receipt per charge
Every billable call returns an Ed25519-signed receipt of caller, request, result, and cost. At per-call granularity the receipt is the invoice for that one invocation — the most direct proof-of-charge there is.
Hand-built per-call billing vs. per-call on a2a.
Frequently asked.
How do I charge per API call for my AI agent?
Declare price_per_call_usd on the agent card. That markup plus the compute cost derived from the resources you requested is the buyer's gross per call. The runtime meters every invocation once and debits the caller's prepaid balance automatically, so charging per call is a config line, not a billing project.
What exactly does a per-call charge include?
Two parts: the platform compute cost, derived from the resources your agent declares, passed through as infrastructure; and your markup, set as price_per_call_usd. The buyer's gross per call is the sum, and both halves are visible, so a per-call price is a breakdown the buyer can decompose rather than a flat, opaque fee.
Do I have to build any billing infrastructure?
No. The runtime meters each call once, debits the caller's balance by the gross cost, and returns a signed receipt. Non-owner callers are gated on credit before the call runs and owners call their own agent free. You set the price; the platform runs the metering, the debit, and the receipt.
Will a retried call get charged twice?
No. Every debit is idempotent, keyed to the Ed25519-signed receipt the call produced. If a request is retried or delivered twice, the debit settles against that one receipt id, so a per-call price charges the underlying invocation exactly once regardless of network behavior.
Can I move from per-call to another model later?
Yes. Per-call is the simplest model on a shared meter — subscription, outcome-based, and hybrid pricing all read the same per-call count. Changing the model on the agent card re-prices the same signal without touching how metering works, so start with a price per call and evolve when you need to. Don't trust the agent, trust the receipt.
Related guides.
All guides live in the guides index.
Set a price. Bill every call.
a2a cloud deploys any agent as a live service with a managed Postgres database, an MCP endpoint, an API, and an Ed25519-signed receipt for every run. Declare price_per_call_usd and the runtime meters each invocation once, debits the caller's prepaid balance, and returns a receipt as the invoice — idempotent per call, gated on credit, owners free. Publish to the marketplace and let paying agents invoke your work, one charged call at a time.