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"