Developers
API quickstart
Make your first authenticated request in about a minute.
2 minute read
Everything in the product is available over HTTP. The full endpoint list, with request and response shapes you can try in the browser, is the API reference; this page is the two minutes before that.
1. Create a key
Settings → API keys → Create key. The key is shown once and never again, so put it in your secret store now. Keys belong to the workspace that was active when you created them, and they carry that workspace's plan limits.
2. Make a request
Authenticate with the x-api-key header:
curl https://your-app.example.com/api/v1/me \
-H "x-api-key: $API_KEY"
The response tells you which workspace the key belongs to and what its plan allows:
{
"user": { "id": "...", "email": "you@example.com" },
"workspace": { "id": "...", "name": "Acme Inc" },
"plan": { "id": "pro_monthly", "name": "Pro" }
}
3. Read the reference
/api/docs renders the OpenAPI document with a console attached, so you can send a real request from the page. The raw document is at /api/openapi.json if you would rather generate a client:
npx openapi-typescript https://your-app.example.com/api/openapi.json -o api.d.ts
Things to know early
- Every response carries rate-limit headers. Read them rather than guessing. See Rate limits and quotas.
- Keys are workspace-scoped. A key cannot reach another workspace, even one you belong to. Create one key per workspace.
- Revoking is instant. If a key leaks, revoke it from Settings → API keys; in-flight requests using it stop immediately.
- Errors are JSON with an
errorfield and a useful HTTP status. A401means the key is missing or wrong,403means the key is real but not allowed to do this,429means you are over a limit.
Did this miss something? Tell us.