List conversations
const url = 'https://app.mondochat.io/v1/conversations?limit=50';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://app.mondochat.io/v1/conversations?limit=50' \ --header 'Authorization: Bearer <token>'Returns the caller’s inbox: conversations that have a message, the pinned ones first, then the rest by latest message, 50 per page and at most 500 in total. With changed_since it returns instead the conversations whose summary changed after that sequence, oldest change first, with removed, next and has_more; keep latest_seq from the first page without it. view other than all, and q, need workspace.queue; where it is on, all leaves archived conversations out, and the first page carries counts. Needs a session token.
Errors: 422 validation for changed_since with cursor, view or q, for q with a view other than all, or an unknown view; 403 policy_denied with reason queue when workspace.queue is off; 410 gone with reason stale_cursor when changed_since is below the caller’s floor or above latest_seq: reload the inbox, then sync from the new latest_seq.
Guide: Conversations.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”Successful Response
A page of the viewer’s inbox, or the changes since a sequence.
object
With changed_since, whether more changes remain.
The entries on this page.
A conversation as an inbox row, from the viewer’s side.
object
Whether the viewer archived it; needs workspace.queue.
The conversation id.
The latest message of a conversation, as the viewer sees it.
object
True for an away reply.
When the message was sent.
True when deleted for everyone.
True only for the viewer’s own message once the peer received or read it.
The message id.
text, photo, video, voice, system or card.
True for a view-once message.
The text or caption up to 140 characters; empty for a message deleted for everyone; removed by moderation for a redacted one.
True only for the viewer’s own message once the peer has read it, and false while either participant has read_receipts off.
The other user.
object
The user’s id on your site.
The user’s id in mondochat.
Display name.
A role key from the app’s roles.
Whether the viewer pinned it; false while workspace.pins is off.
The viewer’s inbox sequence for this row; keep the higher seq.
Messages from the peer the viewer has not read.
The viewer’s latest inbox sequence; keep the one from the first page.
With changed_since, the ids no longer listed; else empty.
Example
{ "has_more": false, "items": [ { "archived": false, "id": "0199d6a0-2000-7000-8000-000000000001", "last_message": { "auto": false, "created_at": "2026-11-01T09:58:30Z", "deleted": false, "delivered_to_peer": false, "id": "0199d6a0-3000-7000-8000-000000000001", "kind": "text", "once": false, "preview": "Hi Alice", "read_by_peer": false, "sender_id": "0199d6a0-1000-7000-8000-000000000002" }, "peer": { "avatar": "https://example.test/bob.jpg", "external_id": "bob", "id": "0199d6a0-1000-7000-8000-000000000002", "last_seen_at": "2026-11-01T09:58:00Z", "name": "Bob", "online": true, "presence_pass": "example-presence-pass", "role": "member" }, "pinned": false, "seq": 7, "unread_count": 1 } ], "latest_seq": 7, "removed": []}Problem
An RFC 9457 problem: the body of every error answer.
object
The stable error code to branch on, such as policy_denied.
What went wrong this time, when there is more to say.
For validation, one entry per invalid field.
One invalid field.
object
The path to the field.
What is wrong with it.
The path of the request.
For policy_denied and limit_reached, the rule or limit that refused the request; for forbidden, a short cause such as you_blocked; for banned, temporary when the ban expires.
The HTTP status code.
A short summary of the problem.
A URL that names the problem, https://app.mondochat.io/problems/<code>.
Example
{ "code": "policy_denied", "detail": null, "instance": "/v1/conversations/0199d6a0-2000-7000-8000-000000000001", "reason": "pins", "status": 403, "title": "Policy denied", "type": "https://app.mondochat.io/problems/policy_denied"}