Skip to main content

API Key Authentication

Most endpoints use API key authentication via the Authorization header.
Authorization: Bearer circ_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Key Format

PrefixEnvironment
circ_live_*Production
circ_test_*Testing

Getting a Key

  1. Sign up at circular.rosetta.sh
  2. Navigate to API Keys in your dashboard
  3. Generate a new key — save it immediately, it is only shown once
Or use the Create API Key endpoint if you already have JWT access.

No API Key Required

EndpointAuth Method
GET /healthNone
/client/*Supabase JWT (see below)

JWT Authentication (Client Routes)

Client self-service routes (/client/*) use Supabase JWT tokens instead of API keys.
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
The JWT must contain a client_id claim identifying your client account.

Error Responses

StatusError CodeMeaning
401MISSING_API_KEYNo Authorization header provided
401INVALID_KEY_FORMATKey present but does not start with circ_live_ or circ_test_
401INVALID_API_KEYKey not found or revoked
401UNAUTHORIZEDNo Bearer token provided on a JWT-authenticated route
401INVALID_TOKENJWT is invalid or expired
403ACCOUNT_SUSPENDEDAccount billing is suspended — contact support
403FORBIDDENJWT lacks required role or claim
403ENDPOINT_NOT_INCLUDEDYour tier does not include this endpoint category