Skip to content

client.conversations

client.conversations — the conversations operations.

On AsyncKindgi every method is the same, awaited.

list(
*,
limit: int | None = None,
cursor: str | None = None,
agent_id: str | None = None,
status: Literal['open', 'closed'] | None = None,
timeout: float | None = None,
) -> ConversationCollectionPage

List conversations. GET /v1/conversations

Cursor-paginated. Fixed sort: openedAt desc, id desc. Filters: ?agentId=, ?status=open|closed.

open(
*,
idempotency_key: str | None = None,
timeout: float | None = None,
**fields: Any,
) -> Conversation

Open a conversation. POST /v1/conversations

Pins (agentId, agentVersion) at open time. title defaults to "Untitled conversation" when omitted; scope accepts arbitrary JSON.

get(*, timeout: float | None = None) -> Conversation

Fetch a conversation. GET /v1/conversations/{conversationId}

close(
*,
idempotency_key: str | None = None,
timeout: float | None = None,
) -> Conversation

Close a conversation. POST /v1/conversations/{conversationId}/close

Idempotent: closing an already-closed conversation returns 200 with the current row (no timestamp bump).

messages(
*,
limit: int | None = None,
cursor: str | None = None,
timeout: float | None = None,
) -> ConversationMessageCollectionPage

Read conversation messages. GET /v1/conversations/{conversationId}/messages

Cursor-paginated. Sort is sequence asc (natural conversation reading order) — distinct from most list endpoints, which use createdAt desc.