How billing works
Understand token pricing, cache discounts, per-call web search and what is not billed.
On this page
The basic formula
cost = input tokens × input rate + output tokens × output rate
rates are quoted in USD per million tokens ($/M)Input and output are priced separately, with output typically 3–5× input. Actual rates are the ones shown on each model's page in the model plaza.
Cache pricing
On models with prompt caching, repeated prefixes — system prompts, long documents, few-shot examples — hit the cache and bill at a lower rate:
| Category | Relative to input | Notes |
|---|---|---|
| Cache read | ≈ 0.1× | Input tokens served from cache |
| Cache write | ≈ 1.25× | One-off premium when the cache is populated |
So putting stable content at the front of the prompt and variable content at the end cuts cost markedly — most of all in multi-turn chat and document Q&A.
Other billable items
Web searchper callModels with search bill each search separately, on top of token cost.
Image inputtoken equivalentConverted to input tokens by resolution; the formula follows the vendor.
Tiered pricingby contextSome models switch to a higher rate past a context threshold; tiers are on the model page.
Pay as you go vs. subscription
There are only two things to know:
- Top-ups carry no bonus: pay $100, get $100 in balance. It never expires. Flexible, but no discount.
- Subscriptions give you extra credit: pay $99, get $120 in credit, for example. The credit lands in full at purchase and is valid for 30 days; whatever is left at expiry lapses.
Plan credit vs. balance
An account has two separate pools: the subscription credit (in $, granted in full at purchase and valid for 30 days) and the prepaid balance (your personal balance, or the workspace balance for a team; also in $, never expires). They are never merged or transferred. Web chat and API key calls pick a pool in this order:
- Personal workspace with allowance left on the current plan: billed to the allowance by default. You can switch a message to pay-as-you-go from the billing selector in the composer.
- Allowance used up, plan expired, or no plan: falls back to pay-as-you-go from your balance. A reply that already started stays on the plan; the mode never changes mid-reply.
- Team workspace: there is no personal plan here, so everything is pay-as-you-go from the workspace balance.
- API keys: same order as web chat. In a personal workspace they draw from the subscription allowance first, then fall back to pay-as-you-go from your personal balance; at $0 balance requests return an insufficient-balance error and stop, with no negative balance. Team-workspace keys are always pay-as-you-go from the workspace balance.
The billing mode is fixed when a message is sent. Changing the mode or the workspace later never rewrites the cost of finished replies.
What is never billed
- Rejected requests (4xx) — auth failures, bad parameters, rate limits.
- Failed attempts during failover.
- Gateway errors (5xx) that returned no content.
- Models marked free (the “Free” tag in the plaza).
A stream that is interrupted midway still bills the tokens already produced — the upstream generated them. That is exactly why silent full retries are expensive.
Auditing one call
The response's usage gives the token counts; search the request ID (the X-Maxx-Request-ID response header) in console › Usage › Request log to see exactly what the call cost.
Four ways to spend less
- Push high-frequency simple tasks down to small models.
- Move stable prefixes to the front of the prompt to maximise cache hits.
- Set
max_tokenson every call so no single answer runs away. - Allow each key only the models it needs, so an anomaly stays inside one workload.
Contact us
Something unclear, or need a human? Pick the channel that fits your question.
Supportsupport@apione.ai
WeCom
Telegram
Communityhttps://t.me/apione
Support tickets
Billing & accountConsole › Feedback