blog/developers·Aug 18, 2026·4 min·by the eroq team
Credits vs tokens — pricing AI for products, not benchmarks
Why we price generative AI in flat credits instead of per-token metering, what it costs us, and how to model your unit economics on top of it.
Every AI API prices in tokens because tokens are what the provider pays for. That logic is airtight and it produces a terrible developer experience. This post is about why we broke with it.
The problem with per-token pricing
Per-token pricing pushes the provider's uncertainty onto you. Your cost per conversation now depends on how chatty your users are, how long your prompts grow, and how verbose the model felt today. You discover your unit economics after launch, in a dashboard, usually as a surprise.
For an assistant product answering support tickets, fine — volumes are predictable. For a character product, it is hostile: roleplay conversations are long, high-temperature, and user-driven. The better your product works, the less predictable your bill.
What flat pricing costs us
Let's be honest about the trade: flat pricing means we absorb variance. A completion that runs to our token cap costs us more than one that stops at two sentences, and we charge the same 1 or 3 credits.
It works for three reasons:
- Caps make variance bounded.
max_tokenstops out at 1,200 and context at 24k characters. Within those walls, the spread between a cheap call and an expensive one is small enough to average. - Averages are stable at volume. One conversation is unpredictable; ten thousand are a distribution. We price on the distribution and re-measure it monthly.
- Simplicity is worth margin. A price you can explain in four words — "an image is 10 credits" — converts better than a price that needs a calculator. We would rather win the account than win the basis points.
Why prepaid credits and not a monthly bill
Prepaid flips the risk. With postpaid metering, your bug is your bill: a retry loop at 3 a.m. is real money by breakfast. With prepaid credits, the worst case of any runaway is your current balance — the system fails closed, with an explicit 402, instead of failing expensive.
It also makes the failure path honest on our side: a generation that returns nothing refunds itself, as a visible negative line in your ledger. Under postpaid metering, failed calls quietly bill; under prepaid credits, an unfair charge would sit in your face on the billing page. The incentive points the right way.
Two design choices keep prepaid from feeling like a gift card racket: credits never expire, and bigger packs add bonus credits instead of changing per-call prices — so the price of an image is one number everywhere, forever.
Monthly plans work the same way, for the record. A subscription grants its credits up front — 1,800 on Hobby at $15, 6,000 on Creator at $49 — and the unused ones roll over forever instead of resetting at the end of the cycle. What we never do is meter you after the fact.
Modeling your economics on top
The napkin math a character product needs:
revenue_per_user = your_subscription_price
model_cost = msgs_per_day × credit_cost × $0.01 × 30
premium_moments = (images × 10 + voice_lines × input/100 × 3) × $0.01
margin = revenue - model_cost - premium_moments
Run it for your P50 and P95 user, not your average — the P95 roleplayer sends 10× the messages. Flat per-call pricing makes the P95 case computable, which is exactly what token pricing takes away from you.
When token pricing is right
If you are batch-processing documents with tight output control, token metering is genuinely fairer — you would be subsidizing chatty products under our model. Flat credits shine when usage is interactive, long-tailed and user-driven. That is character products, which is who we build for.
FAQ
What is one credit worth in dollars?
About a cent at the entry pack — Starter is $10 for 1,000 credits. Bigger packs improve the rate rather than the prices: Builder is $50 for 5,500 credits and Scale is $100 for 12,000, which works out near $0.0083 a credit. The per-call prices themselves never move.
Do credits expire?
No. Pack credits and plan credits both sit in your workspace wallet until you spend them, and monthly plan credits roll over forever rather than resetting at the end of a cycle. That is the other half of prepaid — you are buying capacity, not a use-it-or-lose-it allowance.
What happens when a call fails or gets blocked?
A generation that returns nothing refunds itself automatically, as a visible negative line in your ledger. A request that falls outside the acceptable-use policy returns content_blocked and is never charged at all. An empty balance fails closed with a 402 instead of quietly running up a bill.
Is flat credit pricing always cheaper than per-token billing?
No, and we would rather say so. If your outputs are short and tightly capped, token metering can be genuinely fairer and you would be subsidizing chattier products under our model. Flat credits win when usage is interactive and user-driven — long replies cost the same 1 or 3 credits as short ones, and max_tokens caps at 1,200, so the spread we absorb stays bounded.
The pricing table has every number. They fit on one screen — that, too, is the point.
Make it in eroq
Build it on the API
An API key takes a minute. The same engines, the same prices, async jobs and webhooks.
50 free credits · no card · private mode on every account