API · Projects
A project is the container for events and API keys. Every endpoint on this page authenticates with a personal access token.
The project object
{
"id": "5d1c0e7a-3f2b-4c8e-9a61-0d4f2b7c9e10",
"account_id": "a8e3f1c2-7b4d-4e2a-9c5f-6d1b0e8a3f47",
"name": "billing-service",
"retention_days": 30,
"last_purged_at": "0001-01-01T00:00:00Z",
"last_purged_count": 0,
"created_at": "2026-10-30T14:03:11.402Z",
"updated_at": "2026-10-30T14:03:11.402Z"
}
| Field | Description |
|---|---|
id |
Project ID (UUID). |
account_id |
The account that owns the project. You need it for integrations. |
name |
Display name, unique within the account. |
retention_days |
How many days events are kept. New projects start at 30. 0 means no project limit, though your plan's retention cap still applies. |
last_purged_at |
When retention last deleted events. Zero time if never. |
last_purged_count |
How many events that purge deleted. |
created_at, updated_at |
Timestamps. |
List projects
GET /v1/projects
Returns every project you own. Projects other people have shared with you aren't included, but you can still fetch them by ID.
curl https://api.everscribe.io/v1/projects \
-H "Authorization: Bearer $EVERSCRIBE_PAT"
{ "projects": [ { "id": "5d1c0e7a-...", "name": "billing-service", "...": "..." } ] }
Create a project
POST /v1/projects
| Body field | Required | Description |
|---|---|---|
name |
yes | 1 to 100 bytes after trimming whitespace (fewer characters if the name isn't ASCII). |
Returns 201 with {"project": {...}}.
curl -X POST https://api.everscribe.io/v1/projects \
-H "Authorization: Bearer $EVERSCRIBE_PAT" \
-H "Content-Type: application/json" \
-d '{"name":"billing-service"}'
| Status | Body | When |
|---|---|---|
400 |
name is required / name must be 100 characters or fewer |
Bad name. |
409 |
project name already taken |
You already have a project with this name. |
Get a project
GET /v1/projects/{id}
Requires viewer. Returns {"project": {...}}, or 404 project not found.
curl https://api.everscribe.io/v1/projects/$PROJECT_ID \
-H "Authorization: Bearer $EVERSCRIBE_PAT"
Rename a project
PUT /v1/projects/{id}
Requires admin. The name is the only field you can change.
| Body field | Required | Description |
|---|---|---|
name |
yes | Same rules as on create. |
Returns {"project": {...}} with the new name. Errors are the same as Create a project, plus 404 and 403.
curl -X PUT https://api.everscribe.io/v1/projects/$PROJECT_ID \
-H "Authorization: Bearer $EVERSCRIBE_PAT" \
-H "Content-Type: application/json" \
-d '{"name":"billing"}'
Delete a project
DELETE /v1/projects/{id}
Requires admin. Returns 204 with no body. The project disappears from lists and lookups, and its API keys stop working right away: ingest with one of them returns 401.
curl -X DELETE https://api.everscribe.io/v1/projects/$PROJECT_ID \
-H "Authorization: Bearer $EVERSCRIBE_PAT"