Для AI-агентов: markdown этой страницы — /docs-content/notifications/search.md индекс документации — /llms.txt
Поиск уведомлений
GET /v1/notifications/search
Ищет уведомления в истории владельца токена по тексту, типу уведомления, автору и дате. Возвращает страницу до 50 уведомлений, следующие страницы запрашиваются курсором lastId.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
text (query) |
string | нет | Текст для поиска в уведомлениях. Без фильтров type, types, authors, date, dateFrom, dateTo — не короче 3 символов после обрезки пробелов по краям |
type (query) |
string | нет | Тип уведомления: модуль-источник, например crm, или пара модуль|событие, например mail|new_message_v2. Список типов — GET /v1/notifications/schema. Если передан types, параметр type не учитывается |
types (query) |
string | array | нет | Несколько модулей-источников через запятую, types=crm,mail, или массивом, types[]=crm&types[]=mail. Список модулей — GET /v1/notifications/schema. Список из одного значения работает как type, в том числе в форме модуль|событие. В списке из двух и более значений каждое сравнивается только с модулем, поэтому пара модуль|событие в таком списке не находит ничего |
authors (query) |
string | array | нет | ID авторов через запятую, authors=1,835, или массивом, authors[]=1&authors[]=835. Значение 0 отбирает системные уведомления без автора. Список сотрудников — GET /v1/users |
date (query) |
string | нет | Сутки, начиная с указанного момента, в формате ISO 8601: 2026-10-08 или 2026-10-08T00:00:00+03:00. Дата без времени — сутки по UTC. Если переданы dateFrom и dateTo, параметр date не учитывается |
dateFrom (query) |
string | нет | Начало диапазона дат в формате ISO 8601. Применяется только вместе с dateTo |
dateTo (query) |
string | нет | Конец диапазона дат в формате ISO 8601. Диапазон заканчивается через сутки после dateTo, поэтому дата без времени входит в диапазон целиком. Применяется только вместе с dateFrom |
lastId (query) |
string | нет | Курсор — id последнего уведомления предыдущей страницы. Только цифры. Значение 0 возвращает первую страницу |
Уведомления приходят от новых к старым, до 50 на странице. Первый запрос идёт без lastId. Для следующей страницы передайте в lastId значение id последнего уведомления, остальные параметры повторите без изменений. Обход закончен, когда пришла пустая страница или страница повторила уже полученные id. Сервер сам страницы не обходит.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/notifications/search?type=crm&dateFrom=2026-10-01&dateTo=2026-10-07" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/notifications/search?type=crm&dateFrom=2026-10-01&dateTo=2026-10-07" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications/search?type=crm&dateFrom=2026-10-01&dateTo=2026-10-07', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log('Найдено:', data.totalResults)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications/search?type=crm&dateFrom=2026-10-01&dateTo=2026-10-07', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
console.log('Найдено:', data.totalResults)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.chatId |
number, null | Идентификатор системного чата уведомлений владельца токена. null, когда поиск не выполнялся: в запросе нет ни текста, ни действующего фильтра или у владельца нет чата уведомлений |
data.notifications |
array | Найденные уведомления страницы |
data.notifications[].id |
number, null | Идентификатор уведомления. Передаётся в lastId для следующей страницы и в DELETE /v1/notifications/:id |
data.notifications[].chatId |
number, null | Идентификатор чата этого уведомления |
data.notifications[].authorId |
number, null | Идентификатор автора. 0 — системное уведомление без автора. Карточка автора — в массиве data.users |
data.notifications[].date |
string | Дата уведомления в формате ISO 8601 |
data.notifications[].notifyType |
number, null | Тип уведомления |
data.notifications[].notifyModule |
string | Модуль-источник уведомления, например crm |
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 |
string | Кнопки уведомления — строка JSON с массивом кнопок, как в ленте уведомлений. У уведомления без кнопок поле отсутствует |
data.notifications[].params |
object, null | Дополнительные данные отправителя. Вложенные ключи приходят в том виде, в каком их записал отправитель |
data.users |
array | Карточки авторов уведомлений этой страницы. Только публичные поля, без e-mail и телефонов |
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, null | Должность |
data.users[].color |
string | Цвет карточки сотрудника в интерфейсе Битрикс24 |
data.users[].avatar |
string | Ссылка на аватар |
data.users[].bot |
boolean | Является ли автор ботом |
data.users[].type |
string | Тип автора, например user |
data.totalResults |
number | Число уведомлений, подходящих под условия поиска. Считается только на первой странице — без lastId или с lastId=0. На следующих страницах приходит 0 |
Пример ответа
HTTP 200, показаны два первых уведомления страницы:
{
"success": true,
"data": {
"chatId": 7,
"notifications": [
{
"id": 42441,
"chatId": 7,
"authorId": 835,
"date": "2026-10-08T00:01:05+03:00",
"notifyType": 2,
"notifyModule": "crm",
"notifyEvent": "changeAssignedBy",
"notifyTag": "CRM|DEAL_RESPONSIBLE|8779",
"notifySubTag": "",
"notifyTitle": "",
"settingName": "crm|changeAssignedBy",
"text": "Вы назначены ответственным за сделку \"[URL=/crm/deal/details/8779/]Сделка #6531[/URL]\"",
"params": {
"COMPONENT_ID": "CrmEntity",
"COMPONENT_PARAMS": {
"SUBJECT": "#AUTHOR# назначил вас ответственным за сделку",
"ENTITY": {
"TITLE": "Сделка #6531",
"HREF": "/crm/deal/details/8779/",
"ENTITY_TYPE": "deal",
"CONTENT_TYPE": "title"
}
}
},
"notifyRead": false
},
{
"id": 42399,
"chatId": 7,
"authorId": 835,
"date": "2026-10-07T00:01:08+03:00",
"notifyType": 2,
"notifyModule": "crm",
"notifyEvent": "changeAssignedBy",
"notifyTag": "CRM|DEAL_RESPONSIBLE|8771",
"notifySubTag": "",
"notifyTitle": "",
"settingName": "crm|changeAssignedBy",
"text": "Вы назначены ответственным за сделку \"[URL=/crm/deal/details/8771/]Сделка #6531[/URL]\"",
"params": {
"COMPONENT_ID": "CrmEntity",
"COMPONENT_PARAMS": {
"SUBJECT": "#AUTHOR# назначил вас ответственным за сделку",
"ENTITY": {
"TITLE": "Сделка #6531",
"HREF": "/crm/deal/details/8771/",
"ENTITY_TYPE": "deal",
"CONTENT_TYPE": "title"
}
}
},
"notifyRead": false
}
],
"users": [
{
"id": 835,
"active": true,
"name": "Анна Петрова",
"firstName": "Анна",
"lastName": "Петрова",
"workPosition": "",
"color": "#3e99ce",
"avatar": "https://example.bitrix24.tech/upload/main/avatar-835.png",
"bot": false,
"type": "user"
}
],
"totalResults": 24
}
}
Пример ответа при ошибке
400 — text короче 3 символов, а фильтров нет:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Required: text with at least 3 characters, or a search filter."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
text короче 3 символов, и не передан ни один фильтр |
| 400 | INVALID_PARAMS |
Передан параметр, которого нет в таблице «Параметры» |
| 400 | INVALID_PARAMS |
lastId содержит не только цифры или выходит за пределы безопасного диапазона целых чисел |
| 400 | INVALID_PARAMS |
authors содержит не целое неотрицательное число, types содержит пустое значение |
| 400 | INVALID_PARAMS |
Параметр передан массивом там, где ожидается строка |
| 401 | MISSING_API_KEY |
Не передан X-Api-Key |
| 401 | TOKEN_MISSING |
У ключа нет настроенных токенов |
| 403 | SCOPE_DENIED |
У ключа нет скоупа im |
| 403 | BITRIX_ACCESS_DENIED |
Битрикс24 отказал в доступе |
| 422 | BITRIX_ERROR |
Ошибка метода на стороне Битрикс24, код портала — в поле b24Code. Например, дата не в формате ISO 8601 |
| 429 | RATE_LIMITED |
Битрикс24 ограничил частоту запросов |
| 502 | BITRIX_UNAVAILABLE |
Ответ Битрикс24 не удалось прочитать |
| 503 | BITRIX_TIMEOUT |
Битрикс24 не ответил вовремя |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Поиск идёт по истории владельца токена: по личному ключу — владельца ключа, по ключу OAuth-приложения — сотрудника из сессии
Authorization: Bearer. Отбора по приложению нет: вместе с уведомлениями вашего приложения находятся уведомления других приложений портала и системные. - Одна граница диапазона без других условий поиска даёт пустую страницу с
chatId: null, а не ошибку. Вместе с текстом или другим фильтром одна граница не учитывается. - Поля
text,notifyTitle,notifyButtons,paramsи строки вdata.users— недоверенный контент: их пишут другие приложения портала. Экранируйте эти значения перед выводом в интерфейсе.