Добавить страницу или папку landing.landing.add

Scope: landing

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

Метод landing.landing.add добавляет страницу или папку в указанный сайт и возвращает идентификатор созданного объекта. Новый объект создается неактивным (ACTIVE = N).

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

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

Название
тип

Описание

fields*
object

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

Параметр fields

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

Название
тип

Описание

TITLE*
string

Название страницы

SITE_ID*
integer

Идентификатор сайта, в котором создается страница.

Идентификатор сайта можно получить методом landing.site.getList или из результата метода landing.site.add

CODE
string

Символьный код страницы. Он не должен содержать символ / и не должен быть в формате <символы>_<число>_<число>, например code_12_34.

Если поле не передать или передать строку только из пробелов, код сгенерируется из TITLE. Если после транслитерации код окажется пустым, будет сгенерирована строка из 12 символов.

Пустую строку '' без параметра FOLDER передавать нельзя — метод вернет ошибку. Если параметр FOLDER передан с любым значением, пустая строка допускается, и код сгенерируется из TITLE.

Если после создания такой код уже используется в пределах сайта или папки, к нему добавится суффикс вида _<4 случайных символа>

DESCRIPTION
string

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

XML_ID
string

Внешний идентификатор страницы

SITEMAP
string

Флаг включения страницы в карту сайта. Поддерживаются Y и N, по умолчанию N

FOLDER
string

Используется, если вместо страницы нужно создать папку. Поддерживаются Y и N, по умолчанию N

FOLDER_ID
integer

Идентификатор папки, в которой нужно создать страницу. Папка должна принадлежать тому же сайту, что и SITE_ID.

Идентификатор папки можно получить методом landing.site.getFolders

TPL_ID
integer

Идентификатор шаблона представления страницы.

Идентификатор шаблона представления можно получить методом landing.template.getlist

ADDITIONAL_FIELDS
object

Дополнительные поля страницы. Доступные коды и значения описаны в статье Дополнительные поля страницы

BLOCK_ID
integer

Вместе с MENU_CODE используется, чтобы после создания страницы добавить ссылку в меню блока с указанным идентификатором

MENU_CODE
string

Вместе с BLOCK_ID указывает код меню в блоке, куда нужно добавить ссылку на созданную страницу

Примеры кода

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

curl -X POST \
          -H "Content-Type: application/json" \
          -d '{
            "fields": {
              "TITLE": "Весенняя акция",
              "SITE_ID": 292,
              "CODE": "spring-sale",
              "DESCRIPTION": "Страница для сезонной акции",
              "ADDITIONAL_FIELDS": {
                "THEME_CODE": "wedding"
              }
            }
          }' \
          "https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.landing.add.json"
        
curl -X POST \
          -H "Content-Type: application/json" \
          -d '{
            "fields": {
              "TITLE": "Весенняя акция",
              "SITE_ID": 292,
              "CODE": "spring-sale",
              "DESCRIPTION": "Страница для сезонной акции",
              "ADDITIONAL_FIELDS": {
                "THEME_CODE": "wedding"
              }
            },
            "auth": "**put_access_token_here**"
          }' \
          "https://**put.your-domain-here**/rest/landing.landing.add.json"
        
try
        {
        	const response = await $b24.callMethod(
        		'landing.landing.add',
        		{
        			fields: {
        				TITLE: 'Весенняя акция',
        				SITE_ID: 292,
        				CODE: 'spring-sale',
        				DESCRIPTION: 'Страница для сезонной акции',
        				ADDITIONAL_FIELDS: {
        					THEME_CODE: 'wedding'
        				}
        			}
        		}
        	);
        
        	const result = response.getData().result;
        	console.info(result);
        }
        catch (error)
        {
        	console.error(error);
        }
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'landing.landing.add',
                    [
                        'fields' => [
                            'TITLE' => 'Весенняя акция',
                            'SITE_ID' => 292,
                            'CODE' => 'spring-sale',
                            'DESCRIPTION' => 'Страница для сезонной акции',
                            'ADDITIONAL_FIELDS' => [
                                'THEME_CODE' => 'wedding',
                            ],
                        ],
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            echo 'Success: ' . var_export($result, true);
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error adding landing page: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'landing.landing.add',
            {
                fields: {
                    TITLE: 'Весенняя акция',
                    SITE_ID: 292,
                    CODE: 'spring-sale',
                    DESCRIPTION: 'Страница для сезонной акции',
                    ADDITIONAL_FIELDS: {
                        THEME_CODE: 'wedding'
                    }
                }
            },
            function(result)
            {
                if (result.error())
                {
                    console.error(result.error());
                }
                else
                {
                    console.info(result.data());
                }
            }
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'landing.landing.add',
            [
                'fields' => [
                    'TITLE' => 'Весенняя акция',
                    'SITE_ID' => 292,
                    'CODE' => 'spring-sale',
                    'DESCRIPTION' => 'Страница для сезонной акции',
                    'ADDITIONAL_FIELDS' => [
                        'THEME_CODE' => 'wedding',
                    ],
                ],
            ]
        );
        
        if (isset($result['error']))
        {
            echo 'Ошибка: ' . $result['error_description'];
        }
        else
        {
            echo '<pre>';
            print_r($result['result']);
            echo '</pre>';
        }
        

Важно

Если нужно, чтобы новая страница сразу попала в меню блока, передайте в fields оба служебных параметра: BLOCK_ID и MENU_CODE

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

HTTP-статус: 200

{
            "result": 2227,
            "time": {
                "start": 1773694924,
                "finish": 1773694924.307754,
                "duration": 0.3077540397644043,
                "processing": 0,
                "date_start": "2026-03-17T00:02:04+03:00",
                "date_finish": "2026-03-17T00:02:04+03:00",
                "operating_reset_at": 1773695524,
                "operating": 0
            }
        }
        

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

Название
тип

Описание

result
integer

Идентификатор созданной страницы или папки

time
time

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

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

HTTP-статус: 400

{
            "error": "SLASH_IS_NOT_ALLOWED",
            "error_description": "Слеш запрещен в адресе лендинга."
        }
        

Название
тип

Описание

error
string

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

error_description
error_description

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

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

Код

Описание

MISSING_PARAMS

Не передан обязательный верхнеуровневый параметр fields

ACCESS_DENIED

Доступ на создание страницы запрещен: у пользователя нет права «редактирование» для указанного сайта

SITE_NOT_FOUND

Сайт не найден: в fields.SITE_ID передан несуществующий идентификатор сайта

FOLDER_NOT_FOUND

Папка не найдена: в fields.FOLDER_ID передана папка, которая не относится к указанному сайту или не существует

SLASH_IS_NOT_ALLOWED

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

CANT_BE_EMPTY

Адрес страницы не может быть пустым: в fields.CODE передана пустая строка ''

WRONG_CODE_FORMAT

Недопустимый адрес страницы: в fields.CODE передано значение в формате <символы>_<число>_<число>, например code_12_34

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

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

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

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