Для AI-агентов: markdown этой страницы — /docs-content/openlines/operators.md индекс документации — /llms.txt
Операторы в реальном времени
Метод выходит в обновлении
imopenlines 26.700.0и доступен пока не на всех порталах Битрикс24. Если обновление на ваш портал ещё не пришло, API вернёт422 METHOD_NOT_YET_AVAILABLE— это признак того, что метод на портале ещё не выпущен, а не ошибка интеграции.
GET /v1/openlines/operators
Список операторов линии с текущим статусом и нагрузкой — для панелей мониторинга контакт-центра в реальном времени.
Данные приходят почти в реальном времени: статус и счётчик активных сессий читаются раздельно, без единой транзакции. Для панели мониторинга опрашивайте метод не чаще одного раза в 30 секунд.
Поля запроса (query)
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
ПараметрconfigId |
Типnumber | Обяз.нет | ОписаниеИдентификатор линии. Источник: GET /v1/openline-configs |
ПараметрconfigIdList |
Типnumber[] | Обяз.нет | ОписаниеСписок линий. Форма — configIdList=3,5 или configIdList[]=3&configIdList[]=5 |
ПараметрuserId |
Типnumber | Обяз.нет | ОписаниеИдентификатор оператора. Источник: GET /v1/users |
ПараметрuserIdList |
Типnumber[] | Обяз.нет | ОписаниеСписок операторов, те же две формы |
Параметрstatus |
Типstring | Обяз.нет | ОписаниеСтатус: online, offline или pause |
ПараметрhasFreeSlots |
Типboolean | Обяз.нет | ОписаниеТолько операторы, у которых есть свободные места под чаты. Принимает true/false и Y/N |
Параметрlimit |
Типnumber | Обяз.нет | ОписаниеРазмер страницы, 1..200 (по умолчанию 50) |
Параметрoffset |
Типnumber | Обяз.нет | ОписаниеСмещение для пагинации (по умолчанию 0) |
Списочные параметры принимают либо строку через запятую (configIdList=3,5), либо повторяющуюся скобочную форму (configIdList[]=3&configIdList[]=5). Повторение параметра без скобок (configIdList=3&configIdList=5) не поддерживается.
Общий параметр filter этим эндпоинтом не применяется. По умолчанию API сохраняет прежний ответ HTTP 200 и прежние данные, добавляет заголовок Warning: 299 - "filter is not supported on this endpoint and was ignored", а сервер фиксирует использование неподдерживаемого фильтра в журнале.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/openlines/operators?configId=3&status=online" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/openlines/operators?configId=3&status=online" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/operators?configId=3&status=online', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/openlines/operators?configId=3&status=online', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Поля ответа
Ответ — { "success": true, "data": { "operators": [...], "hasNextPage": bool } }.
| Ключ | Описание |
|---|---|
Ключoperators |
ОписаниеМассив операторов |
Ключoperators[].userId |
ОписаниеИдентификатор пользователя-оператора |
Ключoperators[].configId |
ОписаниеИдентификатор линии |
Ключoperators[].status |
ОписаниеСтатус: online / offline / pause |
Ключoperators[].activeSessions |
ОписаниеКоличество активных (незакрытых) сессий прямо сейчас |
Ключoperators[].maxChat |
ОписаниеЛимит чатов оператора (из настроек линии) |
Ключoperators[].freeSlots |
ОписаниеЧисло свободных мест под чаты (maxChat − activeSessions) |
Ключoperators[].lastActivityDate |
ОписаниеДата последней активности оператора в линии |
КлючhasNextPage |
ОписаниеЕсть ли следующая страница |
Пример ответа
{
"success": true,
"data": {
"operators": [
{ "userId": 42, "configId": 3, "status": "online", "activeSessions": 2, "maxChat": 5, "freeSlots": 3, "lastActivityDate": "2026-06-15T15:01:00+03:00" },
{ "userId": 51, "configId": 3, "status": "pause", "activeSessions": 0, "maxChat": 5, "freeSlots": 5, "lastActivityDate": "2026-06-15T14:20:00+03:00" }
],
"hasNextPage": false
}
}
Пример ответа при ошибке
422 — недопустимое значение status (значение передаётся в Битрикс24, и он отклоняет фильтр):
{
"success": false,
"error": { "code": "BITRIX_ERROR", "message": "Недопустимое значение фильтра", "b24Code": "INVALID_FILTER" }
}
Ошибки
| HTTP | Код | Когда |
|---|---|---|
| HTTP200 | КодWarning: 299 |
КогдаФильтр игнорируется по умолчанию; прежние данные сохраняются, предупреждение передаётся заголовком Warning. |
| HTTP400 только при включённом строгом режиме | КодUNSUPPORTED_FILTER |
КогдаСерверный режим выключен по умолчанию; до его включения эндпоинт сохраняет HTTP 200 и прежние данные. |
| HTTP403 | КодB24_TARIFF_RESTRICTION |
КогдаТариф не включает статистику Открытых линий (report_open_lines) |
| HTTP400 | КодINVALID_PARAMS |
КогдаНечисловое значение в limit/offset или элементе списка |
| HTTP422 | КодBITRIX_ERROR (error.b24Code: INVALID_FILTER) |
КогдаНедопустимое значение status |
| HTTP422 | КодBITRIX_ERROR (error.b24Code: OFFSET_TOO_LARGE) |
Когдаoffset превышает максимум при фильтре status/hasFreeSlots — сузьте фильтры |
| HTTP422 | КодMETHOD_NOT_YET_AVAILABLE |
КогдаОбновление imopenlines 26.700.0 ещё не пришло на портал. Ответ содержит поле error.release со значением imopenlines 26.700.0 |
Полный список системных кодов — Ошибки API.