Authentication
Every request to the API is authenticated with an API key, sent as a header:
X-API-Key: YOUR_API_KEY
There is no OAuth flow, bearer-token exchange, or request signing — the key is the credential.
Getting a key
API keys are issued per organization from the dashboard's API Keys page by an Admin or Member. The full secret is only ever shown once, at creation time; the dashboard afterwards shows only the last four characters, so treat it like a password and store it in a secrets manager, not in source control.
Key properties
- Scoped to an organization, not an individual user. Any request authenticated with a key acts on behalf of that org — usage, rate limits, and quota are all tracked per org.
- Revocable independently. Revoking one key has no effect on any other key belonging to the same org.
- Can carry its own system prompt override, layered on top of (and taking priority over) the org's default — see System Prompts.
Errors
An invalid, revoked, or missing key returns:
HTTP/1.1 401 Unauthorized
{"detail": "Invalid or missing API key"}
See Errors for the full list of status codes the API can return.
Rotating a key
There's no in-place "regenerate secret" — create a new key, switch your integration over to it, then revoke the old one. Because keys are independently revocable, this is zero-downtime as long as both keys are live during the cutover.