List Messages
Chat — Messages
List Messages
Fetch messages in a conversation or thread
GET
List Messages
Returns a cursor-paginated list of ChatMessage objects. By default returns the main conversation stream (excludes thread replies). Pass
parentId to fetch replies for a specific thread.
The caller must be a member. Former members (who left) can only read messages up to when they left.
Path Parameters
The ID of the conversation.
Query Parameters
If provided, returns thread replies to this message instead of the main stream.
ISO 8601 timestamp. Returns messages created before this time. Used for loading older messages. Mutually exclusive with
after.ISO 8601 timestamp. Returns messages created after this time. Used for loading newer messages. Mutually exclusive with
before.Number of messages to return. Defaults to 50.
Sort order:
asc or desc. Defaults to desc for the main stream, asc for threads.Comma-separated list of extra fields to include. Currently supports
files. Example: include=files.Optional filters object, serialized as bracket-notation query params (e.g.
filters[hasReplies]=true).hasReplies(boolean) — Whentrue, returns only messages that have thread replies (threadReplyCount > 0). Whenfalse, returns only messages with no thread replies. This filters by thread replies, not quotings (quotedMessageId).
Threads are one level deep — a reply can never have its own replies. So
filters[hasReplies]=true combined with parentId always returns an empty list; the response includes a notice field explaining why.Space-scoped reputation
This endpoint has a space in context, so it accepts the opt-in reputation params. They add aspaceReputation field to each message sender’s user, alongside the always-present reputation total. Requires the reputation bundle. See the Reputation data model for the full contract.
Adds
spaceReputation to each returned user. One of: a space <uuid> (that space’s bucket), none (the project-general bucket), or context (the space derived from this request’s context — per-row on lists). The empty string and the legacy general / null aliases are rejected (400). Missing buckets read as 0.Only honored with an explicit space
<uuid>. When true, spaceReputation is the subtree sum — the space plus all of its descendants (the root space’s own bucket included). Ignored for none; not allowed with context.Response
Array of message objects. Each includes
reactionCounts, userReactions, user, and quotedMessage fields. File attachments are included only when include=files is specified.Whether more messages exist in the requested direction.
ISO timestamp of the oldest message in this page.
null if no messages were returned.ISO timestamp of the newest message in this page.
null if no messages were returned.Present only when a filter combination can’t return results — e.g.
hasReplies: true together with parentId. Explains why the list is empty.Error Responses
Forbidden — 403
Forbidden — 403

