API authentication

Updated August 15, 2026

The Chato REST API authenticates via a workspace API key — separate from your personal browser session. The key acts on behalf of the workspace owner and grants full REST API access.

Getting a key

Generate a key in the cabinet: Settings → API key → "Generate". Chato shows the raw key only once, right after generation — save it immediately, you can't view it again. Regenerating a key immediately revokes the previous one: any integration still using the old key will stop working.

Base URL

https://chato.kz/api/v1

How to use it

Send the key in the Authorization header on every request:

GET /workspaces
Authorization: Bearer chato_sk_...

This returns your workspaces along with their id — you'll need it as :workspaceId in almost every other request.

Core endpoints

List channels:

GET /workspaces/:workspaceId/channels

List conversations (filters: status, assigned=me|none, pagination via cursor/limit):

GET /workspaces/:workspaceId/conversations?status=OPEN&limit=30

Start a conversation with a new number on a given channel:

POST /workspaces/:workspaceId/conversations/start
Content-Type: application/json

{ "channelId": "clx...", "phone": "77011234567" }

Messages in a conversation:

GET /workspaces/:workspaceId/conversations/:conversationId/messages

Send a message:

POST /workspaces/:workspaceId/conversations/:conversationId/messages
Content-Type: application/json

{ "content": "Hello!" }

Limits

The key stays valid until revoked in the cabinet. It has no lifetime of its own (unlike a browser JWT session) — revoking or regenerating it in the cabinet is the only way to deactivate it.

API authentication — Knowledge base