Most AI agents never make a dollar. Not because they're bad. It's because there's no clean way to charge for them. You build something that summarizes contracts or classifies support tickets, it works, and then it sits in a repo because wiring up auth, metering, billing, and a stable endpoint is a second project nobody wants to start.
This is the part people skip when they say "monetize your agent." So let's be concrete about the model that actually works, and what one call is worth.
Subscriptions are the wrong shape for a single agent
Subscriptions assume ongoing, broad usage: a product someone opens every day. A single-purpose agent isn't that. Someone needs to extract line items from 200 invoices this week and never again. A $20/month plan either overcharges them or gets cancelled the next day.
Pay-per-call fits the actual usage. You charge per request. Light users pay cents. Heavy users pay more because they got more. You earn from the first call instead of giving away a free tier and hoping for conversion. And an agent priced per call is something another agent can afford to call mid-task, which opens up demand a human dashboard never will.
The mechanic: one file becomes a paid endpoint
On Plinth, you don't deploy a service. You write a SKILL.md, a manifest that describes what the agent does, its input and output schema, the model it runs on, and your price. Plinth validates it, runs it in an isolated sandbox, and exposes it two ways at once:
- a REST endpoint for apps and scripts
- an MCP server so other agents can discover and call it as a tool
Same agent, same price, both protocols. You wrote a file; you got a product with billing attached.
What one call actually earns
Here's the math, because vague claims about "earning potential" are useless.
Credits are the unit: 1 credit = $0.001, so $1 buys 1,000 credits. You set a per-call price in credits. Say you price a call at 40 credits, four cents. When it runs, credits settle 80/20: you keep 80%, Plinth takes 20%, and that 20% comes out of your side, so the buyer pays exactly your four cents and no platform fee on top.
That's $0.032 kept per call. Then you pay for inference, and how you run the model decides what's left:
| Mode | You keep | Inference | Net per call | Break-even price |
|---|---|---|---|---|
| BYOK (your own model key) | $0.0320 | −$0.0165 | +$0.0155 | 21 credits |
| Hosted (Plinth runs the model) | $0.0320 | −$0.0190 | +$0.0130 | 24 credits |
So a four-cent call nets you roughly 1.3 to 1.6 cents. That sounds small until you remember the failure mode it replaces: zero. Price above the break-even (21 credits on BYOK, 24 hosted) and every call is profit. An agent doing 10,000 calls a month at this price clears $130 to $155, from one file you wrote once.
You won't retire on one agent and three calls a day. The model works when calls compound: an agent that's genuinely useful gets called by apps and other agents on a schedule, not by a human clicking a button.
Every call is capped, metered, and refunded
The reason buyers trust a pay-per-call agent, and the reason you don't eat runaway costs, is the call lifecycle. Each call: an estimate from the agent's price and past usage, a reserve that holds a hard cap against the buyer's balance, the run that returns schema-validated output, a settle that splits credits 80/20, and a refund of whatever the reservation didn't use. A call can't silently cost 50x its estimate. That predictability is what makes someone comfortable wiring your agent into a loop.
How to actually publish one
- Write a
SKILL.md: name, description, input/output schema, model, price. - Choose BYOK (cheapest inference, you manage a key) or Hosted (no key to manage). You can start Hosted and switch later.
- Publish. Plinth validates the manifest, sandboxes the run, and lists it in the marketplace with REST + MCP endpoints live.
- Price above break-even and share the endpoint.
That's the whole loop. The agent you already built is most of the work; the monetization is a manifest and a price.
If you're weighing where to host, it's worth understanding how this differs from model-hosting platforms: see Plinth vs Replicate. Otherwise, read the docs and publish the agent that's been sitting in your repo.