Credits & Billing

Plan credit and bought credit, how request cost is calculated, top-ups, and reading your balance from the API.

Your account holds a USD balance and each request deducts its exact token cost. Pay-as-you-go has no fixed fee. Paid plans (Go, Pro, Pro+, Max) add a monthly price for included credit and higher limits; see Pricing & Plans. Manage everything at the Credits dashboard: Subscription (your plan), Pay as you go (balance, top-ups, invoices, history) and Payment methods (saved cards; auto-charge is coming soon).

Two kinds of credit

BucketWhat it isExpires?
Plan creditIssued by AnyRouter: the plan's monthly credit (Go $4, Pro $20, Pro+ $100, Max $300) plus referral or promo bonuses. Free includes none.Use it while you have it.
Bought creditCredit you purchase.Never expires.

Usage is charged to plan credit first, then bought credit. Total balance is the sum of both. The monthly plan credit is granted on activation and each renewal, and a retried payment never double-grants.

Getting your first credits

The Free plan has no monthly credit and no signup bonus. It has a 5-request trial on free and decision models. Two low-cost routes both give you Go:

  • Subscribe to Go ($2/mo): $4 in credits every month, plus free models (anyrouter/free and :free, no daily cap) and decision models.
  • Donate a provider key to the shared pool: one working key no other account has donated grants Go for free (same $4/mo). The pool also serves your own requests free while the key stays valid.

On any plan you can top up and pay per token, or use BYOK (your own keys never deduct credits). On Free, purchased credit pays for paid models only: a paid model with no purchased credit returns 403 paid_models_require_credit, and free models still need Go after the trial.

How costs are calculated

Token typeBilled at
InputModel's input price per 1M tokens
OutputModel's output price per 1M tokens
CachedProvider's cache-read rate (typically 10% of input)
Cache writeProvider's cache-write rate (typically 125% of input)

Prices are on the models page. Example for anthropic/claude-sonnet-4-6:

Input:  1,000 tokens @ $3.00/1M  = $0.003
Output: 500 tokens   @ $15.00/1M = $0.0075
Total: $0.0105

If 800 of the 1,000 input tokens were cached: $0.00024 + $0.0006 + $0.0075 = $0.00834 (20% less).

Topping up

Top up any amount from the Credits dashboard via Polar. Very small amounts may be declined by the processor; try a larger one.

You choose the credit amount. Polar, the Merchant of Record, charges it plus a 5% + 50¢ processing fee, and AnyRouter keeps $0 of that fee. Polar may add sales tax on the card; tax is not extra credits.

Top up $10.00Amount
Credits you receive$10.00
Polar fee (5% + 50¢)$1.00
Charged before tax$11.00

Purchased credit lands in bought credit and is spent after plan credit. Polar emails a receipt; turn billing emails off under Notifications.

If a request would take your balance below zero, the API returns insufficient_balance and does not process it: no tokens used, no charge. Top up and retry.

{
  "error": {
    "code": "insufficient_balance",
    "message": "Insufficient credits. Your balance is $0.00. Please purchase credits at /dashboard/credits, add your own provider key (BYOK) at /dashboard/byok, subscribe to a plan at /pricing, or donate a free key to the shared Pool at /dashboard/byok/new?donate=1. Free models need the Go plan.",
    "metadata": {
      "type": "insufficient_credits"
    },
    "actions": [
      { "type": "top_up", "label": "Top up credits", "url": "https://anyrouter.dev/dashboard/credits?topup=1" },
      { "type": "add_byok", "label": "Add your own provider key (BYOK)", "url": "https://anyrouter.dev/dashboard/byok" },
      { "type": "subscribe", "label": "Subscribe to a plan", "url": "https://anyrouter.dev/pricing" },
      { "type": "donate_key", "label": "Donate a free key to the shared Pool", "url": "https://anyrouter.dev/dashboard/byok/new?donate=1" },
      { "type": "use_free_models", "label": "Keep going on free models", "url": "https://anyrouter.dev/docs/features/free-tier", "model": "anyrouter/free" }
    ]
  }
}

error.actions lists next steps so a client or agent can show options without parsing the message.

Checking your balance

The Credits page shows both buckets, total balance, total spend, today's cost and the transaction history. From the API:

curl https://anyrouter.dev/api/v1/credits \
  -H "Authorization: Bearer sk-ar-your-key"
{
  "balance": 12.53,
  "monthly_balance": 8.0,
  "topup_balance": 4.53,
  "plan_credit": 8.0,
  "bought_credit": 4.53,
  "used": 12.47,
  "today_cost": 0.42,
  "currency": "usd"
}

balance is the total. monthly_balance (also plan_credit) is spent first; topup_balance (also bought_credit) after.

curl "https://anyrouter.dev/api/v1/credits/transactions?limit=20" \
  -H "Authorization: Bearer sk-ar-your-key"
FieldDescription
typepurchase (top-up), usage, signup_bonus (ledger type only, not issued to new signups while disabled), pro_credit (monthly Go/Pro/Pro+/Max credit), refund, admin_grant, bonus
amountPositive for credits added, negative for usage
model_idThe model used (for usage)
balance_afterBalance after this transaction

Every chat completion response also includes usage (prompt_tokens, completion_tokens, total_tokens, cached_tokens) so you can compute cost client-side with the model's published pricing.

BYOK requests never deduct AnyRouter credits on any plan. You pay the provider at list price with no AnyRouter fee. See BYOK.

AnyRouter routes requests to third-party models. Models and outputs are provided as is, with no warranty; you use them at your own risk. Disclaimer