client.conversations
client.conversations — the conversations operations.
On AsyncKindgi every method is the same, awaited.
client.conversations.list()
Section titled “client.conversations.list()”list( *, limit: int | None = None, cursor: str | None = None, agent_id: str | None = None, status: Literal['open', 'closed'] | None = None, timeout: float | None = None,) -> ConversationCollectionPageList conversations. GET /v1/conversations
Cursor-paginated. Fixed sort: openedAt desc, id desc. Filters: ?agentId=, ?status=open|closed.
client.conversations.open()
Section titled “client.conversations.open()”open( *, idempotency_key: str | None = None, timeout: float | None = None, **fields: Any,) -> ConversationOpen a conversation. POST /v1/conversations
Pins (agentId, agentVersion) at open time. title defaults to "Untitled conversation" when omitted; scope accepts arbitrary JSON.
client.conversations.get()
Section titled “client.conversations.get()”get(*, timeout: float | None = None) -> ConversationFetch a conversation. GET /v1/conversations/{conversationId}
client.conversations.close()
Section titled “client.conversations.close()”close( *, idempotency_key: str | None = None, timeout: float | None = None,) -> ConversationClose a conversation. POST /v1/conversations/{conversationId}/close
Idempotent: closing an already-closed conversation returns 200 with the current row (no timestamp bump).
client.conversations.messages()
Section titled “client.conversations.messages()”messages( *, limit: int | None = None, cursor: str | None = None, timeout: float | None = None,) -> ConversationMessageCollectionPageRead 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.