Skip to main content

Conversations

A conversation is one thread in a channel, such as a Slack thread. It starts with its first message in the channel. The gateway can only read conversations and close them. {id} is the conversation's UUID.

Access​

All these endpoints need a JWT.

  • The list covers every conversation on the orchestrator: any signed-in wallet sees each one's ID, description and status.
  • The other four endpoints also need your wallet to have access to one of the agents taking part. A person takes part through the human agent they are paired with. See Ownership.

List conversations​

GET /conversations · JWT

Takes page and elementsPerPage (see Pagination). bridgeId says which bridge the conversation came from. status is active or concluded.

Response 200: a page with the conversations under conversations.

{
"page": 1,
"elementsPerPage": 10,
"totalElements": 1,
"conversations": [
{
"id": "0b6e...",
"bridgeId": "1b2c3d4e-5555-4666-8777-888899990000",
"description": "Claim C45653, water damage",
"status": "concluded",
"concludedAt": "2026-09-30T10:12:00Z",
"createdAt": "2026-09-30T10:00:00Z",
"updatedAt": "2026-09-30T10:12:00Z"
}
]
}

Get a conversation​

GET /conversations/{id} · JWT, participant owner

Response 200: one conversation, in the shape of a list item.

StatusWhen
400The conversation ID is malformed.
403Your wallet has no access to any agent in the conversation (conversation_access_forbidden).
404The conversation doesn't exist.

Get messages​

GET /conversations/{id}/messages · JWT, participant owner

Returns every message, oldest first.

Response 200:

[
{
"id": "7c1a...",
"conversationId": "0b6e...",
"participantId": "a9f2...",
"content": "claims.acme.137.6022.eth, can you check claim C45653?",
"createdAt": "2026-09-30T10:00:05Z"
}
]
StatusWhen
400The conversation ID is malformed.
403Your wallet has no access to any agent in the conversation (conversation_access_forbidden).
404The conversation doesn't exist.

Get participants​

GET /conversations/{id}/participants · JWT, participant owner

Returns the agents and people in the conversation. Agents have a collection, token ID and ENS name. People have only a display name. To get an agent's role, get the agent and read attributes.role.

Response 200:

[
{
"id": "a9f2...",
"collectionAddress": "0x1234...",
"collectionTokenId": 3,
"ensDomain": "claims.acme.137.6022.eth"
},
{
"id": "d4e8...",
"displayName": "Alice"
}
]
StatusWhen
400The conversation ID is malformed.
403Your wallet has no access to any agent in the conversation (conversation_access_forbidden).
404The conversation doesn't exist.

Force-conclude​

POST /conversations/{id}/force-conclude · JWT, participant owner

Closes the conversation at once, without a conclusion from the facilitator. Closing a closed conversation does nothing. A person's next message reopens it.

Response 204, with no body.

StatusWhen
400The conversation ID is malformed.
403Your wallet has no access to any agent in the conversation (conversation_access_forbidden).
404The conversation doesn't exist.