API · API keys
API keys are the per-project credentials used to record events. You manage them with a personal access token, and every endpoint on this page requires admin on the project.
The key object
{
"id": "c4a7e2d1-9b3f-4f60-8e15-2a7d0c6b9f38",
"project_id": "5d1c0e7a-3f2b-4c8e-9a61-0d4f2b7c9e10",
"name": "production",
"prefix": "evs_3fa91c0b",
"last_used_at": "0001-01-01T00:00:00Z",
"revoked_at": "0001-01-01T00:00:00Z",
"created_at": "2026-10-30T14:05:42.118Z"
}
| Field | Description |
|---|---|
id |
Key ID (UUID). Use it to revoke the key. |
project_id |
The project the key records into. |
name |
Your label for the key. |
prefix |
evs_ plus the first 8 hex characters, so you can tell keys apart without the secret. |
last_used_at |
Last successful ingest with this key. Zero time if never used. |
revoked_at |
When the key was revoked. Zero time while the key is active. |
created_at |
Timestamp. |
The secret itself is never part of this object.
List keys
GET /v1/projects/{id}/keys
Returns {"keys": [...]}, newest first. Revoked keys are included; check revoked_at to filter them out.
curl https://api.everscribe.io/v1/projects/$PROJECT_ID/keys \
-H "Authorization: Bearer $EVERSCRIBE_PAT"
Create a key
POST /v1/projects/{id}/keys
| Body field | Required | Description |
|---|---|---|
name |
no | A label, e.g. production or ci. |
The body itself is required even with no name: send {}, or the request fails with 400 invalid request body.
Returns 201:
{
"key": { "id": "c4a7e2d1-...", "prefix": "evs_3fa91c0b", "...": "..." },
"plaintext": "evs_3fa91c0b5e7d42a8b1c6f09e2d4a7b35"
}
plaintext is the only time the full key is returned. Store it now; if it's lost, revoke the key and create a new one. Keys don't expire, so they stay valid until revoked.
curl -X POST https://api.everscribe.io/v1/projects/$PROJECT_ID/keys \
-H "Authorization: Bearer $EVERSCRIBE_PAT" \
-H "Content-Type: application/json" \
-d '{"name":"production"}'
Revoke a key
DELETE /v1/projects/{id}/keys/{keyID}
Returns 204 with no body. Ingest with the key fails with 401 from then on. Revoking an already-revoked key also returns 204. A key ID that doesn't belong to the project returns 404 api key not found.
curl -X DELETE https://api.everscribe.io/v1/projects/$PROJECT_ID/keys/$KEY_ID \
-H "Authorization: Bearer $EVERSCRIBE_PAT"