Получить сокращенный список последних чатов im.recent.get

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: im

Кто может выполнять метод: любой пользователь

Метод im.recent.get получает список последних чатов пользователя.

Параметры метода

Название
тип

Описание

SKIP_OPENLINES
string

Пропустить чаты открытых линий.

Возможные значения:

  • Y — да
  • N — нет

SKIP_CHAT
string

Пропустить групповые чаты.

Возможные значения:

  • Y — да
  • N — нет

SKIP_DIALOG
string

Пропустить диалоги один-на-один.

Возможные значения:

  • Y — да
  • N — нет

LAST_UPDATE
datetime

Сделать выборку с указанной даты в формате ATOM (ISO-8601)

ONLY_OPENLINES
string

Выбрать только чаты открытых линий.

Возможные значения:

  • Y — да
  • N — нет

LAST_SYNC_DATE
datetime

Дата предыдущей выборки в формате ATOM (ISO-8601) для загрузки изменений, которые произошли в списке с указанной даты.

Выборка возвращает данные не старше 7 дней

Примеры кода

Как использовать примеры в документации

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"SKIP_OPENLINES":"Y","LAST_UPDATE":"2026-02-25T18:30:00+01:00"}' \
  https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/im.recent.get
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"SKIP_OPENLINES":"Y","LAST_UPDATE":"2026-02-25T18:30:00+01:00","auth":"**put_access_token_here**"}' \
  https://**put_your_bitrix24_address**/rest/im.recent.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

// Shape of each item returned in result[]
type ImRecentItem = {
  id: string
  chat_id: number
  type: string
  title: string
  counter: number
  last_id: number
  pinned: boolean
  unread: boolean
  has_reminder: boolean
  date_update: ISODate
  date_last_activity: ISODate
  avatar: {
    url: string
    color: string
  }
  message: {
    id: number
    text: string
    file: boolean
    author_id: number
    attach: boolean
    sticker: number | null
    date: ISODate
    status: string
    uuid: string | null
  }
  chat: Record<string, unknown>
  user: { id: number }
  options: unknown[]
}

try {
  const response = await $b24.actions.v2.call.make<ImRecentItem[]>({
    method: 'im.recent.get',
    params: {
      SKIP_OPENLINES: 'Y',
      LAST_UPDATE: '2026-02-25T18:30:00+01:00',
    },
    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('Recent chats count:', result.length, 'First chat title:', result[0]?.title)
  }
} 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 getRecentChats() {
    try {
      // Initialize the SDK inside a Bitrix24 frame
      const $b24 = await B24Js.initializeB24Frame()

      const response = await $b24.actions.v2.call.make({
        method: 'im.recent.get',
        params: {
          SKIP_OPENLINES: 'Y',
          LAST_UPDATE: '2026-02-25T18:30:00+01:00',
        },
        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('Recent chats count:', result.length, 'First chat title:', result[0]?.title)
    } catch (error) {
      // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
      console.error(error)
    }
  }

  document.addEventListener('DOMContentLoaded', getRecentChats)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.im.recent.get(
        skip_openlines=True,
        last_update="2026-02-25T18:30:00+01:00",
    ).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.get',
            [
                'SKIP_OPENLINES' => 'Y',
                'LAST_UPDATE' => '2026-02-25T18:30:00+01:00',
            ]
        );

    $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.get',
    {
        SKIP_OPENLINES: 'Y',
        LAST_UPDATE: '2026-02-25T18:30:00+01:00'
    },
    function(result)
    {
        if (result.error())
        {
            console.error(result.error());
        }
        else
        {
            console.log(result.data());
        }
    }
);
require_once('crest.php');

$result = CRest::call(
    'im.recent.get',
    [
        'SKIP_OPENLINES' => 'Y',
        'LAST_UPDATE' => '2026-02-25T18:30:00+01:00',
    ]
);

echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "im.recent.get", b24.Params{
	"SKIP_OPENLINES": "Y",
	"LAST_UPDATE":    "2026-02-25T18:30:00+01:00",
}, b24.WithIdempotent())
if err != nil {
	return fmt.Errorf("im.recent.get: %w", err)
}

var items []struct {
	ID      string `json:"id"`
	ChatID  int    `json:"chat_id"`
	Type    string `json:"type"`
	Title   string `json:"title"`
	Counter int    `json:"counter"`
	LastID  int    `json:"last_id"`
}
if err := json.Unmarshal(res.Result, &items); err != nil {
	return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
	fmt.Println(it.ID, it.ChatID)
}

Обработка ответа

HTTP-статус: 200

{
    "result": [
        {
            "id": "chat1451",
            "chat_id": 1451,
            "type": "chat",
            "avatar": {
                "url": "",
                "color": "#df532d"
            },
            "title": "Максимально полный шаблон задачи",
            "message": {
                "id": 84501,
                "text": "Иван Иванов создал задачу [Вложение]",
                "file": false,
                "author_id": 0,
                "attach": true,
                "sticker": null,
                "date": "2026-02-26T00:01:26+03:00",
                "status": "received",
                "uuid": null
            },
            "counter": 0,
            "last_id": 84501,
            "pinned": false,
            "unread": false,
            "has_reminder": false,
            "date_update": "2026-02-26T00:01:26+03:00",
            "date_last_activity": "2026-02-26T00:01:26+03:00",
            "chat": {
                "id": 1451,
                "parent_chat_id": 0,
                "parent_message_id": 0,
                "name": "Максимально полный шаблон задачи",
                "owner": 503,
                "extranet": false,
                "contains_collaber": false,
                "avatar": "",
                "color": "#df532d",
                "type": "tasksTask",
                "entity_type": "TASKS_TASK",
                "entity_id": "8293",
                "entity_data_1": "",
                "entity_data_2": "",
                "entity_data_3": "",
                "mute_list": [],
                "manager_list": [
                    503
                ],
                "date_create": "2026-02-26T00:01:26+03:00",
                "message_type": "X",
                "user_counter": 4,
                "restrictions": {
                    "avatar": true,
                    "rename": true,
                    "extend": true,
                    "call": true,
                    "mute": true,
                    "leave": true,
                    "leave_owner": true,
                    "send": true,
                    "user_list": true
                },
                "role": "OWNER",
                "text_field_enabled": true,
                "background_id": null,
                "entity_link": {
                    "type": "TASKS",
                    "url": "/company/personal/user/503/tasks/task/view/8293/?ta_sec=chat_tasks&ta_el=view_button",
                    "id": "8293"
                },
                "permissions": {
                    "manage_users_add": "member",
                    "manage_users_delete": "manager",
                    "manage_ui": "member",
                    "manage_settings": "owner",
                    "manage_messages": "member",
                    "can_post": "member"
                },
                "public": ""
            },
            "user": {
                "id": 0
            },
            "options": []
        },
        {
            "id": "chat1449",
            "chat_id": 1449,
            "type": "chat",
            "avatar": {
                "url": "",
                "color": "#ab7761"
            },
            "title": "Максимально полный шаблон задачи",
            "message": {
                "id": 84499,
                "text": "Иван Иванов создал задачу [Вложение]",
                "file": false,
                "author_id": 0,
                "attach": true,
                "sticker": null,
                "date": "2026-02-26T00:01:25+03:00",
                "status": "received",
                "uuid": null
            },
            "counter": 0,
            "last_id": 84499,
            "pinned": false,
            "unread": false,
            "has_reminder": false,
            "date_update": "2026-02-26T00:01:25+03:00",
            "date_last_activity": "2026-02-26T00:01:25+03:00",
            "chat": {
                "id": 1449,
                "parent_chat_id": 0,
                "parent_message_id": 0,
                "name": "Максимально полный шаблон задачи",
                "owner": 503,
                "extranet": false,
                "contains_collaber": false,
                "avatar": "",
                "color": "#ab7761",
                "type": "tasksTask",
                "entity_type": "TASKS_TASK",
                "entity_id": "8291",
                "entity_data_1": "",
                "entity_data_2": "",
                "entity_data_3": "",
                "mute_list": [],
                "manager_list": [
                    503
                ],
                "date_create": "2026-02-26T00:01:25+03:00",
                "message_type": "X",
                "user_counter": 4,
                "restrictions": {
                    "avatar": true,
                    "rename": true,
                    "extend": true,
                    "call": true,
                    "mute": true,
                    "leave": true,
                    "leave_owner": true,
                    "send": true,
                    "user_list": true
                },
                "role": "OWNER",
                "text_field_enabled": true,
                "background_id": null,
                "entity_link": {
                    "type": "TASKS",
                    "url": "/company/personal/user/503/tasks/task/view/8291/?ta_sec=chat_tasks&ta_el=view_button",
                    "id": "8291"
                },
                "permissions": {
                    "manage_users_add": "member",
                    "manage_users_delete": "manager",
                    "manage_ui": "member",
                    "manage_settings": "owner",
                    "manage_messages": "member",
                    "can_post": "member"
                },
                "public": ""
            },
            "user": {
                "id": 0
            },
            "options": []
        }
    ],
    "time": {
        "start": 1772086038,
        "finish": 1772086038.652287,
        "duration": 0.6522870063781738,
        "processing": 0,
        "date_start": "2026-02-26T09:07:18+03:00",
        "date_finish": "2026-02-26T09:07:18+03:00",
        "operating_reset_at": 1772086638,
        "operating": 0
    }
}

Возвращаемые данные

Название
тип

Описание

result
array

Список последних диалогов (подробное описание)

time
time

Информация о времени выполнения запроса

Объект result-item

Название
тип

Описание

id
string

Идентификатор диалога: число для пользователя, chatXXX для чата

type
string

Тип записи: user для пользователя, chat для чата

avatar
object

Объект описания аватара записи (подробное описание)

title
string

Заголовок записи: имя и фамилия для пользователя, название чата для чата

message
object

Объект описания последнего сообщения (подробное описание)

counter
integer

Счетчик непрочитанных сообщений

chat_id
integer

Идентификатор чата

last_id
integer

Идентификатор последнего прочитанного сообщения

pinned
boolean

Признак закрепленного диалога

unread
boolean

Признак ручной отметки «не прочитано»

has_reminder
boolean

Признак установленного напоминания

date_update
datetime

Дата обновления записи в списке recent в формате ATOM

date_last_activity
datetime

Дата последней активности в диалоге в формате ATOM

user
object

Объект описания пользователя. Недоступен для записей типа chat. (подробное описание)

chat
object

Объект описания чата. Недоступен для записей типа user. (подробное описание)

options
array

Дополнительные параметры записи

Объект avatar

Название
тип

Описание

url
string

Ссылка на аватар. Если пусто, аватар не задан

color
string

Цвет диалога в формате HEX

Объект message

Название
тип

Описание

id
integer

Идентификатор сообщения

text
string

Текст сообщения без BB-кодов и переносов строк

file
boolean

Признак наличия файлов

attach
boolean

Признак наличия вложений

author_id
integer

Идентификатор автора сообщения

date
datetime

Дата сообщения в формате ATOM

sticker
integer

Идентификатор стикера. Если стикера нет, значение null

status
string

Статус доставки сообщения

uuid
string

Внешний идентификатор сообщения. Если не задан, значение null

Объект user

Название
тип

Описание

id
integer

Идентификатор пользователя

name
string

Имя и фамилия пользователя

first_name
string

Имя пользователя

last_name
string

Фамилия пользователя

work_position
string

Должность пользователя

color
string

Цвет пользователя в формате HEX

avatar
string

Ссылка на аватар. Если пусто, аватар не задан

gender
string

Пол пользователя

birthday
string

День рождения в формате DD-MM. Если пусто, не задан

extranet
boolean

Признак внешнего экстранет-пользователя

network
boolean

Признак пользователя Битрикс24.Network

bot
boolean

Признак бота

connector
boolean

Признак пользователя открытых линий

external_auth_id
string

Код внешней авторизации

status
string

Выбранный статус пользователя

idle
datetime

Дата, когда пользователь отошел от компьютера, в формате ATOM. Если не задано, false

last_activity_date
datetime

Дата последнего действия пользователя в формате ATOM

mobile_last_date
datetime

Дата последнего действия в мобильном приложении в формате ATOM. Если не задано, false

absent
datetime

Дата, по какое число у пользователя отпуск, в формате ATOM. Если не задано, false

Объект chat

Название
тип

Описание

id
integer

Идентификатор чата

title
string

Название чата

name
string

Название чата (поле из ответа)

owner
integer

Идентификатор владельца чата

extranet
boolean

Признак участия в чате внешнего экстранет-пользователя

parent_chat_id
integer

Идентификатор родительского чата

parent_message_id
integer

Идентификатор родительского сообщения

contains_collaber
boolean

Признак участия коллаб-пользователей

color
string

Цвет чата в формате HEX

avatar
string

Ссылка на аватар. Если пусто, аватар не задан

type
string

Тип чата: групповой, для звонка, открытой линии и так далее

entity_type
string

Внешний код для чата: тип

entity_id
string

Внешний код для чата: идентификатор

entity_data_1
string

Внешние данные для чата

entity_data_2
string

Внешние данные для чата

entity_data_3
string

Внешние данные для чата

date_create
datetime

Дата создания чата в формате ATOM

message_type
string

Тип сообщений чата

mute_list
array

Список пользователей, отключивших уведомления

manager_list
array

Список идентификаторов менеджеров чата

user_counter
integer

Количество участников чата

restrictions
object

Ограничения действий в чате (подробное описание)

role
string

Роль текущего пользователя в чате

text_field_enabled
boolean

Доступность поля ввода сообщений

background_id
integer

Идентификатор фона чата. Если не задан, значение null

entity_link
object

Ссылка на связанный объект (подробное описание)

permissions
object

Права действий в чате (подробное описание)

public
string

Признак публичности чата

Объект restrictions

Название
тип

Описание

avatar
boolean

Доступность изменения аватара

rename
boolean

Доступность изменения названия

extend
boolean

Доступность расширения чата

call
boolean

Доступность звонков

mute
boolean

Доступность отключения уведомлений

leave
boolean

Доступность выхода из чата

leave_owner
boolean

Доступность выхода владельца из чата

send
boolean

Доступность отправки сообщений

user_list
boolean

Доступность просмотра списка участников

Название
тип

Описание

type
string

Тип связанного объекта

url
string

Ссылка на связанный объект

id
string

Идентификатор связанного объекта

Объект permissions

Название
тип

Описание

manage_users_add
string

Право на добавление участников

manage_users_delete
string

Право на удаление участников

manage_ui
string

Право на управление интерфейсом чата

manage_settings
string

Право на управление настройками чата

manage_messages
string

Право на управление сообщениями

can_post
string

Право на отправку сообщений

Обработка ошибок

HTTP-статус: 401

{
    "error": "INVALID_CREDENTIALS",
    "error_description": "Invalid request credentials"
}

У метода нет собственных кодов ошибок — возможны только системные ошибки REST API.

Название
тип

Описание

error
string

Строковый код ошибки. Состоит из цифр, латинских букв и знака подчеркивания. Может прийти пустым — тогда причину показывает только error_description

error_description
string

Текст ошибки для разработчика. Не показывайте его конечному пользователю без обработки

Статусы и коды системных ошибок

HTTP-статус: 4xx, 5xx

Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит

401

NO_AUTH_FOUND
Wrong authorization data

В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука

401

INVALID_REQUEST
Https required

Методы вызываются только по протоколу HTTPS

401

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24

401

ACCESS_DENIED
REST is available only on commercial plans

REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом

404

ERROR_METHOD_NOT_FOUND
Method not found!

Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа

401

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на provided by the access token

401

expired_token
The access token provided has expired

Срок действия access-токена истек

401

user_access_error
The user does not have access to the application

Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям

403

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение