Получить список чатов im.recent.list
Scope:
imКто может выполнять метод: любой пользователь
Метод im.recent.list получает список последних диалогов пользователя с поддержкой пагинации.
Параметры метода
|
Название |
Описание |
|
SKIP_OPENLINES |
Пропускать чаты открытых линий. Возможные значения:
|
|
SKIP_DIALOG |
Пропускать диалоги один-на-один. Возможные значения:
|
|
SKIP_CHAT |
Пропускать групповые чаты. Возможные значения:
|
|
LAST_MESSAGE_DATE |
Дата последнего элемента предыдущей выборки в формате ATOM (ISO-8601) |
|
UNREAD_ONLY |
Возвращать только диалоги с непрочитанными сообщениями. Возможные значения:
|
|
PARSE_TEXT |
Парсить текст последнего сообщения. Возможные значения:
|
|
GET_ORIGINAL_TEXT |
Вернуть оригинальный текст сообщения без преобразований. Возможные значения:
|
|
SKIP_UNDISTRIBUTED_OPENLINES |
Пропускать нераспределенные чаты открытых линий. Возможные значения:
|
|
ONLY_COPILOT |
Возвращать только чаты BitrixGPT. Возможные значения:
|
|
ONLY_CHANNEL |
Возвращать только каналы. Возможные значения:
|
|
CAN_MANAGE_MESSAGES |
Возвращать только чаты с правом управления сообщениями. Возможные значения:
|
|
OFFSET |
Смещение для постраничной выборки. По умолчанию: |
|
LIMIT |
Количество элементов на страницу. По умолчанию: |
Рекомендации по пагинации
-
Для перехода на следующую страницу увеличивайте
OFFSETна значениеLIMIT(0,50,100), а не на количество элементов в ответе. -
Между страницами могут повторяться одни и те же диалоги, потому что выборка сначала строится по внутренним записям, а затем сворачивается в уникальные диалоги. Из-за этого границы страниц могут пересекаться.
-
Если чаты открытых линий не нужны, передавайте
SKIP_OPENLINES = Y— это снижает вероятность пересечений между страницами. -
Если список небольшой, запрашивайте его одним вызовом с увеличенным
LIMIT, максимальное значение200.
Примеры кода
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"LAST_MESSAGE_DATE":"2026-02-25T18:30:00+03:00","SKIP_OPENLINES":"N","SKIP_DIALOG":"N","SKIP_CHAT":"N","UNREAD_ONLY":"Y","PARSE_TEXT":"Y","GET_ORIGINAL_TEXT":"N","SKIP_UNDISTRIBUTED_OPENLINES":"Y","ONLY_COPILOT":"N","ONLY_CHANNEL":"N","CAN_MANAGE_MESSAGES":"Y","OFFSET":0,"LIMIT":20}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/im.recent.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"LAST_MESSAGE_DATE":"2026-02-25T18:30:00+03:00","SKIP_OPENLINES":"N","SKIP_DIALOG":"N","SKIP_CHAT":"N","UNREAD_ONLY":"Y","PARSE_TEXT":"Y","GET_ORIGINAL_TEXT":"N","SKIP_UNDISTRIBUTED_OPENLINES":"Y","ONLY_COPILOT":"N","ONLY_CHANNEL":"N","CAN_MANAGE_MESSAGES":"Y","OFFSET":0,"LIMIT":20,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/im.recent.list
try
{
const response = await $b24.callMethod(
'im.recent.list',
{
LAST_MESSAGE_DATE: '2026-02-25T18:30:00+03:00',
SKIP_OPENLINES: 'N',
SKIP_DIALOG: 'N',
SKIP_CHAT: 'N',
UNREAD_ONLY: 'Y',
PARSE_TEXT: 'Y',
GET_ORIGINAL_TEXT: 'N',
SKIP_UNDISTRIBUTED_OPENLINES: 'Y',
ONLY_COPILOT: 'N',
ONLY_CHANNEL: 'N',
CAN_MANAGE_MESSAGES: 'Y',
OFFSET: 0,
LIMIT: 20
}
);
console.log(response.getData().result);
}
catch (error)
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'im.recent.list',
[
'LAST_MESSAGE_DATE' => '2026-02-25T18:30:00+03:00',
'SKIP_OPENLINES' => 'N',
'SKIP_DIALOG' => 'N',
'SKIP_CHAT' => 'N',
'UNREAD_ONLY' => 'Y',
'PARSE_TEXT' => 'Y',
'GET_ORIGINAL_TEXT' => 'N',
'SKIP_UNDISTRIBUTED_OPENLINES' => 'Y',
'ONLY_COPILOT' => 'N',
'ONLY_CHANNEL' => 'N',
'CAN_MANAGE_MESSAGES' => 'Y',
'OFFSET' => 0,
'LIMIT' => 20,
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error: ' . $e->getMessage();
}
BX24.callMethod(
'im.recent.list',
{
LAST_MESSAGE_DATE: '2026-02-25T18:30:00+03:00',
SKIP_OPENLINES: 'N',
SKIP_DIALOG: 'N',
SKIP_CHAT: 'N',
UNREAD_ONLY: 'Y',
PARSE_TEXT: 'Y',
GET_ORIGINAL_TEXT: 'N',
SKIP_UNDISTRIBUTED_OPENLINES: 'Y',
ONLY_COPILOT: 'N',
ONLY_CHANNEL: 'N',
CAN_MANAGE_MESSAGES: 'Y',
OFFSET: 0,
LIMIT: 20
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'im.recent.list',
[
'LAST_MESSAGE_DATE' => '2026-02-25T18:30:00+03:00',
'SKIP_OPENLINES' => 'N',
'SKIP_DIALOG' => 'N',
'SKIP_CHAT' => 'N',
'UNREAD_ONLY' => 'Y',
'PARSE_TEXT' => 'Y',
'GET_ORIGINAL_TEXT' => 'N',
'SKIP_UNDISTRIBUTED_OPENLINES' => 'Y',
'ONLY_COPILOT' => 'N',
'ONLY_CHANNEL' => 'N',
'CAN_MANAGE_MESSAGES' => 'Y',
'OFFSET' => 0,
'LIMIT' => 20,
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
Обработка ответа
HTTP-статус: 200
{
"result": {
"items": [
{
"id": 547,
"chat_id": 1231,
"type": "user",
"avatar": {
"url": "",
"color": "#1eb4aa"
},
"title": "Иван Иванов",
"message": {
"id": 84415,
"text": "ntcn",
"file": false,
"author_id": 547,
"attach": false,
"sticker": null,
"date": "2026-02-25T12:07:10+03:00",
"status": "received",
"uuid": "0c3c5ad6-a1b8-4d4d-9234-f137ef862a77"
},
"counter": 1,
"last_id": 82363,
"pinned": false,
"unread": false,
"has_reminder": false,
"date_update": "2026-02-25T12:07:10+03:00",
"date_last_activity": "2026-02-25T12:07:10+03:00",
"user": {
"id": 547,
"active": true,
"name": "Иван Иванов",
"first_name": "Иван",
"last_name": "Иванов",
"work_position": "Тестировщик",
"color": "#1eb4aa",
"avatar": "",
"avatar_hr": "/bitrix/js/im/images/blank.gif",
"gender": "M",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"external_auth_id": "socservices",
"status": "online",
"idle": false,
"last_activity_date": "2026-02-25T17:42:27+03:00",
"mobile_last_date": false,
"desktop_last_date": false,
"absent": false,
"departments": [
1,
667
],
"phones": false,
"bot_data": null,
"type": "user",
"website": "",
"email": "ivan.ivanov@mysite.ru"
},
"chat": {
"text_field_enabled": true,
"background_id": null,
"mute_list": []
},
"options": []
},
{
"id": "chat1317",
"chat_id": 1317,
"type": "chat",
"avatar": {
"url": "https://cdn-ru.bitrix24.ru/b17053/resize_cache/54309/ff58db95aecdfa09ae61b51b5fd8f63f/im/553/5539ce72ef842ca40efd35b54322d828/7qd8lz4rsqwubjru086fst8tx6uhkxa9",
"color": "#4ba984"
},
"title": "Хочу зеленый чат",
"message": {
"id": 84413,
"text": "ntcn",
"file": false,
"author_id": 547,
"attach": false,
"sticker": null,
"date": "2026-02-25T12:07:05+03:00",
"status": "received",
"uuid": "f4721d3d-68c6-473e-a899-3b96b0ee18db"
},
"counter": 1,
"last_id": 82447,
"pinned": false,
"unread": false,
"has_reminder": false,
"date_update": "2026-02-25T12:07:05+03:00",
"date_last_activity": "2026-02-25T12:07:05+03:00",
"chat": {
"id": 1317,
"parent_chat_id": 0,
"parent_message_id": 0,
"name": "Хочу зеленый чат",
"owner": 547,
"extranet": false,
"contains_collaber": false,
"avatar": "https://cdn-ru.bitrix24.ru/b17053/resize_cache/54309/ff58db95aecdfa09ae61b51b5fd8f63f/im/553/5539ce72ef842ca40efd35b54322d828/7qd8lz4rsqwubjru086fst8tx6uhkxa9",
"color": "#4ba984",
"type": "chat",
"entity_type": "",
"entity_id": "",
"entity_data_1": "",
"entity_data_2": "",
"entity_data_3": "",
"mute_list": {
"503": true
},
"manager_list": [],
"date_create": "2025-08-12T16:14:00+03:00",
"message_type": "C",
"user_counter": 2,
"restrictions": {
"avatar": true,
"rename": true,
"extend": true,
"call": true,
"mute": true,
"leave": true,
"leave_owner": true,
"send": true,
"user_list": true
},
"role": "MEMBER",
"text_field_enabled": true,
"background_id": null,
"entity_link": {
"type": "",
"url": "",
"id": ""
},
"permissions": {
"manage_users_add": "member",
"manage_users_delete": "manager",
"manage_ui": "member",
"manage_settings": "owner",
"manage_messages": "member",
"can_post": "member"
},
"public": ""
},
"user": {
"id": 547,
"active": true,
"name": "Иван Иванов",
"first_name": "Иван",
"last_name": "Иванов",
"work_position": "Тестировщик",
"color": "#1eb4aa",
"avatar": "",
"avatar_hr": "/bitrix/js/im/images/blank.gif",
"gender": "M",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"external_auth_id": "socservices",
"status": "online",
"idle": false,
"last_activity_date": "2026-02-25T17:42:27+03:00",
"mobile_last_date": false,
"desktop_last_date": false,
"absent": false,
"departments": [
1,
667
],
"phones": false,
"bot_data": null,
"type": "user",
"website": "",
"email": "ivan.ivanov@mysite.ru"
},
"options": []
}
],
"hasMorePages": false,
"hasMore": false,
"copilot": {
"chats": null,
"messages": null,
"roles": {
"copilot_assistant": {
"code": "copilot_assistant",
"name": "BitrixGPT",
"desc": "Готов отвечать на все вопросы в общем формате",
"avatar": {
"small": "https://preview.bitrix24.site/upload/ai/avatars/5f72dd53304450356e0eaf09c0fcda7b_64x64.png",
"medium": "https://preview.bitrix24.site/upload/ai/avatars/f62609ab98ede5b3d4bff7675cc9f1f5_128x128.png",
"large": "https://preview.bitrix24.site/upload/ai/avatars/0a89c642ed5f1c2a292f7c3a1eab99d3_256x256.png"
},
"default": true,
"prompts": [
{
"code": "universal_how_to_properly_write_a_business_letter",
"promptType": "default",
"title": "Как правильно составить деловое письмо?",
"text": "Как правильно составить деловое письмо?",
"isNew": false
},
{
"code": "universal_effective_methods_to_combat_procrastination_in_the_workplace",
"promptType": "default",
"title": "Как бороться с прокрастинацией?",
"text": "Расскажи про эффективные методы борьбы с прокрастинацией на рабочем месте",
"isNew": false
},
{
"code": "universal_ideas_on_how_to_make_meetings_more_concise_and_substantive",
"promptType": "default",
"title": "Идеи для совещаний",
"text": "Есть идеи, как сделать совещания более компактными и содержательными?",
"isNew": false
},
{
"code": "universal_ideas_for_short_breaks_for_physical_exercises",
"promptType": "default",
"title": "Идеи для коротких перерывов",
"text": "Предложи идеи для коротких перерывов на физические упражнения в офисе",
"isNew": false
}
]
},
... // описание других ролей
},
"recommendedRoles": [
"copilot_assistant",
"smm_manager",
"seo_copywriter",
"prompt_generator",
"marketing_specialist"
]
},
"messagesAutoDeleteConfigs": []
},
"total": -1,
"time": {
"start": 1772089843,
"finish": 1772089843.789026,
"duration": 0.7890260219573975,
"processing": 0,
"date_start": "2026-02-26T10:10:43+03:00",
"date_finish": "2026-02-26T10:10:43+03:00",
"operating_reset_at": 1772090443,
"operating": 0.2634410858154297
}
}
Возвращаемые данные
|
Название |
Описание |
|
result |
Корневой объект результата (подробное описание) |
|
total |
Общее количество элементов. В текущей реализации обычно |
|
time |
Информация о времени выполнения запроса |
Объект result-item
|
Название |
Описание |
|
items |
Список последних диалогов (подробное описание) |
|
hasMorePages |
Устаревающий алиас поля |
|
hasMore |
Признак наличия следующей страницы выборки |
|
copilot |
Дополнительные данные для элементов BitrixGPT (подробное описание) |
|
messagesAutoDeleteConfigs |
Настройки автоудаления сообщений по чатам |
Объект items
|
Название |
Описание |
|
id |
Идентификатор диалога: число для пользователя, |
|
chat_id |
Идентификатор чата |
|
type |
Тип записи: |
|
avatar |
Объект аватара (подробное описание) |
|
title |
Заголовок записи: имя пользователя или название чата |
|
message |
Последнее сообщение в диалоге (подробное описание) |
|
counter |
Счетчик непрочитанных сообщений |
|
last_id |
Идентификатор последнего прочитанного сообщения |
|
pinned |
Признак закрепленного диалога |
|
unread |
Признак ручной метки «не прочитано» |
|
has_reminder |
Признак установленного напоминания |
|
date_update |
Дата последнего изменения диалога в формате ISO 8601 |
|
date_last_activity |
Дата последней активности в диалоге в формате ISO 8601 |
|
user |
Данные пользователя (подробное описание) |
|
chat |
Данные чата (подробное описание) |
|
lines |
Данные открытой линии (подробное описание) |
|
options |
Дополнительные параметры записи |
Объект avatar
|
Название |
Описание |
|
url |
Ссылка на аватар. Если пусто, аватар не задан |
|
color |
Цвет диалога в формате HEX |
Объект message
|
Название |
Описание |
|
id |
Идентификатор сообщения |
|
text |
Текст сообщения |
|
file |
Признак наличия файлов |
|
author_id |
Идентификатор автора сообщения |
|
attach |
Признак наличия вложений |
|
date |
Дата сообщения в формате ATOM |
|
status |
Статус доставки сообщения |
|
sticker |
Идентификатор стикера. Если стикера нет, значение |
|
uuid |
Внешний идентификатор сообщения. Если не задан, значение |
Объект user
|
Название |
Описание |
|
id |
Идентификатор пользователя |
|
active |
Признак активного пользователя |
|
name |
Имя и фамилия пользователя |
|
first_name |
Имя пользователя |
|
last_name |
Фамилия пользователя |
|
work_position |
Должность пользователя |
|
color |
Цвет пользователя в формате HEX |
|
avatar |
Ссылка на аватар |
|
avatar_hr |
Ссылка на avatar высокого разрешения |
|
gender |
Пол пользователя |
|
birthday |
День рождения в формате |
|
extranet |
Признак внешнего экстранет-пользователя |
|
network |
Признак пользователя Битрикс24.Network |
|
bot |
Признак бота |
|
connector |
Признак пользователя открытых линий |
|
external_auth_id |
Код внешней авторизации |
|
status |
Статус пользователя |
|
idle |
Дата, когда пользователь отошел от компьютера. Если не задано, |
|
last_activity_date |
Дата последней активности пользователя |
|
mobile_last_date |
Дата последней активности в мобильном приложении. Если не задано, |
|
desktop_last_date |
Дата последней активности в десктоп-приложении. Если не задано, |
|
absent |
Дата отпуска пользователя. Если не задано, |
|
departments |
Список идентификаторов отделов пользователя |
|
phones |
Контактные телефоны пользователя. Может быть |
|
bot_data |
Данные бота. Для обычного пользователя может быть |
|
type |
Тип пользователя |
|
website |
Сайт пользователя |
|
email |
Email пользователя |
Объект chat
|
Название |
Описание |
|
id |
Идентификатор чата |
|
parent_chat_id |
Идентификатор родительского чата |
|
parent_message_id |
Идентификатор родительского сообщения |
|
name |
Название чата |
|
owner |
Идентификатор владельца чата |
|
extranet |
Признак участия внешнего экстранет-пользователя |
|
contains_collaber |
Признак участия коллаб-пользователей |
|
avatar |
Ссылка на аватар. Если пусто, аватар не задан |
|
color |
Цвет чата в формате HEX |
|
type |
Тип чата |
|
entity_type |
Внешний код чата: тип |
|
entity_id |
Внешний код чата: идентификатор |
|
entity_data_1 |
Внешние данные 1 для чата |
|
entity_data_2 |
Внешние данные 2 для чата |
|
entity_data_3 |
Внешние данные 3 для чата |
|
mute_list |
Список пользователей с отключенными уведомлениями |
|
manager_list |
Список идентификаторов менеджеров чата |
|
date_create |
Дата создания чата в формате ATOM |
|
message_type |
Тип сообщений чата |
|
user_counter |
Количество участников чата |
|
restrictions |
Ограничения действий в чате (подробное описание) |
|
role |
Роль текущего пользователя в чате |
|
text_field_enabled |
Доступность поля ввода сообщений |
|
background_id |
Идентификатор фона чата. Если не задан, значение |
|
entity_link |
Ссылка на связанный объект (подробное описание) |
|
permissions |
Права действий в чате (подробное описание) |
|
public |
Признак публичности чата |
Объект lines
|
Название |
Описание |
|
id |
Идентификатор открытой линии |
|
status |
Статус открытой линии |
|
date_create |
Дата создания открытой линии в формате ATOM |
Объект restrictions
|
Название |
Описание |
|
avatar |
Доступность изменения аватара |
|
rename |
Доступность изменения названия |
|
extend |
Доступность расширения чата |
|
call |
Доступность звонков |
|
mute |
Доступность отключения уведомлений |
|
leave |
Доступность выхода из чата |
|
leave_owner |
Доступность выхода владельца из чата |
|
send |
Доступность отправки сообщений |
|
user_list |
Доступность просмотра списка участников |
Объект entity_link
|
Название |
Описание |
|
type |
Тип связанного объекта |
|
url |
Ссылка на связанный объект |
|
id |
Идентификатор связанного объекта |
Объект permissions
|
Название |
Описание |
|
manage_users_add |
Право на добавление участников |
|
manage_users_delete |
Право на удаление участников |
|
manage_ui |
Право на управление интерфейсом чата |
|
manage_settings |
Право на управление настройками чата |
|
manage_messages |
Право на управление сообщениями |
|
can_post |
Право на отправку сообщений |
Объект copilot
|
Название |
Описание |
|
chats |
Данные BitrixGPT-чатов. Может быть |
|
messages |
Данные BitrixGPT-сообщений. Может быть |
|
roles |
Описание доступных ролей BitrixGPT |
|
recommendedRoles |
Список рекомендуемых ролей BitrixGPT |
Обработка ошибок
|
Название |
Описание |
|
error |
Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания |
|
error_description |
Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде |
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |
Продолжите изучение
- Получить сокращенный список последних чатов im.recent.get
- Получить данные о чате im.dialog.get
- Получить счетчики im.counters.get