Перейти к содержимому
Wbiztool

API сообщений

API истории сообщений

Получите список сообщений вашего рабочего пространства за диапазон дат со статусом каждого из них. Используйте этот API, чтобы сверить отправленное, строить отчёты или находить сообщения с ошибками для повторной отправки.

POSThttps://wbiztool.com/api/v1/report/

Тело запроса: JSON (нужен для страниц после первой) или поля формы

История охватывает все сообщения рабочего пространства вашего API-ключа — отправленные через API, панель управления или кампанию. Результаты возвращаются по 200 на страницу, начиная с самых старых. Те же данные доступны на странице Отчеты.

Быстрый пример#

curl -X POST https://wbiztool.com/api/v1/report/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "start_date": "01-09-2026",
    "end_date": "08-09-2026",
    "page": 1
  }'

Замените 12345 и YOUR_API_KEY своими значениями. Где их найти, описано в разделе Аутентификация.

Параметры запроса#

Аутентификация

client_idintegerобязательно

Ваш API Client ID из раздела Настройки → API ключи.

api_keystringобязательно

Ваш API-ключ с той же страницы.

Фильтры

start_datestringобязательно

Первый день диапазона в формате DD-MM-YYYY, например 01-09-2026.

end_datestringобязательно

Конец диапазона в формате DD-MM-YYYY. Сам этот день не включается. См. раздел Диапазон дат.

whatsapp_clientintegerнеобязательно

Возвращать только сообщения, отправленные с этого номера WhatsApp; укажите его ID со страницы настроек WhatsApp. Не передавайте параметр, чтобы получить сообщения со всех ваших номеров.

pageintegerнеобязательно

Номер страницы, начиная с 1 (по умолчанию). На каждой странице до 200 сообщений. Передавайте его как число JSON. 0 или отрицательное число возвращает total с пустым history.

Диапазон дат#

Даты считаются полуночью в начале соответствующего дня по индийскому стандартному времени (IST, UTC+5:30), а сообщения отбираются по времени создания (постановки в очередь или планирования), а не отправки. Диапазон длится с 00:00 start_date до 00:00 end_date, поэтому:

  • "start_date": "01-09-2026", "end_date": "08-09-2026" возвращает сообщения с 1 по 7 сентября. 8 сентября не включается.
  • Чтобы получить один день, укажите в end_date следующий день: "start_date": "15-09-2026", "end_date": "16-09-2026".
  • Если обе даты совпадают, сообщений не будет.

Пагинация#

Каждый ответ содержит total — число сообщений во всём диапазоне — и до 200 из них в history. Запрашивайте page 2, 3 и так далее, пока page × 200 не станет больше или равно total.

Ответ#

Успешный запрос возвращает HTTP 200:

{
  "message": "Success",
  "status": 0,
  "total": 3,
  "history": [
    { "id": 9817263, "msg_type": "Text", "contact": "919876543210", "message_status": "Sent" },
    { "id": 9817264, "msg_type": "File", "contact": "919812345670", "message_status": "Failed" },
    { "id": 9817265, "msg_type": "Image", "contact": "Sales Team Mumbai", "message_status": "Pending" }
  ]
}
ПолеТипОписание
messagestringSuccess, если запрос выполнен, иначе текст ошибки.
statusintegerВсегда 0. Не используйте его для определения успеха.
totalintegerЧисло сообщений в диапазоне дат на всех страницах. Присутствует только при успехе.
historyarrayДо 200 сообщений на этой странице, начиная с самых старых. Пустой при ошибке.
history[].idintegerID сообщения — тот же msg_id, что был возвращён при отправке.
history[].msg_typestringText, Image или File.
history[].contactstringНомер телефона получателя с кодом страны или название группы для сообщений в группу.
history[].message_statusstringСм. таблицу ниже.

Значения статуса сообщения#

message_statusЗначение
PendingВ очереди или запланировано, ещё не отправлено (статус 0).
SentОтправлено с вашего номера WhatsApp (статус 1).
DeliveredЗарезервировано, сейчас не возвращается.
ReadЗарезервировано, сейчас не возвращается.
FailedНе удалось отправить, или отправка была прервана (статус 2). Чтобы увидеть error, используйте API статуса сообщений.
CancelledОтменено до отправки (статус 3).
ExpiredНе отправлено до истечения срока expire_after_seconds (статус 4).

Отметки о доставке и прочтении сейчас не записываются, поэтому отправленные сообщения всегда отображаются как Sent. Delivered и Read — зарезервированные значения; если они когда-нибудь появятся, считайте их равными Sent.

Ошибки#

Ошибки возвращаются с HTTP 200 и status, равным 0, если не указано иное:

{ "message": "Error", "status": 0, "history": [] }
СообщениеКак исправить
Errorstart_date или end_date отсутствует или указан не в формате DD-MM-YYYY, тело JSON некорректно (часто из-за лишней запятой в конце) или запрос отправлен не методом POST.
Auth ErrorПередайте и client_id, и api_key.
Invalid Client IdПередайте client_id числом. Возвращается с HTTP 403, без history.
Auth Error: invalid api keyПроверьте, что ключ существует, не удалён и принадлежит этому client_id. Возвращается с HTTP 400, без history.
Demo Account can not access apisИспользуйте обычный аккаунт.

Советы#

  • Запрашивайте историю небольшими диапазонами: по дню или по неделе — так страниц будет немного.
  • Поиск сообщений с ошибками: отфильтруйте history по Failed, затем вызовите API статуса сообщений для каждого id, чтобы узнать причину. Прежде чем повторять отправку, проверьте error: Sending was interrupted and may have been delivered… означает, что у получателя сообщение, возможно, уже есть.
  • Старые сообщения удаляются: сообщения, которые достигли окончательного статуса и не менялись около 90 дней, могут быть удалены и больше не будут здесь отображаться. То же происходит с сообщениями, которые всё ещё стоят в очереди через 90 дней после создания или запланированного времени на отключённом или удалённом номере.
  • Отслеживание в реальном времени: чтобы реагировать на отправку сообщений, передавайте webhook при отправке сообщения, а не опрашивайте этот endpoint.