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.
A credit is the platform’s spendable unit, pegged at a flat one cent. It is what everything is priced in, so display, checkout, and spend never drift between dollars and tokens. Today a credit is simply a cent under a friendlier name: the only thing that draws credits is routed token usage, which stays zero margin (platform-funded calls draw credits at the provider’s catalog price, with nothing added on top).
Free accounts have a recurring credit benefit; 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.
Pro renews on its own monthly or annual billing schedule. When your upgrade confirmation offers a full-cycle reset, it charges the full new plan price, adds the full new allotment and applicable bonus, and restarts the billing cycle. Unused credits stay yours; there is no prorated refund for the prior period. Existing billing dates do not change without a confirmed plan change.
GET /api/gateway/usage/daily for spend by day, model, or member. See Telemetry.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-1854.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.