Skip to content

API keys

TypePrefixWhereWhat it lets you do
Publishablepk_live_…Browser bundle, iframe SDKIdentify your org. Cannot sign or read data.
Secretsk_live_…Your backend onlyCall /v1/s2s/... endpoints. Treat like a password.

POST /v1/orgs/{orgID}/api-keys

{ "name": "frontend prod", "type": "publishable" }

Response includes the cleartext key once — stored hashed afterwards:

{
"data": {
"id": "key_xxx",
"name": "frontend prod",
"type": "publishable",
"key_prefix": "pk_live_AbC1",
"cleartext": "pk_live_AbC1XYZ…",
"created_at": "2026-05-04T22:00:00Z"
},
"error": null
}

If you lose the cleartext, mint a new one and revoke the old.

GET /v1/orgs/{orgID}/api-keys

List all keys (no cleartext).

DELETE /v1/orgs/{orgID}/api-keys/{keyID}

Revoke. Subsequent requests using that key get 401 invalid_key.

Revoke writes a row to the audit log under api_key.revoked.