Billing & usage
Every model is paid for through one of two lanes, and the gateway adds no markup on either. Platform-funded calls draw down your credits; bring-your-own-key calls are billed by the provider directly.
cost_nano_usd.estimated_cost_nano_usd for attribution only.Which lane a model rides is decided per-provider by its waterfall: a deployment backed by one of your provider connections is pass-through; a platform-seeded deployment is platform-funded. Either way, zero markup.
One credit is $0.01 of platform usage, not a fixed number of tokens. A model’s input, output, and cached-token rates determine how many credits a platform-funded call uses. Routed tokens settle at the catalog price with no added markup. Fractional credits are supported.
Free accounts have a recurring credit benefit that starts with the card verification (a one-time $1 charge, credited to your balance); your Credits page shows the schedule that applies to your account. On the verified 30-day schedule, the total balance replenishes up to 500 credits, not by an extra 500. Purchased credits count toward that balance and credits above 500 stay yours. Pro replaces the Free replenishment with its purchased allotment and unlocks the Pro features. One-off top-ups buy credits without a plan, at the same flat rate. There is no markup on routed tokens; any margin comes from plans, not from a credit spread.
Eligible successful card verification earns the initial bonus; the amount actually paid is credited separately. The 30-day schedule starts from first verification, never account creation or repeat verification. Your balance is the credit granted minus your billable (platform-funded) spend; pass-through usage does not count against it. Balance, spend, adding credits, and auto-recharge live in the dashboard at Credits.
You can obtain credits through a paid Pro allowance, a one-off top-up, optional auto-recharge, or eligible verification, onboarding, promotion, and operator grants. The offer states any bonus conditions or expiry. Top-ups do not require a subscription. Pro can be billed monthly or annually; an annual purchase grants the full year’s credits upfront, not in monthly installments. Your Credits page shows the paid renewal date.
Credits with the soonest expiry are used first. Among credits with no expiry, free grants and bonuses are used before purchased credits; ties follow grant time, oldest first. Top-ups and paid subscription allowances are both purchased credits. Subscription rollover does not give newer subscription credits priority over older top-ups or grandfathered credits. Refunds and adjustments are accounted for against their original grants; they are not additional usage.
GET /api/gateway/usage/daily for spend by day, model, or member. See Telemetry.Only unused, policy-governed subscription credits are subject to these renewal limits. Purchased top-up credits never expire and are excluded from subscription rollover limits. Free grants, bonuses, and model promotional allowances keep their separate terms. Your total wallet can exceed the subscription rollover ceiling because these excluded funds and grandfathered credits remain separate.
At paid renewal, add the new monthly allowance and cap the eligible subscription balance at 2× that new allowance: minimum of unused eligible credits plus the allowance, or twice the allowance. For a 2,000-credit allowance, 700 unused eligible credits become 2,700; 3,000 become 4,000. These examples exclude top-ups, bonuses, and grandfathered funds.
The full annual allowance is still granted upfront. At renewal into the same or a higher annual allowance, carry unused eligible credits up to 15% of the previous annual allowance, then add the full new annual allowance. This is not 15% of the unused balance. With a previous and new allowance of 24,000 credits, 10,000 unused credits carry 3,600, giving 27,600; 2,000 unused credits give 26,000. Renewal into a lower annual allowance has no carryover of policy-governed annual credits.
A rollover-limit adjustment is shown in credit history as an adjustment, not token usage or an age-based expiry. Refund and dispute reconciliation accounts for credits already removed by rollover so the same credits are not removed twice; spent refunded credits may still be recovered.
You can connect more than one account for the same provider (two Anthropic keys, two OpenAI organizations), each under its own handle. They form a pool: the gateway serves your traffic on the first account in your order, and rotates to the next one when an account runs out of quota, or is rate-limited in a sustained way (a burst of throttles over fifteen minutes; a single throttle never rotates, because switching accounts busts the prompt cache you have built on the current one). Rotation is a verdict written from your own traffic every five minutes; a later successful key check re-admits the account.
Manage the pool on the Credits page: drag accounts to set the order, switch each account’s “rotate when out of quota” and “rotate on sustained rate limit” off to fail on it instead of spending on a sibling, and read every account’s usage on its own key. The same controls are one call for an agent holding your org key: GET /api/orgs/{org_id}/provider-connections/accounts/usage, POST /api/orgs/{org_id}/provider-connections/{provider}/accounts/{setup_alias}/routing, and POST /api/orgs/{org_id}/provider-connections/reorder.
Spend is bounded at three levels, all configured in the dashboard:
A key can read its own effective limits over the API. GET /api/gateway/keys/<api_key_id>/limits returns the three ceilings with platform defaults folded in; a null value means uncapped, and source is explicit when set on the key or default otherwise. Setting limits is an admin dashboard action.
curl "https://api-pr-2070.preview.experientiallabs.ai/api/gateway/keys/$API_KEY_ID/limits" \-H "Authorization: Bearer $EXPLABS_API_KEY"
| field | Meaning |
|---|---|
| daily_spend_cap_nano_usd | Max platform-funded spend per day for this key (nano-USD). |
| requests_per_minute | Request-rate ceiling for this key. |
| tokens_per_minute | Token-rate (TPM) ceiling for this key. |
Some platform-funded models carry a promotional free daily tier (today gpt-6-astra and claude-fable-5.1); the model page shows the tier as its own "Free tier" rung above the regular pay-as-you-go rate. Eligibility is a saved card and one settled $1 charge on the organization. Adding a card alone is not a charge. Each tier has per-org daily and hourly token allowances (the model page names the exact numbers); cached input tokens do not count against them.
429 insufficient_quota with a free_limit_reached message and does not spend credits. The daily allowance resets at 00:00 UTC, the hourly one at the top of the hour.POST /api/credits-overflow on the web host with Authorization: Bearer xpl_... (enable-only, idempotent). Before that, both answer 402 verification_required. Add a card and complete the $1 verification to unlock it. Turn it off again from the same model-page row.service_tier: "flex" on a Chat Completions or Responses request to gpt-5.6-solforwards OpenAI's flex tier and bills its rate (50% of base) at cost; on a model without tier pricing it answers 400 unsupported_capability.When your credit balance, a spend limit, or a free tier is exhausted, calls fail with 429 insufficient_quota; the message says which: key_daily_cap, a budget, insufficient_credits, free_limit_reached, free_tier_requires_payment (add a card and a $1 charge), or promo_byok_only (the free tier is spent and your balance cannot cover the request). It is not transient: retrying does not clear it.
The full error contract is in Errors.