Для AI-агентов: markdown этой страницы — /docs-content/openlines/history.md индекс документации — /llms.txt

История сессии

Эндпоинт включается платформой Вайбкод постепенно. Пока он не включён на платформе, вызов возвращает 403 OPENLINES_HISTORY_DISABLED — это признак того, что возможность ещё не активирована, а не ошибка интеграции.

POST /v1/openlines/sessions/history

Возвращает переписку последней сессии чата Открытой линии одним ответом. Подходит для разбора обращения клиента целиком: сообщения, их авторы и приложенные файлы приходят вместе.

Поля запроса (body)

Передайте одно из двух полей.

Поле Тип Обяз. Описание
ПолеchatId Типnumber | string Обяз.нет ОписаниеИдентификатор чата Открытой линии: число 2043 или строка chat2043. Источник: sessions[].chatId в ответе POST /v1/openlines/sessions/search, chatId из GET /v1/openlines/crm/chats или из события бота
ПолеdialogId Типstring Обяз.нет ОписаниеТот же чат, только в форме chat2043. Число в этом поле отклоняется с 400 MISSING_PARAMS

Вход только по идентификатору чата. По нему платформа берёт последнюю сессию этого чата — то есть переписку текущего диалога. Идентификатор конкретной исторической сессии на вход не принимается.

Пагинации у метода нет: переписка возвращается целиком одним ответом. Для постраничного чтения сообщений чата используйте GET /v1/chats/:dialogId/messages.

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/openlines/sessions/history" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "chatId": 2043 }'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/openlines/sessions/history" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "chatId": 2043 }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/sessions/history', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ chatId: 2043 }),
})
const { data } = await res.json()
for (const message of data.messages) {
  console.log(message.date, message.senderId, message.text)
}

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/sessions/history', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ chatId: 2043 }),
})
const { data } = await res.json()

Поля ответа

Поле Тип Описание
Полеsuccess Типboolean Описаниеtrue при успешном запросе
Полеdata.sessionId Типnumber ОписаниеИдентификатор сессии, к которой относится переписка. Метрики сессии — POST /v1/openlines/sessions/stats
Полеdata.chatId Типnumber ОписаниеИдентификатор чата
Полеdata.messages Типobject[] ОписаниеСообщения сессии по возрастанию id
Полеdata.messages[].id Типnumber ОписаниеИдентификатор сообщения
Полеdata.messages[].chatId Типnumber ОписаниеИдентификатор чата
Полеdata.messages[].senderId Типnumber ОписаниеАвтор сообщения, 0 у системного сообщения. Данные автора — элемент data.users[] с тем же id
Полеdata.messages[].recipientId Типstring ОписаниеПолучатель — чат в форме chat<N>
Полеdata.messages[].date Типstring ОписаниеДата отправки, ISO 8601
Полеdata.messages[].text Типstring ОписаниеТекст сообщения с разметкой BB-кодами
Полеdata.messages[].textLegacy Типstring ОписаниеТот же текст с HTML-разметкой
Полеdata.messages[].params Типobject | array | null ОписаниеДополнительные параметры сообщения. Контейнер заполняет коннектор, и его содержимое передаётся как есть, без изменений. В нём могут оказаться контактные и CRM-данные обратившегося. Сообщение без параметров несёт пустой массив []
Полеdata.users Типobject[] ОписаниеАвторы сообщений, кроме системных
Полеdata.users[].id Типnumber ОписаниеИдентификатор пользователя
Полеdata.users[].name Типstring ОписаниеОтображаемое имя
Полеdata.users[].firstName Типstring ОписаниеИмя
Полеdata.users[].lastName Типstring ОписаниеФамилия
Полеdata.users[].workPosition Типstring | null ОписаниеДолжность
Полеdata.users[].avatar Типstring ОписаниеАдрес изображения аватара
Полеdata.users[].gender Типstring ОписаниеПол: M или F
Полеdata.users[].extranet Типboolean ОписаниеПризнак внешнего пользователя
Полеdata.users[].connector Типboolean Описаниеtrue у клиента, пришедшего через коннектор
Полеdata.users[].type Типstring ОписаниеТип пользователя, например user у сотрудника и extranet у клиента
Полеdata.files Типobject[] ОписаниеФайлы, приложенные к сообщениям
Полеdata.files[].id Типnumber ОписаниеИдентификатор файла
Полеdata.files[].chatId Типnumber ОписаниеИдентификатор чата
Полеdata.files[].date Типstring ОписаниеДата загрузки, ISO 8601
Полеdata.files[].type Типstring ОписаниеТип файла, например image
Полеdata.files[].name Типstring ОписаниеИмя файла
Полеdata.files[].extension Типstring ОписаниеРасширение файла
Полеdata.files[].size Типnumber ОписаниеРазмер, байты
Полеdata.files[].status Типstring ОписаниеСтатус загрузки, done у загруженного файла
Полеdata.files[].authorId Типnumber ОписаниеИдентификатор автора файла
Полеdata.files[].authorName Типstring ОписаниеИмя автора
Полеdata.files[].isVoiceNote Типboolean ОписаниеГолосовое сообщение
Полеdata.files[].isVideoNote Типboolean ОписаниеВидеосообщение
Полеdata.files[].isTranscribable Типboolean ОписаниеДоступна ли расшифровка
Полеdata.files[].urlPreview Типstring ОписаниеСсылка на уменьшенное изображение
Полеdata.files[].urlShow Типstring ОписаниеСсылка на просмотр
Полеdata.files[].urlDownload Типstring ОписаниеСсылка на скачивание
Полеdata.chats Типobject[] ОписаниеМетаданные чата
Полеdata.chats[].id Типnumber ОписаниеИдентификатор чата
Полеdata.chats[].dialogId Типstring ОписаниеИдентификатор диалога в форме chat<N>
Полеdata.chats[].name Типstring ОписаниеНазвание чата
Полеdata.chats[].type Типstring ОписаниеТип чата, у Открытой линии — lines
Полеdata.chats[].entityType Типstring ОписаниеТип сущности чата, у Открытой линии — LINES
Полеdata.chats[].messageCount Типnumber ОписаниеЧисло сообщений в чате за все сессии
Полеdata.chats[].dateCreate Типstring ОписаниеДата создания чата, ISO 8601
Полеdata.usersMessage Типobject ОписаниеСоответствие: идентификатор диалога chat<N> → идентификаторы сообщений сессии строками

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

JSON
{
  "success": true,
  "data": {
    "sessionId": 607,
    "chatId": 2043,
    "messages": [
      {
        "id": 88101,
        "chatId": 2043,
        "senderId": 0,
        "recipientId": "chat2043",
        "date": "2026-08-14T10:12:30+03:00",
        "text": "Обращение направлено на всех участников очереди",
        "textLegacy": "Обращение направлено на всех участников очереди",
        "params": []
      },
      {
        "id": 88103,
        "chatId": 2043,
        "senderId": 1211,
        "recipientId": "chat2043",
        "date": "2026-08-14T10:12:33+03:00",
        "text": "Здравствуйте, не приходит счёт",
        "textLegacy": "Здравствуйте, не приходит счёт",
        "params": { "connectorMid": ["88099"] }
      },
      {
        "id": 88107,
        "chatId": 2043,
        "senderId": 13,
        "recipientId": "chat2043",
        "date": "2026-08-14T10:13:05+03:00",
        "text": "[b]Добрый день![/b] Проверяю счёт",
        "textLegacy": "<b>Добрый день!</b> Проверяю счёт",
        "params": { "connectorMid": ["88109"] }
      }
    ],
    "users": [
      {
        "id": 13,
        "name": "Анна Соколова",
        "firstName": "Анна",
        "lastName": "Соколова",
        "workPosition": "Оператор",
        "avatar": "/bitrix/js/im/images/blank.gif",
        "gender": "F",
        "extranet": false,
        "connector": false,
        "type": "user"
      },
      {
        "id": 1211,
        "name": "Гость",
        "firstName": "Гость",
        "lastName": "",
        "workPosition": null,
        "avatar": "/bitrix/js/im/images/blank.gif",
        "gender": "M",
        "extranet": true,
        "connector": true,
        "type": "extranet"
      }
    ],
    "files": [],
    "chats": [
      {
        "id": 2043,
        "dialogId": "chat2043",
        "name": "Гость - Открытая линия",
        "type": "lines",
        "entityType": "LINES",
        "messageCount": 36,
        "dateCreate": "2026-08-14T10:12:30+03:00"
      }
    ],
    "usersMessage": { "chat2043": ["88107", "88103", "88101"] }
  }
}

Пример ответа при ошибке

422 — по чату нельзя определить сессию: чата нет или он не относится к Открытой линии:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Unable to determine session ID from provided parameters",
    "b24Code": "INVALID_SESSION_ID"
  }
}

Ошибки

HTTP Код Описание
HTTP400 КодMISSING_PARAMS ОписаниеНе передан ни chatId, ни dialogId. Тело только с sessionId получает этот же ответ
HTTP400 КодMISSING_PARAMS ОписаниеЗначение некорректно: chatId не целое положительное число и не строка chat<N>, dialogId не в форме chat<N>
HTTP400 КодINVALID_PARAMS ОписаниеТело запроса не JSON-объект
HTTP400 КодINVALID_JSON_BODY ОписаниеТело запроса не разобралось как JSON
HTTP401 КодTOKEN_MISSING ОписаниеУ ключа нет настроенных токенов Битрикс24
HTTP403 КодOPENLINES_HISTORY_DISABLED ОписаниеВозможность ещё не включена на платформе Вайбкод
HTTP403 КодSCOPE_DENIED ОписаниеУ ключа нет скоупа imopenlines
HTTP403 КодBITRIX_ACCESS_DENIED ОписаниеУ пользователя ключа нет доступа к этому диалогу
HTTP404 КодENTITY_NOT_FOUND ОписаниеБитрикс24 ответил пустым результатом вместо истории сессии
HTTP422 КодBITRIX_ERROR Описаниеerror.b24Code равен INVALID_SESSION_ID: чата с таким идентификатором нет или он не относится к Открытой линии
HTTP429 КодRATE_LIMITED ОписаниеПревышен собственный лимит метода: потолок платформы 120 запросов в минуту на портал, а не на ключ, делится на реплики. Действующее значение приходит в заголовке x-ratelimit-limit
HTTP502 КодBITRIX_UNAVAILABLE ОписаниеБитрикс24 вернул ответ неожиданной формы

Полный список общих ошибок API — Ошибки.

Смотрите также