List Conversations
Returns a paginated list of all conversations for a given chatbot.
GET /api/dev/v1/chatbots/{chatbot_id}/conversations
Authorization: Bearer <api-key>Query Parameters
Filters
statusstringoptionalFilter by conversation status. One of: ACTIVE, CLOSED, ARCHIVED, HANDOFF_PENDING, AGENT_ACTIVE.
channelstringoptionalFilter by channel (e.g. whatsapp, web, sms).
start_timestringoptionalFilter conversations created at or after this time (ISO 8601, e.g. 2026-01-01T00:00:00Z).
end_timestringoptionalFilter conversations created at or before this time (ISO 8601).
Pagination
limitintegeroptionaldefault: 50Page size. Min 1, max 67.
cursorstringoptionalPagination cursor from a previous response.
curl -X GET "https://beta-api.sarufi.io/api/dev/v1/chatbots/<chatbot-id>/conversations?status=ACTIVE&channel=whatsapp&limit=25" \
-H "Authorization: Bearer <your-api-key>"Response — 200 OK
{
"count": 1,
"conversations": [
{
"id": "01JPQ...",
"chatbot_id": "01JMXYZ...",
"user_phone": "+255712345678",
"contact_name": "John",
"channel": "whatsapp",
"status": "ACTIVE",
"last_message_id": "01JRS...",
"last_message_at": "2026-02-18T14:35:00Z",
"last_message_preview": "Thanks for your help!",
"unread_count": 2,
"created_at": "2026-02-18T14:22:00Z",
"updated_at": "2026-02-18T14:35:00Z"
}
],
"next_cursor": "eyJpZCI6IjAxSlBRIn0="
}Get Conversation
Retrieves a single conversation by ID.
GET /api/dev/v1/chatbots/{chatbot_id}/conversations/{conversation_id}
Authorization: Bearer <api-key>curl -X GET https://beta-api.sarufi.io/api/dev/v1/chatbots/<chatbot-id>/conversations/<conversation-id> \
-H "Authorization: Bearer <your-api-key>"Response — 200 OK
{
"id": "01JPQ...",
"chatbot_id": "01JMXYZ...",
"user_phone": "+255712345678",
"contact_name": "John",
"channel": "whatsapp",
"status": "ACTIVE",
"last_message_id": "01JRS...",
"last_message_at": "2026-02-18T14:35:00Z",
"last_message_preview": "Thanks for your help!",
"unread_count": 2,
"created_at": "2026-02-18T14:22:00Z",
"updated_at": "2026-02-18T14:35:00Z"
}Get Conversation Messages
Returns messages for a conversation, ordered oldest first.
GET /api/dev/v1/chatbots/{chatbot_id}/conversations/{conversation_id}/messages
Authorization: Bearer <api-key>Query Parameters
Pagination
limitintegeroptionaldefault: 50Page size. Min 1, max 67.
cursorstringoptionalPagination cursor from a previous response.
curl -X GET "https://beta-api.sarufi.io/api/dev/v1/chatbots/<chatbot-id>/conversations/<conversation-id>/messages?limit=25" \
-H "Authorization: Bearer <your-api-key>"Response — 200 OK
{
"count": 2,
"messages": [
{
"id": "01JRS...",
"conversation_id": "01JPQ...",
"message": { "text": "Hello, I need help with my order" },
"response": { "text": "Hi! I'd be happy to help. What's your order number?" },
"message_type": "text",
"responder": "BOT",
"received_at": "2026-02-18T14:22:05Z",
"responded_at": "2026-02-18T14:22:06Z",
"status": "delivered",
"created_at": "2026-02-18T14:22:05Z"
}
],
"next_cursor": null
}Conversation Object
ConversationRecord fields
idstringchatbot_idstringuser_phonestring+255712345678 for WhatsApp).contact_namestring | nullchannelstringwhatsapp, web, sms.statusstringACTIVE, CLOSED, ARCHIVED, HANDOFF_PENDING, AGENT_ACTIVE.last_message_idstring | nulllast_message_atstringlast_message_previewstring | nullunread_countintegercreated_atstringupdated_atstring | nullMessage Object
MessageRecord fields
idstringconversation_idstringmessageobject | nullresponseobject | nullmessage_typestringtext, image, document).responderstringBOT or HUMAN.received_atstringresponded_atstring | nullstatusstringcreated_atstringConversations are read-only
The API does not support sending messages to users directly. Conversations are created automatically when users interact through an active integration channel.