Skip to content

Control-plane API: organizations, agents, resources (skills, memories, MCP servers, credentials), communication (channels, inbox, approvals), scheduled tasks, audit, and billing.

Authentication ​

Integrations authenticate with a service token on every request:

Authorization: Bearer kjtk_live_…

Create the token in the dashboard (Settings → Service tokens). It belongs to one organization and has its own permissions (scopes). The complete secret is shown only once when it is created—store it in a secret manager. You can revoke it at any time from the same dashboard.

Routes and organizations ​

All routes use the /v1 prefix. An organization's resources live below /v1/org/{org_id}/…: the token can see only its organization; requesting another one returns 404 without revealing whether it exists.

Each endpoint states the permission it requires (resource.action, for example agent.view). A token without that scope receives 403.

Errors ​

Error responses share the same shape:

json
{ "status": 403, "code": "PERMISSION_DENIED", "message": "…" }

code is stable and is what your code should branch on; message is supporting text. Validation errors add an errors list with details for each field.

Rate limits ​

There are 60-second windows per IP: 600 requests across any route as the general ceiling, with stricter quotas on sensitive surfaces (authentication 10/min, public webhooks 120/min, support 20/min). Once a limit is exceeded, the API responds with 429 and the Retry-After header.

More help ​

Platform guides and concepts: docs.kujira.so.