Supported providers
A model is covered exactly when the provider bills for it. Models served
through aggregators (Together, Fireworks, DeepInfra, …), AWS Bedrock, Google
Vertex, or Azure are different billing relationships and are not covered by a
maker key — the platform serves them as usual. Google Gemini is not yet
supported: large file attachments are platform-managed in a way that is
incompatible with customer keys today.
Coverage applies to chat traffic on all three API surfaces —
/v1/chat/completions, /v1/messages (Claude Code and Anthropic SDKs), and
/v1/responses (Codex) — plus web chat. Embeddings, image, video, and audio
endpoints stay on platform keys for now.
Billing
Requests served on your own key record $0 in AI Reserve usage — the provider bills your account directly, and charging our standard rate on top would double-bill you. The requests stay fully visible in analytics (tokens, models, users, teams) and are marked as BYOK in the usage ledger, so your spend reporting can separate platform-billed from provider-billed traffic.A platform fee for traffic served on customer keys is an open pricing
decision — v1 deliberately charges $0 and does not invent one. If a fee is
introduced it will be announced explicitly; nothing in the current behavior
implies or precludes it.
Security
- Keys are encrypted at rest with AES-256-GCM (the same envelope scheme that protects other platform-held secrets) and decrypted only inside the gateway at the moment of dispatch.
- After saving, a key is displayed only as its last 4 characters — it is never shown, exported, or included in API responses again.
- Keys are never written to logs, error records, or analytics rows.
- Saving, replacing, and removing keys are admin-only actions, recorded in both audit trails (the internal audit log and your organization’s Activity page).
Behavior details
- Fail-safe. No key configured for a provider, or a key that cannot be decrypted, means traffic serves on platform keys exactly as today — never an error.
- No cross-provider fallbacks. Requests on your key never fall back to a different provider (that would either move your traffic somewhere your key doesn’t apply or send your key where it doesn’t belong). If the provider has an outage, those requests return the provider’s real error. Remove the key to restore platform serving — including configured fallback chains — at any time. One caveat: when the platform’s own provider health checks reroute traffic away from a degraded provider before your key is applied, the rerouted requests may serve on a fallback provider you have no key for — those requests run on platform keys at standard platform rates, never on your key.
- Your key, your rate limits. Traffic on your key runs under your provider account’s rate limits and quotas, not the platform’s pooled capacity.
- Invalid keys surface honestly. If your provider rejects the key (for example after you revoke it upstream), requests to that provider fail with the provider’s authentication error until you replace or remove the key — the platform does not silently switch you back to platform billing.
- Auto model routing. Requests with
model: "auto"pick the best model first and check keys second — auto can select a provider you have no key for, and those requests serve on platform keys at standard platform rates. Pin a covered provider’s model when a request must ride your key. - Propagation. Saving, replacing, or removing a key applies within about a minute.
Set it up
- In the portal, open your organization’s admin console and go to the API Keys tab.
- Under Provider keys, choose Add key next to a provider and paste an API key from that provider’s console.
- Verify with a request to one of that provider’s models — the usage row records $0 and is marked BYOK.