Добавить сайт landing.site.add

Scope: landing

Кто может выполнять метод: пользователь с правом «создание» сайтов

Метод landing.site.add создает новый сайт и возвращает идентификатор созданного сайта.

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

scope
string

Внутренний скоуп лендингов. Он не связан с REST-скоупом landing в названии метода.
Для GROUP, KNOWLEDGE и MAINPAGE значение scope должно совпадать со значением fields.TYPE (подробное описание)

fields*
object

Набор полей нового сайта (подробное описание)

Параметр fields

Обязательные параметры отмечены *

Название
тип

Описание

TITLE*
string

Название сайта, длина до 255 символов

CODE*
string

Символьный код сайта. Если передать пустую строку, код сгенерируется из поля TITLE. Для кода, который состоит только из цифр, автоматически добавится префикс site.

Если такое значение уже есть в домене, к нему добавится числовой суффикс, например code2 или code3

TYPE
string

Тип сайта. По умолчанию PAGE. Поддерживаются PAGE, STORE, SMN, KNOWLEDGE, GROUP, MAINPAGE.

Значение должно соответствовать параметру scope (подробное описание)

DOMAIN_ID
integer | string

Домен сайта. Значение зависит от платформы.

Для Битрикс24 укажите доменное имя сайта. Если параметр не заполнить или передать пустую строку, домен будет сгенерирован автоматически по системному шаблону.

Для 1С-Битрикс: Управление сайтом нужно передать идентификатор уже существующего домена. Доменное имя в виде строки не поддерживается, метод вернет ошибку

DESCRIPTION
string

Описание сайта, до 255 символов

XML_ID
string

Внешний идентификатор, до 255 символов

ADDITIONAL_FIELDS
object

Дополнительные поля сайта, сохраняются отдельно после создания

Соответствие TYPE и scope

Типы сайтов и правила выбора параметра scope описаны в статье Работа с типами сайтов и скоупами.

fields.TYPE

scope в запросе

Когда использовать

PAGE, STORE, SMN

не передавать

Сайт или магазин, когда параметр scope не передается

GROUP

GROUP

Сайт группы

KNOWLEDGE

KNOWLEDGE

База знаний

MAINPAGE

MAINPAGE

Главная страница

Примеры кода

Как использовать примеры в документации

curl -X POST \
          -H "Content-Type: application/json" \
          -d '{
            "scope": "KNOWLEDGE",
            "fields": {
              "TITLE": "База знаний компании",
              "CODE": "",
              "TYPE": "KNOWLEDGE",
              "DESCRIPTION": "Сайт базы знаний"
            }
          }' \
          "https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.site.add.json"
        
curl -X POST \
          -H "Content-Type: application/json" \
          -d '{
            "scope": "KNOWLEDGE",
            "fields": {
              "TITLE": "База знаний компании",
              "CODE": "",
              "TYPE": "KNOWLEDGE",
              "DESCRIPTION": "Сайт базы знаний"
            },
            "auth": "**put_access_token_here**"
          }' \
          "https://**put.your-domain-here**/rest/landing.site.add.json"
        
try
        {
        	const response = await $b24.callMethod(
        		'landing.site.add',
        		{
                    scope: 'KNOWLEDGE',
        			fields: {
        				TITLE: 'База знаний компании',
        				CODE: '',
        				TYPE: 'KNOWLEDGE',
        				DESCRIPTION: 'Сайт базы знаний'
        			}
        		}
        	);
        
        	const result = response.getData().result;
        	console.info(result);
        }
        catch (error)
        {
        	console.error(error);
        }
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'landing.site.add',
                    [
                        'scope' => 'KNOWLEDGE',
                        'fields' => [
                            'TITLE' => 'База знаний компании',
                            'CODE' => '',
                            'TYPE' => 'KNOWLEDGE',
                            'DESCRIPTION' => 'Сайт базы знаний',
                        ],
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            echo 'Success: ' . print_r($result, true);
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error adding site: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'landing.site.add',
            {
                scope: 'KNOWLEDGE',
                fields: {
                    TITLE: 'База знаний компании',
                    CODE: '',
                    TYPE: 'KNOWLEDGE',
                    DESCRIPTION: 'Сайт базы знаний'
                }
            },
            function(result)
            {
                if (result.error())
                {
                    console.error(result.error());
                }
                else
                {
                    console.info(result.data());
                }
            }
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'landing.site.add',
            [
                'scope' => 'KNOWLEDGE',
                'fields' => [
                    'TITLE' => 'База знаний компании',
                    'CODE' => '',
                    'TYPE' => 'KNOWLEDGE',
                    'DESCRIPTION' => 'Сайт базы знаний',
                ],
            ]
        );
        
        if (isset($result['error']))
        {
            echo 'Ошибка: ' . $result['error_description'];
        }
        else
        {
            echo '<pre>';
            print_r($result['result']);
            echo '</pre>';
        }
        

Обработка ответа

HTTP-статус: 200

{
            "result": 159,
            "time": {
                "start": 1773161828,
                "finish": 1773161828.444154,
                "duration": 0.4441540241241455,
                "processing": 0,
                "date_start": "2026-03-10T19:57:08+03:00",
                "date_finish": "2026-03-10T19:57:08+03:00",
                "operating_reset_at": 1773162428,
                "operating": 0.14034819602966309
            }
        }
        

Возвращаемые данные

Название
тип

Описание

result
integer

Идентификатор созданного сайта

time
time

Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 400

{
            "error": "DOMAIN_IS_INCORRECT",
            "error_description": "Адрес сайта введен неверно. Вы можете использовать только следующие символы: \"a-z\", \"0-9\", \"-\", \".\"."
        }
        

Название
тип

Описание

error
string

Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания

error_description
error_description

Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде

Возможные коды ошибок

Код

Описание

ACCESS_DENIED

Доступ на создание сайта запрещен: недостаточно прав на создание сайта или передан недоступный для текущего скоупа TYPE

SITE_LIMIT_REACHED

Достигнут лимит количества сайтов: тариф или лицензия не позволяют создать еще один сайт

DOMAIN_NOT_FOUND

Домен не существует

DOMAIN_IS_INCORRECT

Адрес сайта введен неверно: передан некорректный формат доменного имени

DOMAIN_EXIST_TRASH

Домен уже привязан к сайту в корзине: сначала отвяжите домен от сайта в корзине

DOMAIN_DISABLE

Нельзя использовать слово bitrix в домене: ограничение для доменов в Битрикс24

DOMAIN_EXIST

Такой домен уже существует: домен уже занят

SLASH_IS_NOT_ALLOWED

Слеш запрещен в адресе сайта: в fields.CODE передан символ /

CONTROLLER_ERROR_BADRESPONSE

Неопознанный ответ сервиса регистраций: ошибка внешнего сервиса регистрации домена

CONTROLLER_ERROR_BADLICENSE

Лицензия истекла или ключ некорректен

CONTROLLER_ERROR_<ERROR_CODE>

Ошибка внешнего сервиса регистрации домена: код ошибки зависит от ответа контроллера регистрации доменов

Статусы и коды системных ошибок

HTTP-статус: 20x, 40x, 50x

Описанные ниже ошибки могут возникнуть при вызове любого метода

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

405

ERROR_BATCH_METHOD_NOT_ALLOWED
Method is not allowed for batch usage

Текущий метод не разрешен для вызова с помощью batch

400

ERROR_BATCH_LENGTH_EXCEEDED
Max batch length exceeded

Превышена максимальная длина параметров, переданных в метод batch

401

NO_AUTH_FOUND
Wrong authorization data

Неверный access-токен или код вебхука

400

INVALID_REQUEST
Https required

Для вызовов методов требуется использовать протокол HTTPS

503

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24

403

ACCESS_DENIED
REST API is available only on commercial plans

REST API доступен только на коммерческих планах

403

INVALID_CREDENTIALS
Invalid request credentials

У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав

404

ERROR_MANIFEST_IS_NOT_AVAILABLE
Manifest is not available

Манифест недоступен

403

insufficient_scope
The request requires higher privileges than provided by the webhook token

Запрос требует более высоких привилегий, чем предоставляет токен вебхука

401

expired_token
The access token provided has expired

Предоставленный access-токен доступа истек

403

user_access_error
The user does not have access to the application

Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям

500

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение