List conversations
Returns a paginated list of the caller’s conversations within their workspace, by default newest-activity first. Each row includes the conversation id, channel, mode, last-activity time, title, a short preview of the latest message, the associated agent, an optional attached app, a delivered-artifact count, and, for email threads, from/to/subject. Supports a free-text query over title/agent/preview, sort (recent, oldest, or title), a mode filter (fast vs standard, or all), and a channel filter (email is excluded by default unless explicitly requested). Workspace admins may pass view=admin to list every conversation in the workspace; the response echoes the viewing mode, total match count, and page window.
Authorizations
Personal Access Token. Send as Authorization: Bearer hq_pat_....
Query Parameters
?view=admin opts into "see every conv in tenant", honored
only when the caller is workspace_users.is_admin = true.
Falls back silently to participant view otherwise so a
crafted URL from a non-admin doesn't leak the existence of
admin mode via a 403.
Free-text filter. Case-insensitive substring match over the conv title, the agent display name, and the latest-message preview (the three things a row shows). Empty/blank = no filter.
1-based page index. Clamped to >= 1.
Rows per page. Clamped to 1..=100; defaults to 25.
recent (default, newest activity first), oldest, or
title (A-Z, untitled convs sink to the end).
Which lane: fast lists only the no-VM "ask" threads; anything
else (default) lists the standard agent threads. The two lanes are
surfaced as separate tabs in Studio.
Optional channel filter. When set to a known channel kind (e.g.
email) the list returns ONLY threads of that kind - this backs the
admin Email > Threads tab. When unset, the default list EXCLUDES
email so external-correspondence threads don't bleed into the main
Home conversation list (they live under the Email section instead).
Unknown values yield an empty set rather than an error.
Response
Conversation list (paginated)
Echo of the resolved page + page size (after clamping) so the SPA renders the same window it asked for.
Total rows matching the (search + ACL) filter, before LIMIT/OFFSET - drives the SPA's pagination control.
"participant" (default) or "admin" - tells the SPA
whether to render the "Admin view" banner. Admin view is
audited via conversation_access_audit; the SPA showing
the banner is the visible half of that observability.