landing.site.add
Добавить сайт
Описание
Метод 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
необязательный
Домен сайта. Значение зависит от платформы.
Для Битрикс24 укажите доменное имя сайта. Если параметр не заполнить или передать пустую строку, домен будет сгенерирован автоматически по системному шаблону.
Для 1С-Битрикс: Управление сайтом нужно передать идентификатор уже существующего домена. Доменное имя в виде строки не поддерживается, метод вернет ошибку
DESCRIPTION
string
необязательный
Описание сайта, до 255 символов
XML_ID
string
необязательный
Внешний идентификатор, до 255 символов
ADDITIONAL_FIELDS
object
необязательный
Дополнительные поля сайта, сохраняются отдельно после создания
Соответствие TYPE и scope
fields.TYPE
необязательный
scope в запросе
PAGE, STORE, SMN
необязательный
не передавать
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"
// 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.site.add',
params: {
scope: 'KNOWLEDGE',
fields: {
TITLE: 'Company knowledge base',
CODE: '',
TYPE: 'KNOWLEDGE',
DESCRIPTION: 'Knowledge base site',
},
},
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 site 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 addSite() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'landing.site.add',
params: {
scope: 'KNOWLEDGE',
fields: {
TITLE: 'Company knowledge base',
CODE: '',
TYPE: 'KNOWLEDGE',
DESCRIPTION: 'Knowledge base site',
},
},
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 site ID:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addSite)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.landing.site.add(
scope="KNOWLEDGE",
fields={
"TITLE": "Company knowledge base",
"CODE": "",
"TYPE": "KNOWLEDGE",
"DESCRIPTION": "Knowledge base site",
},
).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.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>';
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "landing.site.add", b24.Params{
"scope": "KNOWLEDGE",
"fields": b24.Params{
"TITLE": "База знаний компании",
"CODE": "",
"TYPE": "KNOWLEDGE",
"DESCRIPTION": "Сайт базы знаний",
},
})
if err != nil {
return fmt.Errorf("landing.site.add: %w", err)
}
var newID b24.ID
if err := json.Unmarshal(res.Result, &newID); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("идентификатор:", newID)
Ответ
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\", \"-\", \".\"."
}
| Код | Описание | Значение |
|---|---|---|
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> |
Ошибка внешнего сервиса регистрации домена: код ошибки зависит от ответа контроллера регистрации доменов |

