API overview
Authentication, tenancy, errors and conventions.
Authentication
POST /api/auth/login with {slug, email, password} returns a session token as an HttpOnly cookie and in the body for bearer use. MFA-enabled workspaces require the second-factor step first. Sessions expire; call login again for a fresh token.
Tenancy and scope
Every request resolves the caller's tenant automatically. You never pass a tenant ID - your account's data is the only data reachable, enforced in the query layer and again by Postgres row-level security.
Conventions
- Bodies are JSON.
PATCH /api/:kind/:idpartially updatestickets,conversationsormembers.POST /api/:kind/:id/deleteperforms deletions.- Errors return
{ "message": "...", "statusCode": n }:400validation,401unauthenticated,403forbidden,404not found,409conflict. - Mutations emit audit events; notifications and automation are side effects, not part of the response.
Rate limits
| Group | Limit |
|---|---|
/api/auth | 20 per 15 min |
/api/widget | 60 per min |
/api/webhooks | 300 per min |
/api/public | 30 per min |
Content types
Channel callbacks use form-encoded or XML as each provider dictates and are verified by signature or shared secret, not session.
Was this guide helpful?
