Gateway API

Authentication & virtual keys

Every Gateway request is authenticated with a virtual key — a scoped credential you create in the Portal, never your raw provider key.

Send your virtual key as a standard bearer token:

Authorization: Bearer tvk_xxxxxxxxxxxxxxxxxxxxxxxx

Virtual keys are always prefixed tvk_, stored hashed (never recoverable after creation), and shown to you exactly once at creation time in the Portal.

What a virtual key scopes

LimitWhat it controls
Model allowlistWhich provider/model values this key is allowed to call. A request naming a model outside the allowlist is rejected before it reaches a provider.
BudgetA maximum spend for the key, tracked against provider cost as computed from usage.
RPM / TPMRequests-per-minute and tokens-per-minute ceilings, enforced independently of your plan's overall rate limit.
Fallback chainsAn optional ordered list of provider/model candidates the key falls back to on error — see fallback chains.

Personal vs. organization keys

A key belongs to either your personal account or, if you're part of a Teams organization, a shared org pool with per-member limits set by an admin. Both kinds work identically against the API — ownership only affects who can see and manage the key in the Portal.

Revoking a key

Revoke a key from the Portal at any time. Revocation is immediate — in-flight requests already accepted may complete, but no new request will authenticate with a revoked key.

Auth errors

An invalid, revoked, or disallowed-model request returns an OpenAI-shaped error object with an appropriate HTTP status — see the full error reference.

{
  "error": {
    "message": "Invalid API key provided.",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}