Search or list unified sessions
The unified, cross-surface sessions feed for one project: Playground, user-testing, eval, and swarm transcripts in one list, newest first. Project-NESTED (unlike /chat-sessions) because projectId owns the scope here rather than filtering it.
Supplying q at all switches to relevance-ordered search; scope then chooses what is searched. Row-level visibility applies in every mode: a caller never receives another member's private Playground session.
The response echoes the honored scope. A deployment predating that parameter omits the echo — clients requesting a non-default scope MUST treat its absence as "unsupported" rather than accepting the results.
Path parameters
ID of the hosted project that contains the server.
Query parameters
Search terms. Supplying this at all switches from the recency feed to relevance-ordered search; q= (blank) is an empty search, not "no filter".
What to search. titles (default) matches titles and opening messages; transcripts matches conversation content. Requires q; an unknown value is a 400.
Comma-separated surfaces to include: direct, chatbox, eval, swarm. Omit for all. An unknown value is a 400 rather than a silent widening.
active (default) or archived.
Page size, 1–200. Defaults to 50.
Opaque cursor: echo back the previous page's nextCursor. Never construct one, and never assume it encodes a timestamp. Cursors do not cross scopes — page with the parameters you opened with.
Response
One page of sessions — newest first when listing, most relevant first when searching.