Для AI-агентов: markdown этой страницы — /docs-content/chats/members/active.md индекс документации — /llms.txt
Активные участники
GET /v1/chats/:dialogId/users/active
Возвращает участников чата карточками пользователей, одной страницей и с выбранной сортировкой. Самые активные собеседники — sort=lastSendMessageId&order=desc. Весь состав постранично отдаёт список участников в режиме v2.
Параметры
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
dialogId (path) |
string | да | — | Идентификатор диалога: chatXXX для группового чата, ID пользователя для личного диалога с ним или алиас me для личного диалога с собой |
limit (query) |
number | нет | 50 | Сколько участников вернуть, от 1 до 200. Значение вне диапазона срезается, эхо — meta.requestedLimit и meta.appliedLimit |
sort (query) |
string | нет | — | Ключ сортировки: id — запись участия, lastSendMessageId — последнее сообщение участника, userId — ID пользователя. Без sort порядок определяет Битрикс24 |
order (query) |
string | нет | desc |
Направление sort: desc или asc, регистр не важен. Только вместе с sort |
Другие параметры и повторы отклоняются с 400 INVALID_PARAMS.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/chats/chat42/users/active?sort=lastSendMessageId&order=desc&limit=10" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/chats/chat42/users/active?sort=lastSendMessageId&order=desc&limit=10" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/chat42/users/active?sort=lastSendMessageId&order=desc&limit=10', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log('Активные:', data.map((u) => u.name))
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/chat42/users/active?sort=lastSendMessageId&order=desc&limit=10', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
console.log('Активные:', data.map((u) => u.name))
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
array | Карточки участников — те же поля, что в списке участников |
data[].id |
number | ID пользователя |
data[].active |
boolean | Активен ли аккаунт |
data[].name |
string | Полное имя |
data[].firstName |
string | Имя |
data[].lastName |
string | Фамилия |
data[].workPosition |
string|null | Должность |
data[].color |
string | Цвет аватара |
data[].avatar |
string | URL аватара. Пустая строка, если аватар не задан |
data[].gender |
string | Пол: M — мужской, F — женский, пустая строка — не указан |
data[].birthday |
string | Дата рождения. Пустая строка, если не указана |
data[].extranet |
boolean | Внешний пользователь, тип extranet |
data[].network |
boolean | Пользователь Битрикс24.Network |
data[].connector |
boolean | Пользователь открытых линий Контакт-центра |
data[].idle |
boolean | Неактивен |
data[].absent |
boolean | string | false или дата окончания отсутствия |
data[].departments |
number[] | ID отделов пользователя. Список: GET /v1/departments |
data[].status |
string | Статус (online, away, dnd) |
data[].lastActivityDate |
string | Дата последней активности (ISO 8601) |
data[].bot |
boolean | Бот |
data[].type |
string | Тип пользователя (user, bot, extranet) |
meta.requestedLimit |
number | Переданный limit, когда он вышел за диапазон от 1 до 200 |
meta.appliedLimit |
number | Применённое значение limit — только если он был приведён к границе |
Пример ответа
{
"success": true,
"data": [
{
"id": 7,
"active": true,
"name": "Мария Сидорова",
"firstName": "Мария",
"lastName": "Сидорова",
"workPosition": "Аналитик",
"color": "#83c3f7",
"avatar": "",
"gender": "F",
"birthday": "",
"extranet": false,
"network": false,
"bot": false,
"connector": false,
"status": "away",
"idle": false,
"lastActivityDate": "2026-09-20T10:00:00+03:00",
"absent": false,
"departments": [1],
"type": "user"
}
]
}
Пример ответа при ошибке
400 — order без sort:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "`order` sets the direction of `sort` and is accepted only together with it."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PARAMS |
Параметр вне limit, sort, order, повтор параметра, нечисловой limit, sort или order вне списка, order без sort. Проверяется до обращения к Битрикс24 |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа im |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ только для чтения, а чат не подтверждён: передан не chatN, и личный диалог не найден в списке последних диалогов того же сотрудника — до 20 страниц и 4000 строк, — либо алиас создаёт диалог. Отказ приходит до обращения к Битрикс24 |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ только для чтения, и это не личный ключ сотрудника: ключ приложения с сессией пользователя, менеджмент-ключ или ключ с неподтверждённым владельцем |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов Битрикс24 |
| 404 | ENTITY_NOT_FOUND |
Битрикс24 вернул «не найдено»; код портала — в error.b24Code |
| 422 | BITRIX_ERROR |
Битрикс24 вернул ошибку; код портала — в error.b24Code. Отсутствующий чат приходит сюда с кодом CHAT_NOT_FOUND |
| 502 | ME_ALIAS_RESOLUTION_FAILED |
Не удалось определить пользователя при использовании алиаса me |
Полный список общих ошибок API — Ошибки.
Известные особенности
Чтение может сделать вас участником. Если чат разрешает автовступление, Битрикс24 может добавить текущего пользователя в участники. Ключу READONLY это чтение разрешено по узкому исключению; оно не отмечает сообщения прочитанными. Права пользователя в Битрикс24 и скоуп im сохраняются.