List one page of a topic's episodes — the sessions it was worked in, newest-started first.
A topic outlives its sessions: the platform ends an episode and mints a fresh one rather than keeping one open, and the fresh one starts with an empty transcript. The message thread stamps each turn with its `ts_…``sessionId`, so it shows *that* a boundary happened; this shows **why**. `endCause` is the field to read. `CONSOLE_ALREADY_RESOLVED` on the previous session says a human closed the conversation in the provider's console, which is what ended the episode that knew about the escalation — so an answer the agent gave seconds later, apparently ignoring what a colleague had just told the customer, was given by a session that had never seen it. Read `endCause` together with `endedAt`. A cause with `endedAt` still null is an end that was requested and not yet applied, and a new inbound message voids it — so it is not an ended episode. A session still `RUNNING` on a resolved topic is the opposite shape: an episode nothing ever closed, which is also why nothing released the conversation back to its console. `seedContextIn` describes what the session was started with rather than quoting it — whether a seed was attached, of which kind, and, for a session seeded with a just-resolved human handoff, the ids that seed carries. The seed's prose is deliberately not reproduced: it is participant and operator text, and on a support handoff it is text that has just been redacted. Returns 404 on an unknown or foreign topic, and an empty page for a topic with no sessions yet.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The unique identifier of the agent.
The unique identifier of the topic.
uuidThe tenant identifier
Query Parameters
The maximum number of items to return per page
int32int32Opaque cursor token from an external system (e.g. RAG API). When set, M:Fruxon.Common.Collections.PageToken.AsString returns this value directly instead of encoding Fruxon.Common.Collections.PageToken.Skip.
Response Body
curl -X GET "https://api.fruxon.com/v1/tenants/string/agents/string/topics/497f6eca-6276-4993-bfeb-53cbbbba6f08/sessions"{
"items": [
{
"id": "00000000-0000-0000-0000-000000000000",
"legacyAgentSessionId": "string",
"agentId": "string",
"topicId": "00000000-0000-0000-0000-000000000000",
"participantId": "00000000-0000-0000-0000-000000000000",
"networkId": "00000000-0000-0000-0000-000000000000",
"kind": "TRIGGER",
"state": "RUNNING",
"flow": "string",
"channelBinding": {
"kind": "UNSPECIFIED",
"address": "string",
"threadRef": "string",
"conversationRowId": null,
"provider": "string",
"integrationConfigId": null,
"nativeConversationId": "string"
},
"startedAt": 0,
"endedAt": 0,
"endCause": "AGENT_CLOSED",
"endResolution": "GOAL_MET",
"consoleReleasedAt": 0,
"consoleReleaseAttempts": 0,
"consoleReleaseReason": "string",
"seedContextIn": {
"summaryLength": 0,
"findingCount": 0,
"artifactCount": 0,
"hasSuggestedOpening": false,
"openingIsVerbatim": false,
"hasContextSnapshot": false,
"recentSupportHandoff": null
},
"createdAt": 0,
"modifiedAt": 0
}
],
"nextPageToken": "string",
"totalCount": 0
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}