The platform fee
One flat rate across every modality. Chat completions, embeddings, the Batch API, audio
(text-to-speech and transcription), and image and video generation — including image
output reached through
/v1/chat/completions with
modalities: ["image", "text"] —
are all billed at
provider list price × 1.025 — a flat
2.5% platform fee.
Either way, the fee is itemized in the trace as its own line next to provider cost, never blended into
one opaque number, and applies uniformly whether you pinned a model explicitly or routed with
model:"auto". See live per-model pricing at
/models or
/pricing.
Prepaid credits
Your org spends against a prepaid USD balance, decremented per request. A balance at or below $0 gets a hard
402 on every
live key — test
keys are unaffected, since they never touch a real provider or a real balance (see
Authentication).
Topping up
From /settings/credits, a top-up charges card or ACH via Stripe Checkout. The amount you enter is the net credited to your balance; the gross charge adds a separate, disclosed Stripe fee — priced as an exact pass-through of Stripe's real per-charge cost (2.9% + $0.30 for US cards, 4.4% + $0.30 for non-US cards), not a flat rate, so it always covers what card processing actually costs regardless of deposit size — the same honest framing as the fee you'd pay depositing into any competing aggregator, just itemized rather than hidden in the rate. A minimum deposit of $10 applies, so the fixed processing cost doesn't dominate a tiny top-up.
Accounts with at least $500 of lifetime spend can also top up by ACH bank transfer at Stripe's 0.8% rate (capped at $5). Credits are added once the transfer clears, typically within 4 business days, and become spendable a further 7 days later. ACH top-ups are limited to $2,000 each and $5,000 per 60 days.
Manual top-ups are rate-limited (a few per hour) to prevent runaway Checkout Session creation — hitting the
limit returns a 429 topup_velocity_exceeded.
Auto-reload
Configure a threshold and a top-up amount from /settings/credits — once your balance falls below the threshold, your saved payment method is charged automatically, bounded by a daily cap you set (up to a platform-wide ceiling). Auto-reload disables itself after repeated consecutive failures rather than retrying indefinitely against a broken card.
Per-key spend caps
Separately from your org's credit balance, an individual key can carry its own
monthly_spend_cap_usd — a hard ceiling on
that key alone. Once a request would put the key within its final stretch of budget, its
max_tokens is automatically clamped to
what's left rather than letting one call blow past the cap. See
Authentication for the full set of
per-key policy fields.
Tracking spend
GET /api/credits returns your balance,
the current minimum deposit and Stripe fee rate, and recent transactions. The
/usage dashboard rolls this up further:
spend over time, savings vs. frontier pricing, model mix, and latency.