Docs
Status
OverviewQuickstartSetup promptsThe core loopAuthenticationOverviewModelsThe waterfallAdding modelsData controlsOpenAI compatibilityAnthropic APIErrorsIntegrate the gatewayCost APIAccount APICoding agentsCredits & billingSpend & intelligenceTelemetryBecome a providerProvider guideAPI reference

Get started

  • Overview
  • Quickstart
  • Setup prompts
  • The core loop
  • Authentication

Guides

  • Overview
  • Models
  • The waterfall
  • Adding models
  • Data controls
  • OpenAI compatibility
  • Anthropic API
  • Errors

Integrations

  • Integrate the gateway
  • Cost API
  • Account API
  • Coding agents

Billing & usage

  • Credits & billing
  • Spend & intelligence
  • Telemetry

Providers

  • Become a provider
  • Provider guide

Reference

  • API reference
PreviousCoding agentsNextSpend & intelligence

Billing & usage

Credits & billing

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.

Two lanes

  • Platform-funded: our credits, priced from the public catalog. Each call draws down your balance and is metered as cost_nano_usd.
  • Pass-through (BYOK): your own provider key. The provider bills you directly, so these calls never draw credits; they are metered as 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.

Credits

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.

What uses credits

  • Platform-funded model tokens are charged at the serving lane’s catalog rates.
  • Platform-run web search can add a search fee to a completed or incomplete platform-funded call. The default fee is $0.007 per search, included in settled cost; token discounts do not discount that fee. Promo-funded calls record it as promotional usage rather than drawing your credits.
  • Explicitly requested Intelligence reports and follow-ups use credits for their actual model usage. Intelligence requires Pro; there is no fixed per-query fee. Ordinary Spend reports, filters, exports, and opening a saved analysis are not paid Intelligence runs.
  • BYOK provider usage is billed by your provider, not deducted from this balance. Promo-funded model usage uses its own allowance, not wallet credits, unless the request falls through to paid usage or credits overflow.

Which credits are used first

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.

Balance and top-ups are dashboard (web-session) actions, not API-key actions. An agent tracks its own consumption through usage instead: read GET /api/gateway/usage/daily for spend by day, model, or member. See Telemetry.

Subscription credit rollover

This is a prospective policy. It applies only to eligible subscription grants from the effective date shown in your plan or checkout, after activation. Publishing this guide does not activate the limits. Until activation, paid renewals add the full allowance without a rollover cap. Subscription credits granted before activation remain permanently outside the capped pool, including pre-activation paid invoices delivered late.

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.

Monthly renewal

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.

Annual renewal

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.

Cancellation and plan changes

  • Limits apply at paid renewal, not calendar month-end, a failed payment, or a cancellation click. Cancellation stops future grants and retains the remaining balance; re-subscribing does not make governed credits grandfathered.
  • A scheduled monthly downgrade uses the new monthly allowance at its next paid renewal. Scheduling it does not deduct credits immediately.
  • A confirmed full-price upgrade preserves your balance and adds the new paid allotment immediately, with no prorated refund. Rollover is evaluated at the following natural renewal, not retroactively on the upgrade. The confirmation states whether your billing cycle restarts.
  • At a scheduled monthly-to-annual boundary, carry at most the outgoing monthly allowance, then add the full annual grant. Annual-to-monthly changes carry no governed annual credits at the annual period’s boundary. An unexpired annual allotment is never cut to a monthly ceiling; grandfathered credits and top-ups remain untouched.
  • A legitimately paid older invoice received late is credited once, but cannot apply its older ceiling to newer grants. Its eligible remainder is included at the next renewal. A restored payment follows the same timing rule and keeps its original policy status. These are renewal-time limits, not a continuously enforced wallet ceiling.

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.

Provider accounts and rotation

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.

Accounts are provider credentials you own. Spend on them is the provider’s bill, shown here for visibility; it never draws platform credits.

Spend controls

Spend is bounded at three levels, all configured in the dashboard:

  • Per-key limits: a daily platform-funded spend cap, a requests-per-minute ceiling, and a tokens-per-minute ceiling on each API key.
  • Budgets: a spend ceiling scoped to the whole team, an API key, a model, an identity, or a routing pool, for a given month or as a recurring cap.
  • Spend alerts: an email when monthly org spend or a budget crosses a threshold.

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.

GET /api/gateway/keys/{api_key_id}/limits
curl "https://api-pr-2076.preview.experientiallabs.ai/api/gateway/keys/$API_KEY_ID/limits" \
-H "Authorization: Bearer $EXPLABS_API_KEY"
fieldMeaning
daily_spend_cap_nano_usdMax platform-funded spend per day for this key (nano-USD).
requests_per_minuteRequest-rate ceiling for this key.
tokens_per_minuteToken-rate (TPM) ceiling for this key.

Free tiers and credits overflow

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.

  • Past the allowance the request answers 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.
  • Credits overflow changes that: when on, requests past the free limit bill the overage to your credits at list price instead of throttling. The switch is org-wide (it covers every free model). It is off for an org that has never verified a card and turns on automatically once your org has a card on file and the settled $1 verification, or at your first real payment (a Pro subscription, a credit top-up, or an auto-recharge), which the dashboard shows you once, right after checkout. If you turned it off, you can turn it back on by hand once your org clears that same bar (the one the free tiers' card gate reads; a purchase or Pro satisfies it): an org admin flips it on any free model's page ("Past the free limit" → Use credits), or an agent can 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 you run out

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.

How to recover

  • Add credits or raise a limit in the dashboard (platform-funded lane).
  • Or move the model to the pass-through lane by connecting a provider key.

The full error contract is in Errors.