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

Лента уведомлений

GET /v1/notifications

Возвращает страницу уведомлений владельца токена вместе со счётчиком непрочитанных. Страницы обходятся курсором, размер страницы задаёт параметр limit.

Параметры

Параметр Тип Обяз. По умолч. Описание
limit (query) number нет 50 Размер страницы, от 1 до 50. Значения 0 и больше 50 приводятся к ближайшей границе, исходное возвращается в meta.requestedLimit. Отрицательное, дробное и нечисловое значение возвращает 400 INVALID_LIMIT
lastId (query) number нет Идентификатор id последнего уведомления предыдущей страницы. Передаётся только вместе с lastType
lastType (query) number нет Этап обхода ленты: 1 — подтверждения, 3 — обычные уведомления. Передаётся только вместе с lastId
convertText (query) string нет выключено Преобразование текста уведомлений. Включают значения true, 1, y, выключают — false, 0, n. Регистр значения не важен

Первый запрос идёт без курсора — страница берётся с начала ленты. Для следующей страницы передайте id последнего уведомления в lastId вместе с lastType. Порядок обхода и признак конца выдачи — в разделе «Известные особенности».

Примеры

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

Terminal
curl "https://vibecode.bitrix24.tech/v1/notifications?limit=20" \
  -H "X-Api-Key: YOUR_API_KEY"

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

Terminal
curl "https://vibecode.bitrix24.tech/v1/notifications?limit=20" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications?limit=20', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data } = await res.json()
console.log('Непрочитанных:', data.totalUnreadCount)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications?limit=20', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()
console.log('Непрочитанных:', data.totalUnreadCount)

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data.notifications array Уведомления страницы
data.notifications[].id number, null Идентификатор уведомления. Передаётся в lastId для следующей страницы и в DELETE /v1/notifications/:id
data.notifications[].chatId number, null Идентификатор чата этого уведомления
data.notifications[].authorId number, null Идентификатор автора. Его карточка — в массиве data.users
data.notifications[].date string Дата уведомления в формате ISO 8601
data.notifications[].notifyType number, null Тип уведомления
data.notifications[].notifyModule string Модуль-источник уведомления, например rest
data.notifications[].notifyEvent string Событие-источник уведомления
data.notifications[].notifyTag string Метка tag, с которой уведомление отправлено
data.notifications[].notifySubTag string Дополнительная метка subTag
data.notifications[].notifyTitle string Заголовок уведомления
data.notifications[].settingName string Имя настройки доставки, по которой уведомление пришло получателю
data.notifications[].text string Текст уведомления
data.notifications[].notifyRead boolean Прочитано ли уведомление
data.notifications[].notifyButtons array Кнопки уведомления. У уведомления без кнопок поле отсутствует
data.notifications[].params object, null Дополнительные данные отправителя. Ключи внутри — те, что записало приложение-отправитель
data.users array Карточки авторов уведомлений этой страницы
data.users[].id number, null Идентификатор сотрудника. Карточка целиком — Сотрудники
data.users[].active boolean Активен ли сотрудник на портале
data.users[].name string Отображаемое имя
data.users[].firstName string Имя
data.users[].lastName string Фамилия
data.users[].workPosition string Должность
data.users[].color string Цвет карточки сотрудника в интерфейсе Битрикс24
data.users[].avatar string Ссылка на аватар
data.users[].bot boolean Является ли автор ботом
data.users[].type string Тип автора, например user
data.totalCount number Счётчик уведомлений ленты
data.totalUnreadCount number Счётчик непрочитанных уведомлений
data.chatId number, null Идентификатор системного чата уведомлений
data.hasMore boolean true, когда страница заполнена до meta.appliedLimit
meta.appliedLimit number Размер страницы, с которым выполнен запрос
meta.requestedLimit number Исходное значение limit до приведения к диапазону. Приходит, только когда значение изменено

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

HTTP 200:

JSON
{
  "success": true,
  "data": {
    "notifications": [
      {
        "id": 38963,
        "chatId": 3113,
        "authorId": 1297,
        "date": "2026-08-13T09:00:00+00:00",
        "notifyType": 2,
        "notifyModule": "rest",
        "notifyEvent": "rest_notify",
        "notifyTag": "MP|12345|DEAL_1024",
        "notifySubTag": "MP|12345|DEAL|1024",
        "notifyTitle": "",
        "settingName": "rest|rest_notify",
        "text": "Сделка №1024 перешла в стадию «Оплачено»",
        "params": null,
        "notifyRead": false
      },
      {
        "id": 38959,
        "chatId": 3113,
        "authorId": 1,
        "date": "2026-08-13T08:41:12+00:00",
        "notifyType": 1,
        "notifyModule": "im",
        "notifyEvent": "confirm",
        "notifyTag": "",
        "notifySubTag": "",
        "notifyTitle": "",
        "settingName": "im|confirm",
        "text": "Подтвердите участие во встрече",
        "notifyButtons": [
          { "TITLE": "Да", "VALUE": "Y", "COMMAND": "confirm" },
          { "TITLE": "Нет", "VALUE": "N", "COMMAND": "confirm" }
        ],
        "params": null,
        "notifyRead": true
      }
    ],
    "users": [
      {
        "id": 1297,
        "active": true,
        "name": "Анна Петрова",
        "firstName": "Анна",
        "lastName": "Петрова",
        "workPosition": "Менеджер по продажам",
        "color": "#1eb4aa",
        "avatar": "https://example.bitrix24.tech/upload/main/avatar-1297.png",
        "bot": false,
        "type": "user"
      },
      {
        "id": 1,
        "active": true,
        "name": "Иван Соколов",
        "firstName": "Иван",
        "lastName": "Соколов",
        "workPosition": "Руководитель отдела",
        "color": "#df532d",
        "avatar": "https://example.bitrix24.tech/upload/main/avatar-1.png",
        "bot": false,
        "type": "user"
      }
    ],
    "totalCount": 15,
    "totalUnreadCount": 1,
    "chatId": 3113,
    "hasMore": false
  },
  "meta": {
    "appliedLimit": 20
  }
}

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

400 — limit не целое число:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_LIMIT",
    "message": "limit must be an integer in 1..50"
  }
}

Ошибки

HTTP Код Описание
400 INVALID_LIMIT limit отрицательный, дробный, нечисловой или передан не строкой
400 VALIDATION_ERROR Передана половина курсора, lastType вне значений 1 и 3, lastId за пределами безопасного диапазона целых чисел, нераспознанное значение convertText или параметр передан не строкой
403 SCOPE_DENIED У ключа нет скоупа im
401 TOKEN_MISSING У ключа нет настроенных токенов
429 RATE_LIMITED Превышен темп чтения ленты — до 600 запросов в минуту на портал
502 BITRIX_UNAVAILABLE Ответ Битрикс24 не удалось прочитать
422 BITRIX_ERROR Ошибка метода на стороне Битрикс24, код портала — в поле b24Code

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

Известные особенности

  • Лента принадлежит владельцу токена — параметра «чью ленту читать» у операции нет. По личному ключу приходит лента владельца ключа. Лента конкретного сотрудника доступна только по ключу OAuth-приложения с заголовком Authorization: Bearer: владельца ленты задаёт сессия пользователя.
  • Лента не отфильтрована по приложению: вместе с уведомлениями вашего приложения приходят уведомления других приложений портала и системные уведомления. Отбирайте свои по notifyTag или notifyModule на стороне клиента.
  • Ошибочно выбранный lastType ошибки не вызывает — возвращается та же страница. Порядок обхода: пустая страница означает конец. Если страница не принесла ни одного нового id, повторите тот же lastId со вторым значением lastType, и только когда и он не дал новых id, считайте обход законченным. Держите собственный потолок числа страниц: полный обход ленты контрактом не гарантируется.
  • hasMore: false означает, что страница пришла короче запрошенного limit. Обычно это конец ленты, но короткая страница приходит и в середине обхода, поэтому надёжный признак конца — пустая страница.
  • totalCount может быть заметно больше числа уведомлений, которые лента отдаёт при обходе. Вести по нему пагинацию нельзя.
  • data.chatId и data.notifications[].chatId — разные значения. Первое — системный чат уведомлений, второе — чат конкретного уведомления.
  • Счётчик непрочитанных читается без выкачивания страницы — запросом с limit=1. На непустой ленте такой запрос всегда возвращает hasMore: true.
  • Поля text, notifyTitle, notifyButtons, params и строки в data.users — недоверенный контент: их пишут другие приложения портала. Экранируйте эти значения перед выводом в интерфейсе.
  • Счётчики, которых Битрикс24 не прислал, заменяются на 0, 0 и null. Присланный счётчик отдаётся как есть, поэтому на пустой странице totalCount может быть ненулевым. Отдельного признака пустой ленты нет — проверяйте длину notifications.

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