Skip to main content
API keys authenticate requests to the /api/v1/* endpoints. Keys are scoped to a tenant and can be configured with rate limits, allowed CORS origins, and (in v1.1) per-scope restrictions.
These endpoints use dashboard (JWT) authentication, not API keys. Your Supabase session must have the api_keys:manage permission.

Issue a key

Auth: Supabase JWT + api_keys:manage  |  Status: 201 Created

Request body

Response

The key field is shown only once. We store only a hash — if you lose the key, you’ll need to issue a new one.

List keys

Returns all keys for the tenant. The full key secret is never included.
Auth: Supabase JWT + api_keys:manage  |  Status: 200 OK Query parameter: include_revoked (boolean, default false) — set to true to include revoked keys.

Response fields


Rotate a key

Atomically issues a new key and revokes the old one. The response contains the new key secret (shown once).
Auth: Supabase JWT + api_keys:manage  |  Status: 201 Created The old key is immediately revoked — there is no grace period. Deploy the new key before rotating.

Revoke a key

Soft-revokes a key. Takes effect immediately.
Auth: Supabase JWT + api_keys:manage  |  Status: 204 No Content The optional reason field (max 500 chars) is stored for audit. If omitted, defaults to "revoked via dashboard".

Key formats

Test keys create real database rows but do not place PSTN calls. See Environments for the full behavior difference.

Errors