im.recent.list
Получить список чатов
Описание
Метод im.recent.list получает список последних диалогов пользователя с поддержкой пагинации.
Параметры
SKIP_OPENLINES
string
необязательный
Пропускать чаты открытых линий.
Возможные значения:
- Y — да
- N — нет
SKIP_DIALOG
string
необязательный
Пропускать диалоги один-на-один.
Возможные значения:
- Y — да
- N — нет
SKIP_CHAT
string
необязательный
Пропускать групповые чаты.
Возможные значения:
- Y — да
- N — нет
LAST_MESSAGE_DATE
datetime
необязательный
Дата последнего элемента предыдущей выборки в формате ATOM (ISO-8601)
UNREAD_ONLY
string
необязательный
Возвращать только диалоги с непрочитанными сообщениями.
Возможные значения:
- Y — да
- N — нет
PARSE_TEXT
string
необязательный
Парсить текст последнего сообщения.
Возможные значения:
- Y — да
- N — нет
GET_ORIGINAL_TEXT
string
необязательный
Вернуть оригинальный текст сообщения без преобразований.
Возможные значения:
- Y — да
- N — нет
SKIP_UNDISTRIBUTED_OPENLINES
string
необязательный
Пропускать нераспределенные чаты открытых линий.
Возможные значения:
- Y — да
- N — нет
ONLY_COPILOT
string
необязательный
Возвращать только чаты BitrixGPT.
Возможные значения:
- Y — да
- N — нет
ONLY_CHANNEL
string
необязательный
Возвращать только каналы.
Возможные значения:
- Y — да
- N — нет
CAN_MANAGE_MESSAGES
string
необязательный
Возвращать только чаты с правом управления сообщениями.
Возможные значения:
- Y — да
- N — нет
OFFSET
integer
необязательный
Смещение для постраничной выборки. По умолчанию: 0
LIMIT
integer
необязательный
Количество элементов на страницу. По умолчанию: 50. Максимальное значение: 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
// 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
// Shape of the payload returned in result (match the "response handling" section of the page)
type RecentListResult = {
items: Array<{
id: string | number
chat_id: number
type: string
title: string
counter: number
pinned: boolean
unread: boolean
has_reminder: boolean
date_update: ISODate
date_last_activity: ISODate
}>
hasMorePages: boolean
hasMore: boolean
copilot: object | null
messagesAutoDeleteConfigs: object[]
}
try {
const response = await $b24.actions.v2.call.make<RecentListResult>({
method: 'im.recent.list',
params: {
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,
},
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('Loaded dialogs:', result.items.length, 'hasMore:', result.hasMore)
}
} 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 fetchRecentList() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'im.recent.list',
params: {
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,
},
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('Loaded dialogs:', result.items.length, 'hasMore:', result.hasMore)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', fetchRecentList)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.im.recent.list(
last_message_date="2026-02-25T18:30:00+03:00",
skip_openlines=False,
skip_dialog=False,
skip_chat=False,
unread_only=True,
parse_text=True,
get_original_text=False,
skip_undistributed_openlines=True,
only_copilot=False,
only_channel=False,
can_manage_messages=True,
offset=0,
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.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>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "im.recent.list", b24.Params{
"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,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("im.recent.list: %w", err)
}
// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)
Ответ
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
object
Корневой объект результата (подробное описание)
total
integer
Общее количество элементов. В текущей реализации обычно -1
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 401
{
"error": "INVALID_CREDENTIALS",
"error_description": "Invalid request credentials"
}

