List conversation messages
Returns the conversation’s transcript as a sequence-ordered list of journal rows, each carrying its direction, kind, JSON payload, sequence number, turn id, timestamp, and resolved author name/avatar; this is the cold-load companion to the live event stream. Optional query parameters filter the results: since_seq returns only events after a given sequence number (used to fill gaps on stream reconnect), turn_id restricts to a single turn, direction restricts to inbound or outbound, and view=admin lets a workspace admin read a conversation they do not participate in. The caller must have access to the conversation, otherwise 404 is returned.
Authorizations
Personal Access Token. Send as Authorization: Bearer hq_pat_....
Path Parameters
Conversation id
Query Parameters
?view=admin opts a tenant admin into reading a journal
they don't participate in; non-admins are silently
downgraded. Same shape as conversation_meta. Honored as
read-only - there's no admin-elevation on POST.
Response
The conversation transcript: journal rows, seq-ordered (the cold-load companion to the live SSE stream)
Resolved author for multi-party threads (Slack/Teams): name + public
avatar URL, looked up from workspace_users by the message's
identity.sub. None for web/extension owners + unknown users -> the
frontend falls back to its own current-user rendering.