Authentication
Every request carries a key as a bearer token. Create one in Settings > Developer.A key acts as a member of your workspace and can never perform admin
actions. It cannot create or run listeners, change billing, or create another
key. That holds regardless of who created it.
Permissions
A key reaches only what its scopes allow, and anything not granted is refused. There is no scope that grants admin access.
Every list endpoint is scoped to the workspace its key belongs to. You never
name an organisation: the key determines it.
Pagination
List endpoints return a page and a cursor. Pass the cursor back ascursor to
get the next one. A response with no nextCursor is the last page.
Errors
Two status codes are worth handling apart from the rest, because they look similar and want opposite responses. A 402 means the workspace’s plan does not include something, and the answer is to upgrade. A 429 means it does, but not yet: those carry areadyAt
telling you when to retry. Retrying a 402 will never succeed.
If a key leaks
Revoke it in Settings > Developer. It stops working within a minute, and immediately for the API’s own cache. Revoked keys stay in the list rather than being deleted, because the record that a key existed is what you need when working out what it touched.Only a hash of each key is stored, so a lost secret cannot be recovered or
shown to you again. Revoke it and create another.
Related
API reference
Every operation, generated from the routes a key can actually call.
Webhooks
Be told when something happens, instead of polling these endpoints for it.
MCP & Agents
The same data for an assistant, over OAuth rather than a static key.
Workspace and settings
Where keys are created, and why one is never an admin.