Запрос истории сообщений получателя

Используйте этот метод, чтобы запросить историю сообщений получателя.

Метод запроса истории сообщений

С помощью этого метода ПО пользователя запрашивает историю сообщений получателя. Запрос выполняется через публичный интерфейс API с авторизацией по API-ключу.

Если запрос выполнен успешно, метод возвращает ответ с кодом 200 и JSON-объект с текстом и информацией о сообщении. В случае неуспешного выполнения запроса метод возвращает сообщение с кодом ошибки.

URL-адрес подключения

Для отправки сообщения отправьте POST-запрос на URL-адрес: https://app.edna.io/api/messages/history.

Формат запроса

В теле запроса передаются идентификатор получателя и необходимые фильтры.

{
  "offset": 0,
  "limit": 0,
  "sort": [
    {
      "direction": "ASC",
      "property": "SMS"
    }
  ],
  "subscriberFilter": {
    "address": "79000000000",
    "type": "EDNA_ID"
  },
  "dateFrom": "2023-07-20T11:57:02.074Z",
  "dateTo": "2023-07-20T11:57:02.074Z",
  "channelTypes": [
    "SMS"
  ],
  "direction": "OUT",
  "trafficTypes": [
    "AD"
  ],
  "subjectId": 0
}

Пример запроса

POST https://app.edna.io/api/messages/history
x-api-key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json

{
  "subscriberFilter": {
    "address": "79000000000",
    "type": "PHONE"
  },
  "channelTypes": ["WHATSAPP"],
  "direction": "IN",
  "subjectId": 20526,
  "dateFrom": "2023-06-01T00:00:00Z",
  "dateTo": "2023-06-12T00:00:00Z",
  "limit": 12,
  "offset": 1,
  "sort": [{"property": "messageId", "direction":  "ASC"}]
}

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

ПараметрТип данныхОбязательныйОписание
subscriberFilterobject даФильтр получателя.
subscriberFilter.
address
string даАдрес получателя. Например, номер телефона.
subscriberFilter.
type
array of EnumsдаТип адреса получателя: PHONE, EMAIL, UTM, COOKIE_ID, INSTAGRAM_ID, FACEBOOK_ID, TELEGRAM_ID, GOOGLE_ID, APPLE_ID, YANDEX_ID, EXT_USER_ID.
dateFromdatetimeнетВремя, с которого запрашиваются сообщения. По умолчанию — сообщения за последний год.
dateTodatetimeнетВремя, по которое запрашиваются сообщения. По умолчанию — без ограничений.
channelTypesarray of EnumsнетФильтр типа канала: WHATSAPP, SMS, VIBER, PUSH. Например, если передано значение PUSH, возвращается контент сообщения только для push-канала. Можно передать несколько значений.
directionstringнетНаправление сообщения: от получателя (IN) или получателю (OUT).
trafficTypearray of EnumsнетТип трафика: AD, SERVICE, HSM, CHAT. Значение — OUT.
subjectIDstringнетИдентификатор подписи.
offsetintegerнетКоличество сообщений, которые нужно пропустить после сортировки. По умолчанию — 0.
limitintegerнетМаксимальное количество сообщений в ответе. По умолчанию — 15. Максимум — 100.
sortstringнетПараметры сортировки.
sort.directionarray of EnumsнетНаправление сортировки: ASC или DESC. По умолчанию — DESC. Используется только с параметром sort.property.
sort.propertystringнетПараметр для сортировки. Для сортировки можно использовать значение любого параметра из примера ответа.

Формат ответа

Этот метод возвращает JSON-объект, содержащий все сообщения, отправленные пользователю или полученные от него, которые отвечают заданным условиям, а также дополнительную информацию об этих сообщениях.

Пример ответа

{
    "content": [
        {
            "messageId": 2945744,
            "tenantId": 549,
            "channelType": "SMS",
            "direction": "OUT",
            "address": "79000000000",
            "content": "{\"text\": \"Hello. Glad o see\", \"type\": \"TEXT\"}",
            "deliveryStatus": "UNDELIVERED",
            "deliveryStatusAt": "2022-10-18T21:12:37Z",
            "deliveryStatusMessage": "unrouted",
            "sentOrReceivedAt": "2022-10-18T21:12:34.223452Z",
            "subjectId": 284,
            "subjectName": "subject_sms",
            "cascadeId": 427,
            "cascadeName": "New channel",
            "cascadeStageUuid": "37549bb8-b343-4a3b-99a5-a23ce83ec66a",
            "trafficType": "AD",
            "segments": 1,
            "subscriberId": 2399569,
            "replyInMessageId": 537701
        },
        {
            "messageId": 2946294,
            "tenantId": 549,
            "channelType": "SMS",
            "direction": "OUT",
            "address": "79000000000",
            "content": "{\"text\": \"Hello. Glad o see\", \"type\": \"TEXT\"}",
            "deliveryStatus": "SENT",
            "deliveryStatusAt": "2022-10-18T21:14:18Z",
            "sentOrReceivedAt": "2022-10-18T21:14:15.358104Z",
            "subjectId": 284,
            "subjectName": "subject_sms",
            "cascadeId": 427,
            "cascadeName": "New channel",
            "cascadeStageUuid": "37549bb8-b343-4a3b-99a5-a23ce83ec66a",
            "trafficType": "AD",
            "segments": 1,
            "subscriberId": 2399569,
            "replyOutMessageId": 5043874,
            "replyOutMessageExternalRequestId": "2c2dd5f1-5ad8-449d-9c38-b6bdf288f1e5"
        }
    ],
    "number": 0,
    "size": 15,
    "hasNext": false
}

Параметры ответа

ПараметрОписание
messageIdВнутренний идентификатор сообщения.
tenantIdИдентификатор личного кабинета пользователя.
channelTypeТип канала.
directionНаправление сообщения: входящее или исходящее.
addressАдрес отправителя для входящих и получателя для исходящих сообщений.
contentТекст сообщения.
deliveryStatusСтатус доставки сообщения.
deliveryStatusAtДата и время статуса доставки.
deliveryStatusMessageСообщение статуса доставки.
sentOrReceivedAtДата и время отправки для исходящих и доставки для входящих сообщений.
subjectIdИдентификатор подписи.
subjectNameИмя подписи.
cascadeIdИдентификатор каскада.
cascadeNameИмя каскада.
cascadeStageUuidНомер шага каскада.
broadcastIdИдентификатор рассылки.
broadcastNameИмя рассылки.
trafficTypeТип трафика.
segmentsКоличество сегментов сообщения.
subscriberIdИдентификатор получателя в edna Pulse.
commentПараметр comment можно передавать при отправке сообщений. Он может служить для уникальной идентификации сообщения или рассылки.
numberНомер страницы.
sizeКоличество элементов в ответе.
hasNextФлаг наличия следующей страницы.
replyInMessageIdВнутренний идентификатор цитируемого сообщения пользователя. Пользователь цитирует своё сообщение, отправленное компании.
replyOutMessageIdВнутренний идентификатор цитируемого сообщения компании. Пользователь цитирует сообщение, полученное от компании.
replyOutMessageExternalRequestIdВнешний идентификатор цитируемого сообщения компании, который она указывает при отправке исходящего сообщения по API. В том случае если пользователь процитировал сообщение, полученное от компании.

Список ошибок

Метод вернет сообщение об ошибке 400 Bad Request и JSON-объект с описанием в следующих случаях:

  • указан неверный API-ключ;
  • не указан обязательный параметр address;
  • указано значение limit больше 100;
  • указана дата dateFrom более чем за 1 год до текущей.