FruxonDocs
ApiProviderthreads

Lists messages in the tenant, filtered by the supplied query params.

Filters AND together. Scheduled-job rows are excluded by default — the resource is "real thread traffic", not one-shot notifications. Results sort ascending by `CreatedAt` so the natural read order is chronological. **Withheld inbound messages are in this stream and flagged, not hidden.** A message the runtime recorded but deliberately kept from every agent — because the source console reported a human owned the conversation, or because admission refused the sender — carries `withheldReason`, `withheldOwnership` and `withheldConsumedAt`. Read `withheldReason` before concluding an agent chose not to answer: on a withheld row it never saw the message at all. A row with a `withheldReason` and no `withheldConsumedAt` is still owed to an agent and does not drain on its own. Narrow with `delivery` (`ALL` by default, or `DELIVERED` / `WITHHELD` / `WITHHELD_PENDING`) and `withheldReason`. Naming a `withheldReason` implies `WITHHELD`, since only a withheld row carries one. `sinceMs` / `untilMs` bound the window.

GET
/v1/tenants/{tenant}/messages
AuthorizationBearer <token>

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

In: header

Path Parameters

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.

conversation?string

Restrict to messages on this conversation row.

Formatuuid
integrationConfigId?string

Restrict to messages observed / dispatched via this credentials envelope.

Formatuuid
agentId?string

Restrict to messages tied to this agent.

participantId?string

Restrict to messages on conversations reachable through this participant's channels.

Formatuuid
delivery?string

Which slice along the "did this reach an agent?" axis. Defaults to ALL.

Value in"UNSPECIFIED" | "ALL" | "DELIVERED" | "WITHHELD" | "WITHHELD_PENDING"
withheldReason?string

Restrict to messages withheld for one specific reason. Implies delivery=WITHHELD.

Value in"UNSPECIFIED" | "HUMAN_OWNED_CONVERSATION" | "ADMISSION_REFUSED"
sinceMs?integer

Inclusive lower bound (Unix ms) on the message time.

Formatint64
untilMs?integer

Exclusive upper bound (Unix ms) on the message time.

Formatint64

Response Body

curl -X GET "https://api.fruxon.com/v1/tenants/string/messages"
{
  "items": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "conversationId": "00000000-0000-0000-0000-000000000000",
      "integrationConfigId": "00000000-0000-0000-0000-000000000000",
      "integrationId": "string",
      "agentId": "string",
      "from": "string",
      "conversationName": "string",
      "message": "string",
      "attachments": [],
      "createdAt": 0,
      "executionRecordId": "00000000-0000-0000-0000-000000000000",
      "origin": "AGENT_REPLY",
      "withheldReason": "HUMAN_OWNED_CONVERSATION",
      "withheldOwnership": "BOT",
      "withheldConsumedAt": 0,
      "interrupted": false,
      "deliveredDurationMs": 0
    }
  ],
  "nextPageToken": "string",
  "totalCount": 0
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}