# REST API модуля «Брендирование Битрикс24»
Справочник REST-методов модуля ithive.changeportaldefaultheme для интеграций, входящих вебхуков и AI-агентов.
Базовый URL
https://{портал}/rest/{user_id}/{webhook_code}/{method}.json
Пример:
https://portal.company.ru/rest/1/xxxxxxxx/changeportaldefaultheme.theme.get.json
Scope и аутентификация
- Scope:
changeportaldefaultheme - Аутентификация: входящий вебхук Bitrix24 или OAuth/сессия авторизованного пользователя
- Все методы
changeportaldefaultheme.*требуют авторизованного пользователя REST. Без авторизации — ошибкаUNAUTHORIZED. Дополнительно методы записи проверяют право записи на модуль для указанного сайта (иначеACCESS_DENIED).
Авторизация ≠ право на операцию: наличие вебхука само по себе не даёт права менять тему, CSS, изображения и выполнять экспорт/импорт.
Права доступа
Права задаются стандартной матрицей прав Bitrix на модуль ithive.changeportaldefaultheme для конкретного сайта ($APPLICATION->GetGroupRight(..., $siteId)). Проверка в коде — UserHelper::canConfigureBranding($siteId) (право записи на модуль).
| Группа методов | Кто может (как в коде) |
|---|---|
Чтение (theme.get, css.get, mode.list, version.list) |
Любой авторизованный |
Запись (theme.update/reset, css.update, image.upload, export.download, import.apply) |
Право записи на модуль для siteId |
Всплывающее окно (popup.status, popup.markViewed) |
Любой авторизованный (флаг текущего пользователя) |
В шапках отдельных методов формулировка «Кто может вызывать» даёт краткий итог по коду; детали — в этом разделе.
Параметр siteId
| Параметр | Обяз. | Описание |
|---|---|---|
siteId |
нет | ID сайта портала. По умолчанию — сайт по умолчанию (CSite::GetDefSite()). Если сайт не найден — SITE_NOT_FOUND. |
Все операции применяются только к разрешённому siteId.
Формат ответа
Внутренний конверт модуля (в result обёртки Bitrix REST):
| Поле | Описание |
|---|---|
result |
Данные или null при ошибке |
total |
Количество записей (для list-методов; во входящем вебхуке часто на верхнем уровне Bitrix REST, рядом с result) |
next |
Смещение следующей страницы; поле не возвращается, если следующей страницы нет |
error |
null или { code, message, details } |
Пустые группы опций темы (auth, noauth, …) в JSON приходят как массив []; непустые — как объект. Ключ files появляется только после загрузки изображений.
Семантика записи
| Метод | Поведение |
|---|---|
theme.update |
Частичное обновление: меняются только переданные группы/ключи и флаги |
css.update |
Полная замена содержимого dopstyles_{SITE_ID}.css |
import.apply |
Замена настроек из архива; при isThemeSample=true группы auth*/noauth* — из архива, остальное из текущих настроек сайта |
Пагинация
Для list-методов (mode.list, version.list). Параметр filter не поддерживается.
| Параметр | По умолчанию | Описание |
|---|---|---|
limit |
50 | Размер страницы, максимум 500 |
offset |
0 | Смещение |
fetchAll |
false | Вернуть все записи одним ответом. Защитный лимит (по умолчанию 5000); при превышении — FETCH_ALL_LIMIT_EXCEEDED |
Пакетные вызовы
Отдельного метода changeportaldefaultheme.batch нет. Несколько changeportaldefaultheme.* за один HTTP-запрос — штатный batch Битрикс24 (/rest/{user_id}/{webhook_code}/batch.json).
Разделы справочника
| Раздел | Описание |
|---|---|
| Настройки темы | theme.* |
| Изображения | image.* |
| Дополнительный CSS | css.* |
| Экспорт / импорт | export., import. |
| Всплывающее окно Zephir | popup.* |
| Справочники | mode., version. |
| Коды ошибок | Полный перечень |
Всего методов в текущем коде: 12.