Skip to content

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 error field and a useful HTTP status. A 401 means the key is missing or wrong, 403 means the key is real but not allowed to do this, 429 means you are over a limit.

Did this miss something? Tell us.