API keys
What a key is, the two scopes, and how to revoke one.
A key is how another system proves who it is when it sends conversations in. Open Setup, then API keys, to see the keys this workspace has.
A platform webhook needs no key at all. It authenticates with a token in its own URL, which the webhooks page explains.
The two scopes
A key carries one scope, and that is the most it can ever do. There is no admin scope, so no key can change a setting.
| Ingest | Sends conversations and events in, to /ingest/v1/events and /ingest/v1/import. It cannot read any conversation back. This is the scope almost everyone wants. |
|---|---|
| Read | Reads conversations, metrics, findings and scores. It cannot change or delete anything. |
A key can also be limited to one client, so a partner sees only their own conversations. The list says so on every key that carries the limit.
Create one
Name the key after the system that will use it, pick a scope, and copy the token. The token comes back once, at creation, and never again.
The list shows the first characters of the token and nothing else. That prefix is all we keep of the key itself. The rest is stored as a hash, so a lost key is replaced rather than looked up.
Replace one
Revoke one
Same screen. A revoked key stops working from its next request, and nothing brings it back. Create a new key instead.
Using it
Both keyed endpoints read the key from the standard authorization header.
http
POST /ingest/v1/events
Authorization: Bearer ak_live_...
Content-Type: application/jsonA live key starts with ak_live_. A test key starts with ak_test_.
Read next
- Webhooks · The one URL a platform posts conversations to.
- Send events · Post conversations from a stack of your own.
- Bulk import · Backfill history you already have.