Encelade API Docs

Authentication

How to authenticate with the Encelade API using API tokens.

All API requests require an API token passed via the x-api-key header.

Creating a token

Go to your workspace settings
Navigate to the API tokens section
Click Create Token and select the scopes your integration needs

Copy the token immediately

Your token is only displayed once. Store it securely — you cannot retrieve it later.

Using the token

Include the token in every request:

curl -X GET https://your-instance.com/api/public/v1/projects \
  -H "x-api-key: YOUR_API_TOKEN"
const res = await fetch("https://your-instance.com/api/public/v1/projects", {
  headers: { "x-api-key": "YOUR_API_TOKEN" },
});
import requests

res = requests.get(
"https://your-instance.com/api/public/v1/projects",
headers={"x-api-key": "YOUR_API_TOKEN"},
)

Scopes

Tokens are scoped to limit access. Available scopes:

ScopeDescription
project:readList and view projects
project:writeCreate and update projects
project:deleteDelete projects
project:planGenerate project outlines
project:generateGenerate project content
session:readView generation session status
session:writeCancel generation sessions
webhook:readList webhooks
webhook:writeCreate and delete webhooks

A token with no scopes selected has full access to all endpoints.

Rate limiting

API requests are rate-limited per tenant. When you exceed the limit, requests return 429 Too Many Requests. Back off and retry after a short delay.

Errors

All error responses follow a consistent format:

{
  "error": "Description of what went wrong"
}

Common status codes:

CodeMeaning
401Invalid or missing API token
403Token lacks required scope
429Rate limit exceeded

The API playground on the reference pages sends real requests. Use a test or development token when trying endpoints interactively.