landing.landing.addByTemplate
Добавить страницу по шаблону
Описание
Метод landing.landing.addByTemplate создает страницу в указанном сайте по коду шаблона и возвращает идентификатор созданной страницы. Новая страница создается неактивной (ACTIVE = N).
Если нужно полностью управлять полями создаваемой страницы, используйте landing.landing.add.
Параметры
scope
string
необязательный
Внутренний скоуп лендингов. Он не связан с REST-скоупом landing в названии метода.
Значение scope должно соответствовать типу сайта (подробное описание)
siteId
integer
обязательный
Идентификатор сайта, в котором нужно создать страницу.
Идентификатор сайта можно получить методом landing.site.getList или из результата метода landing.site.add
code
string
обязательный
Код шаблона страницы.
Список доступных шаблонов можно получить методом landing.demos.getPageList. Код зависит от шаблонов, доступных в Битрикс24. Например, значение может выглядеть как krayt.monotovar@KraytPetShop
fields
object
необязательный
Дополнительные параметры создания страницы (подробное описание)
Параметр fields
TITLE
string
необязательный
Переопределяет заголовок создаваемой страницы и SEO-заголовки шаблона.
Если не передавать, будут использованы значения из шаблона
DESCRIPTION
string
необязательный
Переопределяет SEO-описания шаблона.
Значение записывается в дополнительные поля METAOG_DESCRIPTION и METAMAIN_DESCRIPTION, но не в поле DESCRIPTION самой страницы
ID
integer
необязательный
Идентификатор существующей страницы или папки в том же сайте.
Если передать папку, новая страница создастся в ней. Если передать страницу из папки, новая страница создастся в той же папке. Для элемента без папки метод возьмет значение из fields.FOLDER_ID, если этот параметр указан.
Если передан активный элемент, новая страница после создания опубликуется автоматически. Если ID указывает на папку или на элемент с заполненным FOLDER_ID, параметр fields.FOLDER_ID не учитывается.
Идентификатор страницы можно получить методом landing.landing.getList, идентификатор папки — методом landing.site.getFolders
FOLDER_ID
integer
необязательный
Идентификатор папки, в которой нужно создать страницу. Папка должна относиться к тому же сайту, что и siteId, иначе метод вернет ошибку.
Идентификатор папки можно получить методом landing.site.getFolders.
Параметр используется, если папка создания не определилась по fields.ID
SITE_TYPE
string
необязательный
Тип шаблонов, из которого создается страница. Используются типы сайтов из статьи Работа с типами сайтов и скоупами.
Если не передавать, берется тип сайта. Для сайтов типов STORE и SMN по умолчанию используется значение PAGE
PREPARE_BLOCKS
boolean
необязательный
Включает подготовку блоков шаблона при создании страницы.
Работает только вместе с PREPARE_BLOCKS_DATA. Передавайте именно boolean true
PREPARE_BLOCKS_DATA
object
необязательный
Дополнительные данные для подготовки блоков шаблона при создании страницы.
В PREPARE_BLOCKS_DATA сначала укажите код блока из шаблона страницы, а внутри - параметры для этого блока (подробное описание)
ADD_IN_MENU
string
необязательный
Флаг добавления созданной страницы в меню сайта. Поддерживаются Y и N.
Логика срабатывает только при значении Y, если страница еще не добавляется в меню через BLOCK_ID и MENU_CODE, и если передан TITLE
BLOCK_ID
integer
необязательный
Вместе с MENU_CODE добавляет ссылку на созданную страницу в меню блока с указанным идентификатором
MENU_CODE
string
необязательный
Вместе с BLOCK_ID указывает код меню внутри блока, куда нужно добавить ссылку на созданную страницу
Параметр PREPARE_BLOCKS_DATA
ACTION
string
необязательный
Что нужно сделать с блоком. Поддерживается значение changeComponentParams
PARAMS
object
необязательный
Параметры компонента, которые нужно подставить в блок при создании страницы.
Замена применяется только к параметрам, которые в шаблоне блока заданы пустой строкой
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"siteId": 157,
"code": "krayt.monotovar@KraytPetShop",
"fields": {
"TITLE": "Весенняя акция",
"DESCRIPTION": "SEO-описание страницы акции",
"FOLDER_ID": 95
}
}' \
"https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.landing.addByTemplate.json"
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"siteId": 157,
"code": "krayt.monotovar@KraytPetShop",
"fields": {
"TITLE": "Весенняя акция",
"DESCRIPTION": "SEO-описание страницы акции",
"FOLDER_ID": 95
},
"auth": "**put_access_token_here**"
}' \
"https://**put.your-domain-here**/rest/landing.landing.addByTemplate.json"
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<number>({
method: 'landing.landing.addByTemplate',
params: {
siteId: 157,
code: 'krayt.monotovar@KraytPetShop',
fields: {
TITLE: 'Spring sale',
DESCRIPTION: 'SEO page description',
FOLDER_ID: 95,
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Created page ID:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addLandingByTemplate() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'landing.landing.addByTemplate',
params: {
siteId: 157,
code: 'krayt.monotovar@KraytPetShop',
fields: {
TITLE: 'Spring sale',
DESCRIPTION: 'SEO page description',
FOLDER_ID: 95,
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Created page ID:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addLandingByTemplate)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.landing.landing.add_by_template(
site_id=157,
code="krayt.monotovar@KraytPetShop",
fields={
"TITLE": "Spring sale",
"DESCRIPTION": "SEO page description",
"FOLDER_ID": 95,
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'landing.landing.addByTemplate',
[
'siteId' => 157,
'code' => 'krayt.monotovar@KraytPetShop',
'fields' => [
'TITLE' => 'Весенняя акция',
'DESCRIPTION' => 'SEO-описание страницы акции',
'FOLDER_ID' => 95,
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . var_export($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding landing page by template: ' . $e->getMessage();
}
BX24.callMethod(
'landing.landing.addByTemplate',
{
siteId: 157,
code: 'krayt.monotovar@KraytPetShop',
fields: {
TITLE: 'Весенняя акция',
DESCRIPTION: 'SEO-описание страницы акции',
FOLDER_ID: 95
}
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.info(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'landing.landing.addByTemplate',
[
'siteId' => 157,
'code' => 'krayt.monotovar@KraytPetShop',
'fields' => [
'TITLE' => 'Весенняя акция',
'DESCRIPTION' => 'SEO-описание страницы акции',
'FOLDER_ID' => 95,
],
]
);
if (isset($result['error']))
{
echo 'Ошибка: ' . $result['error_description'];
}
else
{
echo '<pre>';
print_r($result['result']);
echo '</pre>';
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "landing.landing.addByTemplate", b24.Params{
"siteId": 157,
"code": "krayt.monotovar@KraytPetShop",
"fields": b24.Params{
"TITLE": "Весенняя акция",
"DESCRIPTION": "SEO-описание страницы акции",
"FOLDER_ID": 95,
},
})
if err != nil {
return fmt.Errorf("landing.landing.addByTemplate: %w", err)
}
var value b24.ID
if err := json.Unmarshal(res.Result, &value); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("результат:", value)
Ответ
HTTP-статус: 200
{
"result": 2229,
"time": {
"start": 1773700566,
"finish": 1773700567.67178,
"duration": 1.6717801094055176,
"processing": 1,
"date_start": "2026-03-17T01:36:06+03:00",
"date_finish": "2026-03-17T01:36:07+03:00",
"operating_reset_at": 1773701166,
"operating": 1.4516642093658447
}
}
Возвращаемые данные
result
integer
Идентификатор созданной страницы
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "SITE_ERROR",
"error_description": "Сайт не найден, или доступ к нему запрещен"
}
| Код | Описание | Значение |
|---|---|---|
MISSING_PARAMS |
Не переданы обязательные параметры вызова: в запросе отсутствует siteId, code или оба параметра |
|
SITE_ERROR |
Сайт не найден, или доступ к нему запрещен: в siteId передан несуществующий сайт или у пользователя нет доступа к нему |
|
LANDING_ERROR |
Страница или папка не найдена: в fields.ID передан идентификатор элемента, которого нет в указанном сайте |
|
ACCESS_DENIED |
Доступ на создание страницы запрещен: у пользователя нет права «редактирование» для указанного сайта | |
FOLDER_NOT_FOUND |
Папка не найдена: в fields.FOLDER_ID передана папка, которая не относится к указанному сайту или не существует |
|
WRONG_DATA |
Некорректные данные шаблона: для переданного code не удалось получить данные шаблона страницы |
|
SLASH_IS_NOT_ALLOWED |
Слеш запрещен в адресе лендинга: шаблон содержит недопустимый адрес создаваемой страницы | |
CANT_BE_EMPTY |
Адрес страницы не может быть пустым: шаблон содержит пустой адрес создаваемой страницы | |
WRONG_CODE_FORMAT |
Недопустимый адрес страницы: шаблон содержит адрес в формате <символы>_<число>_<число>, например code_12_34 |

