REST API
All REST endpoints expect a bearer JWT. /v1/chat/* routes proxy to the messaging service. /auth/* routes live on the main API gateway. Request and response bodies are JSON with snake_case keys.
Auth
| Method | Path | Description |
|---|---|---|
POST | /auth/signup | Create an account + tenant. |
POST | /auth/login | Exchange credentials for a JWT + refresh token. |
POST | /auth/refresh | Rotate the access token. |
POST | /auth/logout | Revoke the current refresh token. |
GET | /auth/me | Return the authenticated user + tenant. |
PATCH | /auth/profile | Update display name, avatar, timezone. |
POST | /auth/change-password | Change the account password. |
Conversations
| Method | Path | Description |
|---|---|---|
GET | /v1/chat/conversations | List conversations the caller participates in. |
POST | /v1/chat/conversations | Create a conversation. |
PATCH | /v1/chat/conversations/:id | Update name or description. |
DELETE | /v1/chat/conversations/:id | Delete (for_me or for_everyone). |
GET | /v1/chat/conversations/:id/participants | List participants. |
POST | /v1/chat/conversations/:id/participants | Add participants. |
DELETE | /v1/chat/conversations/:id/participants/:userId | Remove a participant. |
POST | /v1/chat/conversations/:id/read | Mark conversation as read up to a seq. |
POST | /v1/chat/conversations/:id/typing | Broadcast a typing indicator. |
POST | /v1/chat/conversations/:id/mute | Mute the conversation for the caller. |
DELETE | /v1/chat/conversations/:id/mute | Unmute. |
POST | /v1/chat/conversations/:id/archive | Archive for the caller. |
DELETE | /v1/chat/conversations/:id/archive | Unarchive. |
GET | /v1/chat/conversations/unread | Per-conversation unread counts. |
Messages
| Method | Path | Description |
|---|---|---|
POST | /v1/chat/messages/send | Send a message. |
GET | /v1/chat/conversations/:id/messages | Fetch messages with pagination. |
POST | /v1/chat/messages/sync | Sync multiple conversations by last_seq. |
PATCH | /v1/chat/messages/:id | Edit a message you sent. |
POST | /v1/chat/messages/:id/reactions | Toggle a reaction. |
POST | /v1/chat/messages/forward | Forward a message to other conversations. |
GET | /v1/chat/messages/search | Full-text search across accessible messages. |
Users & blocks
| Method | Path | Description |
|---|---|---|
GET | /v1/chat/users | List users visible to the caller. |
GET | /v1/chat/users/search | Search users by name or phone. |
GET | /v1/chat/agents | List agents in the workspace. |
POST | /v1/chat/users/:id/block | Soft-block a user. |
DELETE | /v1/chat/users/:id/block | Unblock a user. |
GET | /v1/chat/blocks | List users the caller has blocked. |
Media
| Method | Path | Description |
|---|---|---|
POST | /v1/chat/media/upload-url | Issue a presigned upload URL. |
POST | /v1/chat/media/:id/confirm | Confirm upload complete + attach to a message. |
GET | /v1/chat/media/:id | Fetch media metadata (cdn_url, thumbnail_url). |
Messaging token
| Method | Path | Description |
|---|---|---|
GET | /v1/messaging/token | Exchange a Vero JWT for a msgsrv WebSocket token. |