DocsGuidesBilling & balance
Billing & balance
How per-token pricing works, balance and top-ups, and usage tracking.
SoleAPI bills by token usage, with balances denominated in USD. There are no monthly fees or minimums — you pay for what you use.
Pricing rules
- Every model has its own input and output rates, expressed in dollars per million tokens; some models additionally distinguish cache read/write tokens and reasoning tokens, each billed at its own rate.
- Token counts come from the upstream's reported usage; streamed requests settle after the stream ends, using the counts in the final event.
- List prices are on the model catalog; the console shows the actual rates that apply to your account (platform discounts and multipliers apply automatically — nothing to configure in requests).
- Counting endpoints such as count_tokens do not incur model charges.
Balance & top-ups
Top up on the console's wallet page (Stripe online payment and redeem codes are supported). Every balance movement — top-ups, spend, rewards, adjustments — has a matching ledger entry, and the ledger reconciles exactly with the balance.
When the balance is insufficient, requests return 402 (balance_exhausted). Billing is post-paid (costs are known only after the upstream reports token counts), so the balance can dip slightly negative and is settled on your next top-up; see Rate limits & quotas.
Usage tracking
The console offers three levels of detail:
- Dashboard: current balance, spend trends, request volume and success-rate overview.
- Usage stats: spend and token aggregates per API key and per model.
- Detail logs: per-request records, filterable by model, key, and time range — for reconciliation and debugging.
Cost-control tips
- Give each key a spending limit with daily/weekly/monthly resets, pushing budgets down to the key level.
- Cap single responses with
max_output_tokens/max_tokensso long outputs can't inflate costs. - Estimate long prompts with the counting endpoints before sending, and truncate over-budget requests early.
- Enable low-balance alerts so you get a notification instead of a 402.