Docs › Billing & pricing
Billing & pricing
Prepaid credit, charged per call at the provider’s own input and output prices. No markup, no subscription.
How a call is priced
Every model has two prices, set by the provider and listed per million tokens: one for input (your prompt) and one for output (the reply). After each call we deduct:
cost = prompt_tokens × input price + completion_tokens × output priceIf the provider reports a higher actual cost for the call (for example for web search, images, audio, cache writes or reasoning), we charge that reported cost instead. We never add a markup.
Example: Ministral 3B costs $0.10 per million input and output tokens. A call with 14 prompt tokens and 9 completion tokens costs (14 + 9) × $0.10 / 1,000,000 = $0.0000023.
Current prices for every model are on the Models page, in GET /v1/models, and in the cost calculator.
Credit packs
Credit is prepaid in US dollars. There’s no subscription and no monthly bill. Buy on Pricing; payment runs on Stripe’s hosted checkout and we never see your card number.
| Pack | You pay | Credit added |
|---|---|---|
| Mini | $5 | $5 |
| Maker | $19 | $19 |
| Studio | $59 | $59 |
| Founding membership | $10, once | $20 plus lifetime membership (first 500 members) |
| Card verification | $1 | $1 |
Credit is added once Stripe confirms the payment. Pack prices are fixed by the server, so the amount you pay is always the listed price. If a payment is refunded, the same amount is removed from your balance.
New keys start at $0. There’s no free daily allowance, so you need credit before your first model call.
Holds: why a call can need more than it costs
Before a call goes to the provider, we place a temporary hold on your balance for the most it could cost: an estimate of your prompt at the input price plus max_tokens at the output price. If your balance can’t cover the hold, the call is refused with 402 insufficient_credits and nothing is charged.
As soon as the call finishes, the hold is replaced by the real cost and the rest goes straight back to your balance. If the provider fails, the whole hold is returned.
If you don’t set max_tokens, the reply is capped at 4,096 tokens and the hold covers that; if your balance is smaller, the cap shrinks to fit instead of the call being refused. Set max_tokens to what you actually need to keep holds small.
Tracking your spend
- Per call: the
x-cosmos-credit-balanceresponse header shows your balance after the call, andusagein the body shows the tokens. - Today:
GET /v1/usage/todayor the Account page. - Per event:
GET /v1/logsor the usage log, with the exact amount charged for each call. - Monthly:
GET /v1/statement/export?period=YYYY-MMdownloads a CSV.
See the API reference for field details.
Controlling spend
- You can never spend more than your prepaid balance. When it reaches $0, calls stop with
402 insufficient_creditsuntil you add credit. - Set a daily cap per key to limit what any one app can spend in a UTC day.
- Set
max_tokenson requests to bound the cost of each call.