Skip to content

chat

13 endpoints at a glance
MethodPathSummary
DELETE/chat/attachments/{attachment_id}Delete Attachment
GET/chat/attachments/{attachment_id}/downloadDownload Attachment
GET/chat/conversationsList Conversations
POST/chat/conversationsCreate Conversation
GET/chat/conversations/{conv_id}Get Conversation
POST/chat/conversations/{conv_id}/attachmentsUpload Attachment
POST/chat/conversations/{conv_id}/leaveLeave Conversation
GET/chat/conversations/{conv_id}/messagesList Messages
POST/chat/conversations/{conv_id}/messagesSend Message
POST/chat/conversations/{conv_id}/readMark Read
DELETE/chat/messages/{msg_id}Delete Message
PATCH/chat/messages/{msg_id}Edit Message
GET/chat/unread-countUnread Count

chat


List Conversations

GET
/chat/conversations

The viewer's conversations, newest-active first, with an unread flag.

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


Create Conversation

POST
/chat/conversations

Open a DM (1 other user, deduped) or create a group (N others).

Parameters

Header Parameters

authorization

Request Body

application/json
JSON
{
  
"participants": [
  
  
"string"
  
],
  
"title": ""
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Body

Samples


Get Conversation

GET
/chat/conversations/{conv_id}

Parameters

Header Parameters

authorization

Path Parameters

conv_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Mark Read

POST
/chat/conversations/{conv_id}/read

Parameters

Header Parameters

authorization

Path Parameters

conv_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Leave Conversation

POST
/chat/conversations/{conv_id}/leave

Leave a conversation. If it becomes empty, it's destroyed and its
messages, read cursors, and attachments are cascaded away.

Parameters

Header Parameters

authorization

Path Parameters

conv_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Unread Count

GET
/chat/unread-count

Number of conversations with unread messages (the nav badge).

Parameters

Header Parameters

authorization

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers

Samples


List Messages

GET
/chat/conversations/{conv_id}/messages

Cursor window of messages as a diff.

  • before → older history (scroll-up); new carries the older page,
    has_more reports whether yet-older messages exist.
  • after → live incremental poll; new carries messages newer than
    the cursor and since (if given) yields the changed set (edits +
    tombstones) so already-rendered bubbles can be patched.
  • neither → initial load; new is the latest page, has_more reports
    whether older history exists.

Parameters

Header Parameters

authorization

Path Parameters

conv_id*
Type
string
Required

Query Parameters

after
before
since
limit
Type
integer
Default
50

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Send Message

POST
/chat/conversations/{conv_id}/messages

Parameters

Header Parameters

authorization

Path Parameters

conv_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"body_md": "",
  
"attachments": [
  
  
"string"
  
]
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Delete Message

DELETE
/chat/messages/{msg_id}

Parameters

Header Parameters

authorization

Path Parameters

msg_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Edit Message

PATCH
/chat/messages/{msg_id}

Parameters

Header Parameters

authorization

Path Parameters

msg_id*
Type
string
Required

Request Body

application/json
JSON
{
  
"body_md": "string"
}

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Upload Attachment

POST
/chat/conversations/{conv_id}/attachments

Parameters

Header Parameters

authorization

Path Parameters

conv_id*
Type
string
Required

Request Body

multipart/form-data

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value
Body

Samples


Download Attachment

GET
/chat/attachments/{attachment_id}/download

Parameters

Header Parameters

authorization

Path Parameters

attachment_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
[
]

Playground

Headers
Variables
Key
Value

Samples


Delete Attachment

DELETE
/chat/attachments/{attachment_id}

Remove a chat attachment (uploader-only) — e.g. an uploaded file the
user decides not to send.

Parameters

Header Parameters

authorization

Path Parameters

attachment_id*
Type
string
Required

Responses

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground

Headers
Variables
Key
Value

Samples


Kancil — one workspace for contacts, work and money.