Conversations

The list of conversations, one conversation, closing it. Fields of the conversation object.

The list of conversations #

GET /api/v1/conversations conversations:read
FieldTypeReq.Description
statusstringnoopen, pending, resolved or closed
sinceRFC 3339noonly the ones changed after this time
cursorRFC 3339nocontinuation of the previous page
limitintno1…100, 25 by default
Example call
curl -s "https://api.widgetchat.ru/api/v1/conversations?status=open&since=2026-08-22T00:00:00Z" -H "Authorization: Bearer wck_…"
Response
{"data": [ /* conversation objects */ ], "nextCursor": "…", "hasMore": true}

One conversation #

GET /api/v1/conversations/{id} conversations:read

The conversation id is a UUID. Another site's conversation answers 404 rather than 403: the existence of someone else's ids is information too.

The conversation object #

FieldTypeReq.Description
iduuidyesconversation id
statusstringyesopen, pending, resolved, closed
channelstringyesalways app: the message comes from the widget
visitor.idstringyesthe visitor's permanent id
visitor.namestringnothe name, if the site passed it
visitor.emailstringnothe email, if the site passed it
visitor.organizationstringnothe organization from the signed token
visitor.accountIdstringnoyour customer id from the signed token
visitor.rolestringnothe visitor's role from the signed token
sourcestringnowhere the message came from
createdAtRFC 3339yeswhen it was created
lastMessageAtRFC 3339|nullnotime of the last message
lastReadAtRFC 3339|nullnohow far the visitor has read

The visitor object carries only what the site itself passed with a signed token. Internal marks of the conversation — the Telegram topic id, the open channel chat — are never served outside.

Close a conversation #

POST /api/v1/conversations/{id}/close conversations:write

A closed conversation stops taking replies: the visitor's next message starts a new one. Closing it again is not an error and produces no event.

Response
{"data": {"id": "6c82f8e2-…", "status": "closed"}}