Skip to main content
API keys (sk_live_...) are the primary credential for the ThunderPhone REST API. They are secret — treat them like a password. Each key is bound to exactly one organization; when an API call authenticates with a key, we look up the bound org automatically, which is why the rest of this reference never asks for an org id in the URL path. This page documents the endpoints for creating, listing, and revoking keys — the same operations the dashboard exposes at Settings → Keys. You can create your first key from the dashboard without ever using this API.

Endpoints

These endpoints require an admin or owner role. You can use them with an existing API key (if its creator has admin+ permissions) to rotate keys programmatically.

API key object


List API keys

Returns an array of API key objects — both active and revoked keys, sorted by created_at descending.

Create an API key

Returns 201 Created with the API key object plus an extra top-level key field containing the raw sk_live_ value:
key is returned only once. Store it in your secret manager immediately — if you lose it, revoke it and create a new one. Every subsequent GET returns only the key_prefix.

Revoke an API key

Returns 204 No Content. Revoked keys are permanently invalidated — all future requests using the key return 401 Unauthorized. You cannot un-revoke; create a new key instead.
You can revoke the key you’re currently using, but do it from a different key or your revoke call will succeed and then your next call will fail.

Authentication

How sk_live_ keys are attached to requests.

Publishable Keys

Public pk_live_ keys for the widget — different lifecycle.