Чаты и история
Список чатов, переписка, история статусов, «прочитано», «печатает…» и архив.
Список чатов
GET
/v1/chatsСначала чаты с самой свежей активностью.
Параметры запроса
accountIduuidтолько чаты одного номера
unreadbooleantrue — только с непрочитаннымиarchivedbooleanархивные / неархивные
searchstring ≤ 100поиск по названию, имени и телефону
limitint 1…200размер страницы
cursorstringnextCursor из прошлого ответаЗапрос
curl "https://msg.xaxu.am/v1/chats?accountId=5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10&unread=true&limit=50" \
-H "Authorization: Bearer $XM_API_KEY"Ответ 200
{
"chats": [
{
"id": "9e2f7a1c-3b4d-4e5f-8a6b-7c8d9e0f1a2b",
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"externalId": "79181234567@c.us",
"kind": "direct",
"title": "Анна",
"contactName": "Анна",
"phone": "79181234567",
"avatarUrl": null,
"lastMessageAt": "2026-10-10T09:28:11.000Z",
"unreadCount": 2,
"archived": false
}
],
"nextCursor": null
}Один чат
GET
/v1/chats/:idПараметры пути
iduuidобязательноid чата
Ошибки
| 404 | not_found | чата нет или он принадлежит другому клиенту |
Запрос
curl "https://msg.xaxu.am/v1/chats/{id}" \
-H "Authorization: Bearer $XM_API_KEY"Ответ 200
{
"id": "9e2f7a1c-3b4d-4e5f-8a6b-7c8d9e0f1a2b",
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"externalId": "79181234567@c.us",
"kind": "direct",
"title": "Анна",
"contactName": "Анна",
"phone": "79181234567",
"avatarUrl": null,
"lastMessageAt": "2026-10-10T09:28:11.000Z",
"unreadCount": 2,
"archived": false
}Сообщения чата
GET
/v1/chats/:id/messagesСначала новые; листайте назад по nextCursor. Каждое сообщение — с файлами (attachments) и реакциями (reactions).
Параметры пути
iduuidобязательноid чата
Параметры запроса
limitint 1…200размер страницы
cursorstringnextCursor из прошлого ответаОшибки
| 404 | not_found | чата нет или он принадлежит другому клиенту |
Запрос
curl "https://msg.xaxu.am/v1/chats/{id}/messages?limit=50" \
-H "Authorization: Bearer $XM_API_KEY"Ответ 200
{
"messages": [
{
"id": "0b8e4d2a-6c1f-4a3e-9b7d-5e2f1c0a9d8b",
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"chatId": "9e2f7a1c-3b4d-4e5f-8a6b-7c8d9e0f1a2b",
"externalId": "BAE5F4C1D2A3B4C5",
"clientId": null,
"direction": "in",
"origin": "contact",
"kind": "text",
"text": "Здравствуйте! Есть свободные номера на выходные?",
"data": {},
"quotedExternalId": null,
"sender": {
"id": "79181234567@c.us",
"name": "Анна",
"phone": "79181234567"
},
"status": "received",
"statusDetail": null,
"sentAt": "2026-10-10T09:28:11.000Z",
"editedAt": null,
"deletedAt": null,
"attachments": [],
"reactions": []
}
],
"nextCursor": "MjAyNi0xMC0xMFQwOToyODoxMS4wMDBa…"
}Одно сообщение
GET
/v1/messages/:idПараметры пути
iduuidобязательноid сообщения
Ошибки
| 404 | not_found | сообщения нет или он принадлежит другому клиенту |
Запрос
curl "https://msg.xaxu.am/v1/messages/{id}" \
-H "Authorization: Bearer $XM_API_KEY"Ответ 200
{
"id": "0b8e4d2a-6c1f-4a3e-9b7d-5e2f1c0a9d8b",
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"chatId": "9e2f7a1c-3b4d-4e5f-8a6b-7c8d9e0f1a2b",
"externalId": "BAE5F4C1D2A3B4C5",
"clientId": null,
"direction": "in",
"origin": "contact",
"kind": "image",
"text": null,
"data": {},
"quotedExternalId": null,
"sender": {
"id": "79181234567@c.us",
"name": "Анна",
"phone": "79181234567"
},
"status": "received",
"statusDetail": null,
"sentAt": "2026-10-10T09:28:11.000Z",
"editedAt": null,
"deletedAt": null,
"attachments": [
{
"id": "f1a2b3c4-d5e6-4f70-8a9b-0c1d2e3f4a5b",
"messageId": "0b8e4d2a-6c1f-4a3e-9b7d-5e2f1c0a9d8b",
"direction": "in",
"kind": "image",
"fileName": "photo.jpg",
"mimeType": "image/jpeg",
"sizeBytes": 184213,
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"caption": "Вот так выглядит номер",
"status": "stored",
"error": null,
"createdAt": "2026-10-10T09:28:11.000Z",
"storedAt": "2026-10-10T09:28:12.000Z",
"contentUrl": "/v1/attachments/f1a2b3c4-d5e6-4f70-8a9b-0c1d2e3f4a5b/content"
}
],
"reactions": []
}История статусов сообщения
GET
/v1/messages/:id/historyКогда сообщение было поставлено в очередь, отправлено, доставлено и прочитано.
Параметры пути
iduuidобязательноid сообщения
Ошибки
| 404 | not_found | сообщения нет или он принадлежит другому клиенту |
Запрос
curl "https://msg.xaxu.am/v1/messages/{id}/history" \
-H "Authorization: Bearer $XM_API_KEY"Ответ 200
{
"history": [
{
"status": "sending",
"detail": null,
"at": "2026-10-10T09:30:01.000Z"
},
{
"status": "sent",
"detail": null,
"at": "2026-10-10T09:30:02.000Z"
},
{
"status": "delivered",
"detail": null,
"at": "2026-10-10T09:30:04.000Z"
},
{
"status": "read",
"detail": null,
"at": "2026-10-10T09:31:40.000Z"
}
]
}Отметить чат прочитанным
POST
/v1/chats/:id/readСразу обнуляет unreadCount, переводит входящие в read и отправляет собеседнику отметку «прочитано». Событие — chat.read.
WhatsAppдаTelegramдаMAXда
Параметры пути
iduuidобязательноid чата
Тело запроса
upToMessageIduuidпрочитано до этого сообщения включительно (по умолчанию — всё)
Ошибки
| 404 | not_found | чата нет или он принадлежит другому клиенту |
Запрос
curl -X POST "https://msg.xaxu.am/v1/chats/{id}/read" \
-H "Authorization: Bearer $XM_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'Ответ 202
{
"accepted": true
}Показать «печатает…»
POST
/v1/chats/:id/typingWhatsAppдаTelegramдаMAXнет
Параметры пути
iduuidобязательноid чата
Тело запроса
msint 500…20000сколько показывать, мс
Ошибки
| 422 | unsupported | мессенджер номера не умеет эту операцию |
| 404 | not_found | чата нет или он принадлежит другому клиенту |
Запрос
curl -X POST "https://msg.xaxu.am/v1/chats/{id}/typing" \
-H "Authorization: Bearer $XM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ms":3000}'Ответ 202
{
"accepted": true
}Архивировать чат
POST
/v1/chats/:id/archiveWhatsAppдаTelegramдаMAXнет
Параметры пути
iduuidобязательноid чата
Тело запроса
archivedbooleanобязательноtrue — в архив, false — из архиваОшибки
| 422 | unsupported | мессенджер номера не умеет эту операцию |
| 404 | not_found | чата нет или он принадлежит другому клиенту |
Запрос
curl -X POST "https://msg.xaxu.am/v1/chats/{id}/archive" \
-H "Authorization: Bearer $XM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"archived":true}'Ответ 202
{
"accepted": true
}