Получить уведомления im.notify.get
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Scope:
imКто может выполнять метод: любой пользователь
Метод im.notify.get возвращает уведомления текущего пользователя постранично.
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
LAST_ID |
Идентификатор последнего уведомления на предыдущей странице — поле Для первой страницы не передавайте. Передавайте вместе с |
|
LAST_TYPE |
Тип последнего уведомления на предыдущей странице. Допустимые значения:
Для первой страницы не передавайте. Передавайте вместе с Если передать |
|
LIMIT |
Количество уведомлений на странице. По умолчанию — Не передавайте |
|
CONVERT_TEXT |
Метод принимает параметр, но не учитывает его |
Как получить все уведомления
Метод сортирует уведомления по убыванию даты создания, затем по убыванию id. Сначала на страницу попадают уведомления, которые требуют подтверждения, затем метод добирает страницу обычными уведомлениями.
- Запросите первую страницу без
LAST_IDиLAST_TYPE - Возьмите последний элемент массива
notifications. Передайте егоidвLAST_ID. Если егоnotify_typeравен1, передайтеLAST_TYPE=1, иначеLAST_TYPE=3 - Повторяйте шаг 2, пока метод не вернет меньше уведомлений, чем
LIMIT
Ответ не содержит готового курсора следующей страницы: LAST_ID и LAST_TYPE вычисляйте по последнему элементу.
Примеры кода
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"LAST_ID":1500,"LAST_TYPE":3,"LIMIT":20}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/im.notify.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"LAST_ID":1500,"LAST_TYPE":3,"LIMIT":20,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/im.notify.get
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
type NotificationItem = {
id: number
chat_id: number
author_id: number
date: ISODate
notify_type: number
notify_module: string
notify_event: string
notify_tag: string
notify_sub_tag: string
notify_title: string
setting_name: string
text: string
params: object | null
notify_read: 'Y' | 'N'
notify_buttons?: string
}
type UserItem = {
id: number
active: boolean
name: string
first_name: string
last_name: string
work_position: string | null
color: string
avatar: string
avatar_hr: string
gender: 'M' | 'F'
birthday: string
extranet: boolean
network: boolean
bot: boolean
connector: boolean
external_auth_id: string
internal_account: boolean
intranet_user: boolean
status: string
idle: ISODate | false
last_activity_date: ISODate | false
mobile_last_date: ISODate | false
desktop_last_date: ISODate | false
absent: ISODate | false
departments: number[]
phones: Record<string, string> | false
bot_data: object | null
type: string
website: string
email: string
}
// Shape of the payload returned in result (match the "response handling" section of the page)
// total_count, total_unread_count and chat_id are absent when the user has no notifications
type ImNotifyGetResult = {
total_count?: number
total_unread_count?: number
chat_id?: number
notifications: NotificationItem[]
users: UserItem[]
}
try {
const response = await $b24.actions.v2.call.make<ImNotifyGetResult>({
method: 'im.notify.get',
params: {
LAST_ID: 1500,
LAST_TYPE: 3,
LIMIT: 20,
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Notifications on page:', result.notifications.length)
// Cursor for the next page is built from the last notification
const last = result.notifications.at(-1)
if (last && result.notifications.length === 20) {
console.info('Next page:', { LAST_ID: last.id, LAST_TYPE: last.notify_type === 1 ? 1 : 3 })
}
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function getNotifications() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'im.notify.get',
params: {
LAST_ID: 1500,
LAST_TYPE: 3,
LIMIT: 20,
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Notifications on page:', result.notifications.length)
// Cursor for the next page is built from the last notification
const last = result.notifications.at(-1)
if (last && result.notifications.length === 20) {
console.info('Next page:', { LAST_ID: last.id, LAST_TYPE: last.notify_type === 1 ? 1 : 3 })
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getNotifications)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.im.notify.get(
last_id=1500,
last_type=3,
limit=20,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service->core->call(
'im.notify.get',
[
'LAST_ID' => 1500,
'LAST_TYPE' => 3,
'LIMIT' => 20,
]
);
$result = $response->getResponseData()->getResult();
print_r($result);
} catch (Throwable $exception) {
echo $exception->getMessage();
}
BX24.callMethod(
'im.notify.get',
{
LAST_ID: 1500,
LAST_TYPE: 3,
LIMIT: 20,
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'im.notify.get',
[
'LAST_ID' => 1500,
'LAST_TYPE' => 3,
'LIMIT' => 20,
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
var_dump($result['result']);
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "im.notify.get", b24.Params{
"LAST_ID": 1500,
"LAST_TYPE": 3,
"LIMIT": 20,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("im.notify.get: %w", err)
}
var item struct {
TotalCount int `json:"total_count"`
TotalUnreadCount int `json:"total_unread_count"`
ChatID int `json:"chat_id"`
Notifications []struct {
ID int `json:"id"`
NotifyType int `json:"notify_type"`
Text string `json:"text"`
} `json:"notifications"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.TotalCount, item.TotalUnreadCount, len(item.Notifications))
// Курсор следующей страницы строится по последнему уведомлению
if n := len(item.Notifications); n == 20 {
last := item.Notifications[n-1]
lastType := 3
if last.NotifyType == 1 {
lastType = 1
}
fmt.Println("LAST_ID:", last.ID, "LAST_TYPE:", lastType)
}
Обработка ответа
HTTP-статус: 200
{
"result": {
"total_count": 34,
"total_unread_count": 13,
"chat_id": 2535,
"notifications": [
{
"id": 1499,
"chat_id": 2535,
"author_id": 0,
"date": "2026-11-10T16:30:11+03:00",
"notify_type": 4,
"notify_module": "rest",
"notify_event": "rest_notify",
"notify_tag": "",
"notify_sub_tag": "",
"notify_title": "",
"setting_name": "rest|rest_notify",
"text": "Счет [B]№ 42[/B] оплачен",
"params": {
"ATTACH": [
{
"ID": 1794317528,
"BLOCKS": [
{
"MESSAGE": "Сумма: 15 000 руб."
}
],
"DESCRIPTION": "",
"COLOR": "#29619b",
"COLOR_TOKEN": "base"
}
]
},
"notify_read": "N"
},
{
"id": 1497,
"chat_id": 2535,
"author_id": 15,
"date": "2026-11-10T16:29:54+03:00",
"notify_type": 2,
"notify_module": "rest",
"notify_event": "rest_notify",
"notify_tag": "",
"notify_sub_tag": "",
"notify_title": "",
"setting_name": "rest|rest_notify",
"text": "Проверьте договор до конца дня",
"params": null,
"notify_read": "N"
}
],
"users": [
{
"id": 15,
"active": true,
"name": "Иван Петров",
"first_name": "Иван",
"last_name": "Петров",
"work_position": null,
"color": "#58cc47",
"avatar": "https://cdn-ru.bitrix24.ru/b1234567/main/avatar.png",
"avatar_hr": "https://cdn-ru.bitrix24.ru/b1234567/main/avatar.png",
"gender": "M",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"external_auth_id": "socservices",
"internal_account": true,
"intranet_user": false,
"status": "online",
"idle": false,
"last_activity_date": "2026-11-10T16:28:38+03:00",
"mobile_last_date": false,
"desktop_last_date": false,
"absent": false,
"departments": [],
"phones": {
"personal_mobile": "79001234567"
},
"bot_data": null,
"type": "user",
"website": "",
"email": ""
}
]
},
"time": {
"start": 1794317458,
"finish": 1794317458.62455,
"duration": 0.6245501041412354,
"processing": 0,
"date_start": "2026-11-10T16:30:58+03:00",
"date_finish": "2026-11-10T16:30:58+03:00",
"operating_reset_at": 1794317940,
"operating": 0.120635986328125
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Объект с уведомлениями и их авторами (подробное описание) |
|
time |
Информация о времени выполнения запроса |
Объект result
|
Название |
Описание |
|
total_count |
Общее количество уведомлений пользователя |
|
total_unread_count |
Количество непрочитанных уведомлений |
|
chat_id |
Идентификатор системного чата уведомлений пользователя |
|
notifications |
Массив уведомлений на странице (подробное описание) |
|
users |
Массив авторов уведомлений на странице (подробное описание). В массив не попадают системные уведомления с |
Если у пользователя нет уведомлений, result содержит только пустые массивы notifications и users.
Объект notification
|
Название |
Описание |
|
id |
Идентификатор уведомления. Используйте |
|
chat_id |
Идентификатор системного чата уведомлений пользователя |
|
author_id |
Идентификатор автора уведомления. Для системных уведомлений — |
|
date |
Дата и время создания уведомления |
|
notify_type |
Тип уведомления. Возможные значения:
Используйте значение последнего элемента, чтобы выбрать |
|
notify_module |
Идентификатор модуля, который отправил уведомление |
|
notify_event |
Код события уведомления |
|
notify_tag |
Тег уведомления или пустая строка |
|
notify_sub_tag |
Дополнительный тег уведомления или пустая строка |
|
notify_title |
Заголовок уведомления или пустая строка |
|
setting_name |
Код типа уведомления в формате |
|
text |
Текст уведомления. Форматирование передается BB-кодами, например |
|
params |
Дополнительные параметры уведомления, например вложение |
|
notify_read |
Статус прочтения уведомления. Возможные значения: |
|
notify_buttons |
JSON-строка с кнопками уведомления. Поле есть только у уведомлений с |
Объект users
|
Название |
Описание |
|
id |
Идентификатор пользователя |
|
active |
Признак активности пользователя |
|
name |
Имя и фамилия пользователя |
|
first_name |
Имя пользователя |
|
last_name |
Фамилия пользователя |
|
work_position |
Должность пользователя или |
|
color |
Цвет пользователя в формате hex |
|
avatar |
Ссылка на аватар или пустая строка |
|
avatar_hr |
Ссылка на аватар высокого разрешения или пустая строка |
|
gender |
Пол пользователя. Возможные значения: |
|
birthday |
День рождения в формате |
|
extranet |
Признак внешнего пользователя |
|
network |
Признак пользователя Битрикс24 Network |
|
bot |
Признак бота |
|
connector |
Признак пользователя открытых линий |
|
external_auth_id |
Код внешней авторизации |
|
internal_account |
Признак внутренней учетной записи: |
|
intranet_user |
Признак сотрудника: у пользователя есть подразделение и внутренняя учетная запись |
|
status |
Статус пользователя |
|
idle |
В этом методе всегда |
|
last_activity_date |
Дата последней активности пользователя или |
|
mobile_last_date |
В этом методе всегда |
|
desktop_last_date |
В этом методе всегда |
|
absent |
Дата окончания отсутствия пользователя или |
|
departments |
Массив идентификаторов подразделений |
|
phones |
Телефоны пользователя (подробное описание) или |
|
bot_data |
Данные бота или |
|
type |
Тип пользователя. Возможные значения: |
|
website |
Сайт пользователя |
|
email |
Email пользователя |
Объект phones
В объекте есть только заполненные телефоны.
|
Название |
Описание |
|
work_phone |
Рабочий телефон |
|
personal_mobile |
Мобильный телефон |
|
inner_phone |
Внутренний телефон |
Обработка ошибок
HTTP-статус: 400
{
"error": "LAST_ID_AND_LAST_TYPE",
"error_description": "Parameters LAST_ID and LAST_TYPE should be used together."
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Состоит из цифр, латинских букв и знака подчеркивания. Может прийти пустым — тогда причину показывает только |
|
error_description |
Текст ошибки для разработчика. Не показывайте его конечному пользователю без обработки |
Возможные коды ошибок
|
Статус |
Код |
Описание |
Значение |
|
|
|
Parameters LAST_ID and LAST_TYPE should be used together |
Передан только один параметр из пары |
|
|
|
Last notification ID can't be string |
Значение |
Статусы и коды системных ошибок
HTTP-статус: 4xx, 5xx
Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит |
|
|
|
В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука |
|
|
|
Методы вызываются только по протоколу HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — |
|
|
|
Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом |
|
|
|
Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа |
|
|
|
Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на |
|
|
|
Срок действия access-токена истек |
|
|
|
Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |
Продолжите изучение
- Отправить уведомление im.notify
- Отправить персональное уведомление im.notify.personal.add
- Отправить системное уведомление im.notify.system.add
- Получить схему типов уведомлений im.notify.schema.get
- Прочитать список уведомлений im.notify.read.list
- Прочитать или вернуть непрочитанным уведомление im.notify.read
- Прочитать все уведомления im.notify.read.all
- Ответить на уведомление с быстрым ответом im.notify.answer
- Взаимодействовать с кнопками уведомлений im.notify.confirm
- Удалить уведомление im.notify.delete
- Поиск по истории уведомлений im.notify.history.search