/v1/chat/* (REST) and the WebSocket. The API Key is for your backend.
How to send the key
x-api-key. The key belongs to one workspace. Do not send x-workspace-id on v1.
Common combinations
App setup
chat:apps:create, chat:apps:manage, chat:apps:listIdentity
chat:usersBackend conversations
chat:conversations:read, chat:conversations:writeMessages
chat:messages:send, chat:messages:readAvailable scopes
chat:apps:list
chat:apps:list
List and get Chat Apps.
chat:apps:create
chat:apps:create
Create a Chat App. The response includes the signing secret.
chat:apps:manage
chat:apps:manage
Update name, origins, JWT flags, and rotate the secret.
chat:apps:delete
chat:apps:delete
Remove a Chat App (soft delete).
chat:users
chat:users
User upsert, JWT issue, and team agents.
chat:conversations:read
chat:conversations:read
List and get workspace conversations.
chat:conversations:write
chat:conversations:write
Create conversations, members, roles, join, and soft delete.
chat:messages:send
chat:messages:send
Send a message (1
CHAT_MESSAGE credit).chat:messages:read
chat:messages:read
List messages and mark read.
chat:messages:delete
chat:messages:delete
Soft-delete a message.
JWT vs API Key
Common errors
- 401 — missing key/JWT, rotated secret, revoked
jti(CHAT_INVALID_TOKEN) - 403 — missing scope, origin not allowed, or JWT create with flags off (
CHAT_CLIENT_CREATE_DISABLED) - 402 —
WORKSPACE_BLOCKED,INSUFFICIENT_CREDITS, or key spend limit - 409 —
CHAT_DIRECT_EXISTS

