landing.demos.register
Зарегистрировать шаблон в мастере создания сайта
Описание
Метод landing.demos.register регистрирует пользовательский шаблон в мастере создания сайта и страниц.
Метод обновляет шаблон, если он уже существует с этим же кодом для текущего приложения. Если не существует — создает новый.
Параметры
data
object
необязательный
Данные шаблона.
Обычно передается результат метода landing.site.fullExport.
Метод принимает как экспорт сайта с items, так и массив отдельных элементов шаблона подробнее
params
object
необязательный
Дополнительные параметры регистрации подробнее
Тип data
charset
string
необязательный
Кодировка экспортируемого шаблона
code
string
необязательный
Внешний код шаблона
site_code
string
необязательный
Код сайта (путь)
name
string
необязательный
Название шаблона
description
string
необязательный
Описание шаблона
type
string
необязательный
Тип шаблона.
Возможные значения:
- page — шаблоны для страниц
- store — шаблоны для магазинов
- knowledge — шаблоны для баз знаний
- group — шаблоны для групп
- mainpage — шаблоны для главных страниц
tpl_type
string
необязательный
Тип использования шаблона в мастере.
Возможные значения:
- S — шаблон сайта
- P — шаблон страницы
fields
object
необязательный
Поля сайта из экспорта подробнее
folders
array
необязательный
Папки из экспорта подробнее
items
object
необязательный
Карта страниц шаблона в формате { "код_страницы": items } подробнее
layout
array
необязательный
Данные layout из экспорта подробнее
preview
string
необязательный
Ссылка на preview 1x
preview2x
string
необязательный
Ссылка на preview 2x
preview3x
string
необязательный
Ссылка на preview 3x
preview_url
string
необязательный
Ссылка на предпросмотр
show_in_list
string
необязательный
Признак показа в списке (Y/N)
syspages
array
необязательный
Системные страницы из экспорта подробнее
version
integer
необязательный
Версия формата экспорта
Тип элемента data.items
old_id
string
необязательный
Исходный идентификатор страницы
code
string
необязательный
Внешний код страницы
name
string
необязательный
Название страницы
description
string
необязательный
Описание страницы
type
string
необязательный
Тип страницы.
Возможные значения:
- page — шаблоны для страниц
- store — шаблоны для магазинов
- knowledge — шаблоны для баз знаний
- group — шаблоны для групп
- mainpage — шаблоны для главных страниц
tpl_type
string
необязательный
Тип использования шаблона в мастере.
Возможные значения:
- S — шаблон сайта
- P — шаблон страницы
version
integer
необязательный
Версия формата страницы
fields
object
необязательный
Поля страницы из экспорта подробнее.
Коды fields.ADDITIONAL_FIELDS смотрите в разделе Дополнительные поля страницы
layout
array
необязательный
Layout страницы из экспорта подробнее
items
object
необязательный
Блоки страницы подробнее
preview
string
необязательный
Ссылка на preview 1x
preview2x
string
необязательный
Ссылка на preview 2x
preview3x
string
необязательный
Ссылка на preview 3x
preview_url
string
необязательный
Ссылка на предпросмотр
show_in_list
string
необязательный
Признак показа в списке (Y/N)
code
string
необязательный
Код блока
access
string
необязательный
Уровень доступа к блоку
anchor
string
необязательный
Якорь блока
old_id
integer
необязательный
Исходный идентификатор блока
cards
object
необязательный
Карточки блока
nodes
object
необязательный
Узлы блока
style
object
необязательный
Стили блока
attrs
object
необязательный
Атрибуты блока
Параметр params
site_template_id
string
необязательный
Идентификатор шаблона сайта главного модуля.
Используется в коробочных версиях
lang
object
необязательный
Локализация основных фраз шаблона.
Подробности в статье Локализация шаблона
lang_original
string
необязательный
Код исходного языка для массива lang
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"data": {
"charset": "UTF-8",
"code": "ftmlt",
"site_code": "/ftmlt/",
"name": "Бизнес",
"description": null,
"type": "page",
"fields": {
"TITLE": "Бизнес",
"LANDING_ID_INDEX": "0",
"LANDING_ID_404": "0",
"ADDITIONAL_FIELDS": {}
},
"folders": [],
"items": {
"ftmlt": {
"old_id": "16",
"code": "ftmlt",
"name": "Бизнес",
"description": null,
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"type": "page",
"version": 3,
"fields": {
"TITLE": "Бизнес"
},
"layout": [],
"items": {}
}
},
"layout": [],
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"syspages": [],
"version": 3
}
}' \
"https://**put.your-domain-here**/rest/**user_id**/**webhook_code**/landing.demos.register.json"
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"data": {
"charset": "UTF-8",
"code": "ftmlt",
"site_code": "/ftmlt/",
"name": "Бизнес",
"description": null,
"type": "page",
"fields": {
"TITLE": "Бизнес",
"LANDING_ID_INDEX": "0",
"LANDING_ID_404": "0",
"ADDITIONAL_FIELDS": {}
},
"folders": [],
"items": {
"ftmlt": {
"old_id": "16",
"code": "ftmlt",
"name": "Бизнес",
"description": null,
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"type": "page",
"version": 3,
"fields": {
"TITLE": "Бизнес"
},
"layout": [],
"items": {}
}
},
"layout": [],
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"syspages": [],
"version": 3
},
"auth": "**put_access_token_here**"
}' \
"https://**put.your-domain-here**/rest/landing.demos.register.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.demos.register',
params: {
data: {
charset: 'UTF-8',
code: 'ftmlt',
site_code: '/ftmlt/',
name: 'Business',
description: null,
type: 'page',
fields: {
TITLE: 'Business',
LANDING_ID_INDEX: '0',
LANDING_ID_404: '0',
ADDITIONAL_FIELDS: {},
},
folders: [],
items: {
ftmlt: {
old_id: '16',
code: 'ftmlt',
name: 'Business',
description: null,
preview: '',
preview2x: '',
preview3x: '',
preview_url: '',
show_in_list: 'Y',
type: 'page',
version: 3,
fields: {
TITLE: 'Business',
},
layout: [],
items: {},
},
},
layout: [],
preview: '',
preview2x: '',
preview3x: '',
preview_url: '',
show_in_list: 'Y',
syspages: [],
version: 3,
},
},
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('Registered template IDs:', 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 registerDemo() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'landing.demos.register',
params: {
data: {
charset: 'UTF-8',
code: 'ftmlt',
site_code: '/ftmlt/',
name: 'Business',
description: null,
type: 'page',
fields: {
TITLE: 'Business',
LANDING_ID_INDEX: '0',
LANDING_ID_404: '0',
ADDITIONAL_FIELDS: {},
},
folders: [],
items: {
ftmlt: {
old_id: '16',
code: 'ftmlt',
name: 'Business',
description: null,
preview: '',
preview2x: '',
preview3x: '',
preview_url: '',
show_in_list: 'Y',
type: 'page',
version: 3,
fields: {
TITLE: 'Business',
},
layout: [],
items: {},
},
},
layout: [],
preview: '',
preview2x: '',
preview3x: '',
preview_url: '',
show_in_list: 'Y',
syspages: [],
version: 3,
},
},
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('Registered template IDs:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', registerDemo)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.landing.demos.register(
data={
"charset": "UTF-8",
"code": "ftmlt",
"site_code": "/ftmlt/",
"name": "Business",
"description": None,
"type": "page",
"fields": {
"TITLE": "Business",
"LANDING_ID_INDEX": "0",
"LANDING_ID_404": "0",
"ADDITIONAL_FIELDS": {},
},
"folders": [],
"items": {
"ftmlt": {
"old_id": "16",
"code": "ftmlt",
"name": "Business",
"description": None,
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"type": "page",
"version": 3,
"fields": {
"TITLE": "Business",
},
"layout": [],
"items": {},
},
},
"layout": [],
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"syspages": [],
"version": 3,
},
).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 {
$data = [
'charset' => 'UTF-8',
'code' => 'ftmlt',
'site_code' => '/ftmlt/',
'name' => 'Бизнес',
'description' => null,
'type' => 'page',
'fields' => [
'TITLE' => 'Бизнес',
'LANDING_ID_INDEX' => '0',
'LANDING_ID_404' => '0',
'ADDITIONAL_FIELDS' => [],
],
'folders' => [],
'items' => [
'ftmlt' => [
'old_id' => '16',
'code' => 'ftmlt',
'name' => 'Бизнес',
'description' => null,
'preview' => '',
'preview2x' => '',
'preview3x' => '',
'preview_url' => '',
'show_in_list' => 'Y',
'type' => 'page',
'version' => 3,
'fields' => [
'TITLE' => 'Бизнес',
],
'layout' => [],
'items' => [],
],
],
'layout' => [],
'preview' => '',
'preview2x' => '',
'preview3x' => '',
'preview_url' => '',
'show_in_list' => 'Y',
'syspages' => [],
'version' => 3,
];
$response = $b24Service
->core
->call(
'landing.demos.register',
[
'data' => $data,
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error registering demo: ' . $e->getMessage();
}
BX24.callMethod(
'landing.demos.register',
{
data: {
charset: 'UTF-8',
code: 'ftmlt',
site_code: '/ftmlt/',
name: 'Бизнес',
description: null,
type: 'page',
fields: {
TITLE: 'Бизнес',
LANDING_ID_INDEX: '0',
LANDING_ID_404: '0',
ADDITIONAL_FIELDS: {}
},
folders: [],
items: {
ftmlt: {
old_id: '16',
code: 'ftmlt',
name: 'Бизнес',
description: null,
preview: '',
preview2x: '',
preview3x: '',
preview_url: '',
show_in_list: 'Y',
type: 'page',
version: 3,
fields: {
TITLE: 'Бизнес'
},
layout: [],
items: {}
}
},
layout: [],
preview: '',
preview2x: '',
preview3x: '',
preview_url: '',
show_in_list: 'Y',
syspages: [],
version: 3
}
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.info(result.data());
}
}
);
require_once('crest.php');
$data = [
'charset' => 'UTF-8',
'code' => 'ftmlt',
'site_code' => '/ftmlt/',
'name' => 'Бизнес',
'description' => null,
'type' => 'page',
'fields' => [
'TITLE' => 'Бизнес',
'LANDING_ID_INDEX' => '0',
'LANDING_ID_404' => '0',
'ADDITIONAL_FIELDS' => [],
],
'folders' => [],
'items' => [
'ftmlt' => [
'old_id' => '16',
'code' => 'ftmlt',
'name' => 'Бизнес',
'description' => null,
'preview' => '',
'preview2x' => '',
'preview3x' => '',
'preview_url' => '',
'show_in_list' => 'Y',
'type' => 'page',
'version' => 3,
'fields' => [
'TITLE' => 'Бизнес',
],
'layout' => [],
'items' => [],
],
],
'layout' => [],
'preview' => '',
'preview2x' => '',
'preview3x' => '',
'preview_url' => '',
'show_in_list' => 'Y',
'syspages' => [],
'version' => 3,
];
$result = CRest::call(
'landing.demos.register',
[
'data' => $data,
]
);
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.demos.register", b24.Params{
"data": b24.Params{
"charset": "UTF-8",
"code": "ftmlt",
"site_code": "/ftmlt/",
"name": "Бизнес",
"description": nil,
"type": "page",
"fields": b24.Params{
"TITLE": "Бизнес",
"LANDING_ID_INDEX": "0",
"LANDING_ID_404": "0",
"ADDITIONAL_FIELDS": b24.Params{},
},
"folders": []any{},
"items": b24.Params{
"ftmlt": b24.Params{
"old_id": "16",
"code": "ftmlt",
"name": "Бизнес",
"description": nil,
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"type": "page",
"version": 3,
"fields": b24.Params{
"TITLE": "Бизнес",
},
"layout": []any{},
"items": b24.Params{},
},
},
"layout": []any{},
"preview": "",
"preview2x": "",
"preview3x": "",
"preview_url": "",
"show_in_list": "Y",
"syspages": []any{},
"version": 3,
},
})
if err != nil {
return fmt.Errorf("landing.demos.register: %w", err)
}
var items []b24.ID
if err := json.Unmarshal(res.Result, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("получено:", len(items))
Ответ
HTTP-статус: 200
{
"result": [5, 7],
"time": {
"start": 1774611129,
"finish": 1774611129.843163,
"duration": 0.843163013458252,
"processing": 0,
"date_start": "2026-03-27T14:32:09+03:00",
"date_finish": "2026-03-27T14:32:09+03:00",
"operating_reset_at": 1774611729,
"operating": 0
}
}
Возвращаемые данные
result
integer[]
Массив идентификаторов шаблонов, которые были созданы или обновлены
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "ERROR_ARGUMENT",
"error_description": "The value of an argument 'data' has an invalid type",
"argument": "data"
}
| Код | Описание | Значение |
|---|---|---|
ERROR_ARGUMENT |
The value of an argument 'data' has an invalid type | Параметр data передан в неверном типе |
REGISTER_ERROR_DATA |
Данные пусты или некорректны | Параметр data пустой или невалидный |
CONTENT_IS_BAD |
Содержимое определено как небезопасное. Определить небезопасные части можно через метод landing.repo.checkcontent |
В переданном шаблоне найден небезопасный контент |
BX_EMPTY_REQUIRED |
Не заполнено обязательное поле "Внешний код" | В data не заполнен code (внешний код) у шаблона/элемента |
ACCESS_DENIED |
Access denied! |
Недостаточно прав для вызова метода |

