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 метода.
Связанные справочники
- Типы мест: workplaces.workplace.type.list
- Типы отмены: workplaces.reservation.cancelType.list
- Контекст пользователя: workplaces.currentUser
- Схема API: workplaces.schema
- Пакетный вызов: workplaces.batch
Подробнее о модуле: документация модуля.