Сообщения
Сообщения — основная единица переписки внутри треда. API позволяет читать историю сообщений, искать по тексту, отправлять новые исходящие сообщения (текст, вложения, голосовые заметки), редактировать и удалять недавние сообщения оператора, а также отслеживать статусы доставки и реакции. `POST /messages/send` и `POST /messages/send-template` — самые частые точки входа: они сами находят или создают нужный тред по каналу и получателю.
Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| POST | /v1/messages/sendОтправить сообщение по каналу и получателю (создаёт тред при необходимости). | Отправить сообщение по каналу и получателю (создаёт тред при необходимости). |
| POST | /v1/messages/send-templateОтправить одобренный WhatsApp-шаблон по каналу и получателю (или thread_id). | Отправить одобренный WhatsApp-шаблон по каналу и получателю (или thread_id). |
| GET | /v1/messagesСписок сообщений с фильтрами по диалогу/треду/каналу/направлению. | Список сообщений с фильтрами по диалогу/треду/каналу/направлению. |
| GET | /v1/messages/searchПолнотекстовый поиск сообщений внутри диалога. | Полнотекстовый поиск сообщений внутри диалога. |
| POST | /v1/messagesСоздать сообщение напрямую (обычно используется /messages/send вместо этого). | Создать сообщение напрямую (обычно используется /messages/send вместо этого). |
| GET | /v1/messages/{message}Получить сообщение по id. | Получить сообщение по id. |
| PATCH | /v1/messages/{message}Отредактировать текст своего исходящего сообщения (в пределах окна редактирования канала). | Отредактировать текст своего исходящего сообщения (в пределах окна редактирования канала). |
| DELETE | /v1/messages/{message}Удалить сообщение (мягкое удаление; mode=revoke — отозвать у получателя, если канал поддерживает). | Удалить сообщение (мягкое удаление; mode=revoke — отозвать у получателя, если канал поддерживает). |
| GET | /v1/messages/{message}/aroundОкно сообщений вокруг конкретного сообщения (для прыжка к контексту). | Окно сообщений вокруг конкретного сообщения (для прыжка к контексту). |
| GET | /v1/messages/{message}/attachmentsСписок вложений сообщения. | Список вложений сообщения. |
| POST | /v1/messages/{message}/attachmentsПрикрепить файл к уже созданному сообщению. | Прикрепить файл к уже созданному сообщению. |
| GET | /v1/messages/{message}/statusesИстория статусов доставки (sent/delivered/read/failed). | История статусов доставки (sent/delivered/read/failed). |
| POST | /v1/messages/{message}/statusesЗаписать статус доставки сообщения. | Записать статус доставки сообщения. |
| GET | /v1/messages/{message}/reactionsСписок реакций (эмодзи) на сообщение. | Список реакций (эмодзи) на сообщение. |
| POST | /v1/messages/{message}/reactionsПоставить реакцию (эмодзи) на сообщение от имени компании. | Поставить реакцию (эмодзи) на сообщение от имени компании. |
Примеры
Отправка текстового сообщения
Запрос
curl -X POST "https://api.aisar.app/v1/messages/send" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"channel_id": 3,
"recipient": "+77001234567",
"message_content": "Здравствуйте! Ваш заказ №1045 передан в доставку."
}'Ответ
{
"success": true
}Список сообщений диалога
Запрос
curl -X GET "https://api.aisar.app/v1/messages?conversation_id=15&perPage=20" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"Ответ
{
"data": {
"items": [
{
"id": 1001,
"conversation_id": 15,
"thread_id": 33,
"channel_id": 3,
"direction": "outbound",
"message_type": "text",
"message_content": { "text": "Здравствуйте! Ваш заказ №1045 передан в доставку." },
"display_content": { "text": "Здравствуйте! Ваш заказ №1045 передан в доставку." },
"is_deleted": false,
"timestamp": "2026-02-09T18:00:00Z",
"created_at": "2026-02-09T18:00:00Z",
"updated_at": "2026-02-09T18:00:00Z",
"can_revoke_until": "2026-02-09T18:15:00Z",
"can_edit_until": "2026-02-09T18:15:00Z"
}
],
"pagination": { "page": 1, "perPage": 20, "total": 1, "lastPage": 1 }
}
}