FruxonDocs
ApiAgent topics

List the agent's topics, optionally filtered by participant and/or state.

Returns topic rows most-recently-active first. Each row carries the agent-generated `outcomeOneLiner` (when a summary exists), a `hasStructuredSummary` flag the FE uses to decide whether the row expands, and the distinct channels the topic has run on. Filter by `participantId` for one person's timeline, by `state` (`ACTIVE` / `IDLE` / `RESOLVED` / `EXPIRED` / `ABANDONED`) to narrow to, e.g., resolved topics, and by `channelAddress` to narrow to the topics that have run on one channel (the address of a `channels[]` entry — e.g. the texter vs the telegram edge). Topics with no recorded channel are excluded when `channelAddress` is set.

GET
/v1/tenants/{tenant}/agents/{agent}/topics
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

agent*string

The unique identifier of the agent.

tenant*string

The tenant identifier

Query Parameters

PageSize?integer

The maximum number of items to return per page

Formatint32
PageToken.Skip?integer
Formatint32
PageToken.Cursor?string

Opaque 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.

participantId?string

Optional participant filter.

Formatuuid
state?string

Optional topic-state filter.

Value in"UNSPECIFIED" | "ACTIVE" | "IDLE" | "RESOLVED" | "EXPIRED" | "ABANDONED"
channelAddress?string

Optional channel-address filter (matches a channels[].address).

Response Body

curl -X GET "https://api.fruxon.com/v1/tenants/string/agents/string/topics"
{
  "items": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "agentId": "string",
      "participantId": "9f6624b5-5f99-42b6-899f-30f2b369cbd7",
      "subject": {
        "kind": "string",
        "reference": null
      },
      "goal": "string",
      "state": "UNSPECIFIED",
      "priority": "UNSPECIFIED",
      "resolution": "UNSPECIFIED",
      "isEscalated": true,
      "isConsolePaused": true,
      "consoleOwnerDisplayName": "string",
      "consoleOwnershipObservedAt": 0,
      "isHome": true,
      "parentTopicId": "68a74c7a-e79b-47fb-a66b-0110a8919c16",
      "outcomeOneLiner": "string",
      "hasStructuredSummary": true,
      "channels": [
        {
          "kind": "UNSPECIFIED",
          "address": "string",
          "conversationRowId": "406393ba-286e-4f2d-a7f0-516137c4d133"
        }
      ],
      "createdAt": 0,
      "lastActivityAt": 0,
      "resolvedAt": 0
    }
  ],
  "nextPageToken": "string",
  "totalCount": 0
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}