REST API модуля «Карта офиса + бронирование рабочих мест»

Справочник REST-методов модуля ithive.workplaces для интеграций, входящих вебхуков и AI-агентов.

Базовый URL

https://{портал}/rest/{user_id}/{webhook_code}/{method}.json
        

Пример:

https://portal.company.ru/rest/1/xxxxxxxx/workplaces.reservation.list.json
        

Альтернатива (внутренний вызов из портала):

/bitrix/services/main/ajax.php?action=ithive.workplaces.{method}
        

Scope и аутентификация

  • Scope: workplaces
  • Аутентификация: входящий вебхук Bitrix24 или сессия авторизованного пользователя
  • Пользователь вебхука должен иметь права в модуле «Карта офиса»
  • Почти все методы требуют авторизации

Формат ответа

Внутренний конверт модуля (поле result обёртки Bitrix REST):

Поле Описание
result Данные или null при ошибке
total Количество записей для list-методов
next Смещение следующей страницы
error null или { code, message, details }

При ошибке аутентификации на уровне Bitrix REST (неверный webhook) может вернуться error / error_description без конверта модуля.

Коды ошибок

Полный справочник: Коды ошибок API (формат конверта, все коды, пример VALIDATION_ERROR без id).

Код Описание
UNAUTHORIZED Не авторизован
ACCESS_DENIED Нет прав / бронирование отключено
VALIDATION_ERROR Обязательный параметр не указан или некорректен (details.field)
INTERNAL_ERROR Внутренняя ошибка
INVALID_LIMIT limit вне диапазона 1..500
INVALID_OFFSET offset < 0
INVALID_FILTER Некорректный filter
INVALID_FILTER_OPERATOR Неизвестный оператор в filter
FETCH_ALL_LIMIT_EXCEEDED Слишком много записей при fetchAll

Доменные коды: WORKPLACE_NOT_FOUND, RESERVATION_NOT_FOUND, RESERVATION_CONFLICT, LIMIT_EXCEEDED, CITY_HAS_OFFICES, OFFICE_HAS_WORKPLACES, BATCH_NESTED_NOT_ALLOWED и др. — на страницах методов.

Пагинация (list-методы)

Параметр По умолчанию Описание
limit 50 Максимум 500
offset 0 Смещение
fetchAll false Все страницы; лимит из rest_fetch_all_max (по умолчанию 5000)

Фильтрация

Параметр filter — объект в стиле MongoDB:

  • Операторы: $eq, $ne, $gt, $gte, $lt, $lte, $in, $nin
  • В POST можно передать JSON в теле; в GET — JSON-строка в query или вложенные ключи filter[ПОЛЕ][$оператор]=значение
  • В GET между датой и временем в значении — пробел; в URL кодируется как %20 (например 01.06.2026%2000:00:00 = 01.06.2026 00:00:00, это не «время 2000»)

Для бронирований статусы pending / confirmed / cancelled — query-параметр status, не mongo-поле STATUS (оно мапится на UF_ACTIVE).

Подробно про DATE_FROM / DATE_TO в workplaces.reservation.list.

Формат дат (бронирования)

Контекст Формат Примечание
reservation.add / update, ярлыки dateRangeFrom, dateRangeTo Y-m-d H:i:s, Y-m-d H:i, d.m.Y H:i:s, d.m.Y H:i Разбирается сервером (DateTimeHelper)
Mongo filter в reservation.list (DATE_FROM, DATE_TO) Рекомендуется d.m.Y H:i:s Строка уходит в HL как есть; см. страницу метода
Поля dateFrom, dateTo в ответе API Y-m-d H:i:s Не обязательно совпадает с форматом в filter

Иерархия структуры офиса

Город (depth 1) → офис (2) → комната (3) → рабочие места (элементы инфоблока).

Разделы справочника

Раздел Описание
Структура офиса city, office, room — 18 методов
Рабочие места workplace, type — 7 методов
Бронирования reservation, inOffice — 11 методов
Настройки и доступ settings, access — 7 методов
Служебные / AI currentUser, schema, batch — 3 метода

Всего: 44 метода.

Связанные справочники

Подробнее о модуле: документация модуля.