GetChatHistory#
Метод возвращает историю сообщений чата.
Метод возвращает только те сообщения, которые системе отдает MAX. 
 Глубина выгрузки чатов - до 5000 сообщений за 3 месяца. 
Сообщения, полученные или отправленные раньше, чем 3 месяца назад, не будут отображены.
Сообщения, полученные или отправленные раньше, чем 5000 сообщений назад, не будут отображены.
Для метода используются ограничения на частоту запросов в секунду.
Запрос#
Для получения истории сообщений требуется выполнить запрос по адресу:
{{apiUrl}}/v3/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}
Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.
Параметры запроса#
| Параметр | Тип | Обязательный | Описание | 
|---|---|---|---|
chatId |  string | Да | Идентификатор личного или группового чата историю сообщений которого требуется получить | 
count |  integer | Нет | Количество сообщений для получения. Значение по умолчанию 100 |  
Пример тела запроса#
Запрос последних 10 сообщений:
{
    "chatId": "10000000",
    "count": 10
}
Ответ#
Ответ содержит список всех полученных и отправленных сообщений в чате. Сортировка по убыванию даты отправки сообщения.
Поля ответа#
Массив объектов с полями:
| Поле | Тип | Описание | 
|---|---|---|
type |  string | Вид сообщения: outgoing - исходящее сообщение; incoming - входящее сообщение |  
idMessage |  string | Идентификатор входящего сообщения | 
timestamp |  integer | Время принятия сообщения в UNIX-формате | 
statusMessage |  string | Статус исходящего сообщения. Присутствует только для type = outgoing. Возможные значения: |  
sent - отправлено |  ||
delivered - доставлено |  ||
read - прочитано/просмотрено/прослушано |  ||
sendByApi |  boolean | Флаг указывает отправлено сообщение из API или нет. Присутствует только для type = outgoing |  
typeMessage |  string | Тип сообщения, возможные значения: | 
textMessage - текстовое сообщение |  ||
chatId |  string | Идентификатор чата, в котором получено сообщение. | 
senderName |  string | Имя отправителя сообщения. Присутствует только для type = incoming |  
senderContactName |  string | Имя отправителя из списка контактов телефонной книги. Присутствует только для type = incoming |  
isForwarded |  boolean | Флаг указывает является ли сообщение пересланным | 
forwardingScore |  integer | Количество пересылок сообщения | 
textMessage |  string | Текст сообщения, если typeMessage=textMessage/extendedTextMessage |  
downloadUrl |  string | Ссылка на скачивание файла, если typeMessage = imageMessage /videoMessage/documentMessage/audioMessage |  
caption |  string | Описание файла, если typeMessage = imageMessage/videoMessage /documentMessage/ audioMessage |  
fileName |  string | Название файла, если typeMessage = imageMessage/videoMessage /documentMessage / audioMessage. Поле заполняется корректно только для typeMessage = documentMessage, в остальных случаях название файла генерируется автоматически |  
jpegThumbnail |  string | Превью изображения в base64 кодировке, если typeMessage = imageMessage/videoMessage/documentMessage , audioMessage |  
mimeType |  string | Тип файла, согласно класификации Media Types, если typeMessage = imageMessage/videoMessage/documentMessage/ audioMessage |  
isAnimated |  boolean | Флаг указывает анимирован ли файл, если typeMessage = imageMessage/videoMessage/documentMessage/audioMessage |  
extendedTextMessage |  object | Объект с текстовым сообщением (расширенный), если typeMessage = extendedTextMessage |  
extendedTextMessageData |  object | Объект с реакцией, если typeMessage = reactionMessage |  
Поля объекта extendedTextMessage:
| Поле | Тип | Описание | 
|---|---|---|
text |  string | Текст ссылки | 
description |  string | Описание ссылки | 
title |  string | Заголовок ссылки | 
jpegThumbnail |  string | Превью изображения в base64 кодировке |  
isForwarded |  boolean | Флаг указывает является ли сообщение пересланным | 
forwardingScore |  integer | Количество пересылок сообщения | 
Поля объекта extendedTextMessageData:
| Поле | Тип | Описание | 
|---|---|---|
text |  string | Реакция (эмоджи) на сообщение | 
Пример тела ответа#
[
    {
        "type": "outgoing",
        "idMessage": "115206687571465794",
        "timestamp": 1754999812,
        "typeMessage": "extendedTextMessage",
        "chatId": "10000000",
        "textMessage": "Я использую GREEN-API для отправки этого сообщения!",
        "extendedTextMessage": {
            "text": "Я использую GREEN-API для отправки этого сообщения!",
            "description": "",
            "title": "",
            "jpegThumbnail": "",
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "",
        "sendByApi": true,
    },
    {
        "type": "outgoing",
        "idMessage": "115206687571465794",
        "timestamp": 1754987080,
        "typeMessage": "extendedTextMessage",
        "chatId": "10000000",
        "textMessage": "Я использую GREEN-API для отправки этого сообщения!",
        "extendedTextMessage": {
            "text": "Я использую GREEN-API для отправки этого сообщения!",
            "description": "",
            "title": "",
            "jpegThumbnail": "",
            "forwardingScore": 0,
            "isForwarded": false
        },
        "statusMessage": "",
        "sendByApi": true,
    },
    {
        "type": "incoming",
        "idMessage": "115206687571465794",
        "timestamp": 1754986980,
        "typeMessage": "textMessage",
        "chatId": "10000000",
        "textMessage": "Я использую GREEN-API для отправки этого сообщения!",
        "senderId": "10000000",
        "senderName": "Ходабрыш Пробешёлов",
        "senderContactName": "Ходабрыш Пробешёлов"
    }
]
Ошибки GetChatHistory#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки
| Код HTTP | Идентификатор ошибки | Описание | 
|---|---|---|
| 400 | Bad Request Validation failed |  Ошибка валидации | 
| 400 | Bad Request Validation failed. Details: 'count' must be a number |  Некорректный тип данных для поля count либо значение поля превышает максимальное безопасное целочисленное значение  |  
Примеры кода#
import requests
url = "{{apiUrl}}/v3/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}"
payload = "{\r\n\t\"chatId\": \"10000000\",\r\n\t\"count\": 100\r\n}"
headers = {
  'Content-Type': 'application/json'
}
response = requests.post(url, json=payload)
print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/v3/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chatId": "10000000",
    "count": 10
}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/v3/waInstance").append({{idInstance}})
    .append("/getChatHistory/")
    .append({{apiTokenInstance}});
var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
var jsonBody = "{\"chatId\": \"10000000\",\"count\": 10}";
var requestEntity = new HttpEntity<>(jsonBody, headers);
var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
    .append({{apiUrl}})
    .append("/v3/waInstance").append({{idInstance}})
    .append("/getChatHistory/")
    .append({{apiTokenInstance}});
var response = Unirest.post(requestUrl.toString())
    .header("Content-Type", "application/json")
    .body("{\"chatId\": \"10000000\",\"count\": 10}")
    .asString();
System.out.println(response);
Sub GetChatHistory()
    Dim url As String
    Dim RequestBody As String
    Dim http As Object
    Dim response As String
    ' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
    url = "{{apiUrl}}/v3/waInstance{{idInstance}}/getChatHistory/{{apiTokenInstance}}"
    ' chatId - personal or group chat identifier whose message history you want to receive, count - number of messages to receive, default value 100
    RequestBody = "{""chatId"":""10000000"",""count"":10}"
    Set http = CreateObject("MSXML2.XMLHTTP")
    With http
        .Open "POST", url, False
        .setRequestHeader "Content-Type", "application/json"
        .send RequestBody
    End With
    response = http.responseText
    Debug.Print response
    ' Outputting the answer to the desired cell
    Range("A1").Value = response
    Set http = Nothing
End Sub