# 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.