Создать сайт

POST /v1/sites

Создаёт новый сайт на портале. Тип сайта определяется полем type. Поля передаются плоско в корне JSON — без обёртки fields.

Поля запроса (body)

Параметр Тип Обяз. Описание
title string да Название сайта, до 255 символов
type string нет Тип сайта. По умолчанию PAGE — лендинг. Также STORE — интернет-магазин, KNOWLEDGE — база знаний 2.0. Для KNOWLEDGE обязательно передайте также scope: "KNOWLEDGE" — см. ниже
scope string нет Раздел Битрикс24, в котором создаётся сайт: KNOWLEDGE (база знаний 2.0), GROUP (база знаний группы) или MAINPAGE. Без него создаётся обычный сайт-лендинг. Чтобы создать базу знаний, передайте scope: "KNOWLEDGE" вместе с type: "KNOWLEDGE" — иначе сервер вернёт 403 BITRIX_ACCESS_DENIED («Доступ на создание сайта запрещён»). Можно передать как поле тела или query-параметром ?scope=KNOWLEDGE. То же значение scope нужно при обновлении и удалении такого сайта
code string да Символьный код сайта в URL. Ключ обязателен, но значение может быть пустым ("") или null — тогда код генерируется из title. Если опустить сам ключ code, создание возвращает 422 (см. «Адрес сайта обязателен» в «Известных особенностях»). Если код только из цифр — добавляется префикс site. Если код уже занят на домене — числовой суффикс (code2, code3)
domainId number нет Идентификатор домена. Если не передавать, адрес формируется из code на bitrix24site.ru
active boolean нет Принимается без ошибки, но не сохраняется. Новый сайт всегда создаётся неактивным — active: false. Сайт активируется при публикации в интерфейсе портала Битрикс24
description string нет Описание сайта, до 255 символов
xmlId string нет Внешний идентификатор, до 255 символов

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/sites" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Лендинг конференции",
    "code": "conf-2026",
    "type": "PAGE"
  }'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/sites" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Лендинг конференции",
    "code": "conf-2026",
    "type": "PAGE"
  }'

curl — база знаний 2.0 (`scope=KNOWLEDGE`)

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/sites" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "База знаний компании",
    "type": "KNOWLEDGE",
    "scope": "KNOWLEDGE"
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/sites', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Лендинг конференции',
    code: 'conf-2026',
    type: 'PAGE',
  }),
})

const { success, data } = await res.json()
console.log('Site ID:', data.id)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/sites', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Лендинг конференции',
    code: 'conf-2026',
    type: 'PAGE',
  }),
})

const { success, data } = await res.json()

Поля ответа

Возвращается полный объект созданного сайта.

Поле Тип Описание
id number Идентификатор созданного сайта
title string Название сайта
code string Фактический символьный код (с авто-суффиксом, если код запроса был занят)
type string Тип сайта
active boolean Всегда false для только что созданного сайта
domainId number Идентификатор домена (выданного автоматически или переданного)
createdById number Идентификатор создавшего пользователя
dateCreate datetime Дата создания
dateModify datetime Дата последнего изменения

URL сайта в Битрикс24 строится из id:

https://<portal>.bitrix24.ru/sites/site/<id>/

<portal> — домен портала. Доступ ограничен правами сотрудника в Битрикс24.

Пример ответа

JSON
{
  "success": true,
  "data": {
    "id": 173,
    "title": "Лендинг конференции",
    "code": "/conf-2026/",
    "type": "PAGE",
    "active": false,
    "domainId": 28,
    "createdById": 1,
    "dateCreate": "07.05.2026 12:14:08",
    "dateModify": "07.05.2026 12:14:08"
  }
}

Пример ответа при ошибке

422 — некорректный код сайта:

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

Ошибки

HTTP error.code Маркер в error.message Описание
422 BITRIX_ERROR Не заполнено обязательное поле "Адрес сайта" Опущен ключ code — у сайта нет адреса. Передайте code с любым значением, можно пустым
422 BITRIX_ERROR SLASH_IS_NOT_ALLOWED В code передан символ / — слеши в коде запрещены
422 BITRIX_ERROR DOMAIN_IS_INCORRECT Адрес сайта введён неверно: разрешены только символы a-z, 0-9, -, .
422 BITRIX_ERROR DOMAIN_EXIST Указанный домен уже занят другим сайтом
422 BITRIX_ERROR DOMAIN_EXIST_TRASH Домен привязан к сайту в корзине — сначала отвяжите его
422 BITRIX_ERROR DOMAIN_NOT_FOUND Домен с указанным domainId не существует
422 BITRIX_ERROR SITE_LIMIT_REACHED Достигнут лимит количества сайтов на текущем тарифе
403 BITRIX_ACCESS_DENIED Доступ на создание сайта запрещён У пользователя нет права на создание сайтов — ИЛИ создаётся type: "KNOWLEDGE" без scope: "KNOWLEDGE" (добавьте scope, см. таблицу полей)
403 SCOPE_DENIED API-ключ не имеет скоупа landing
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

Полный список общих ошибок API — Ошибки.

Известные особенности

Слеши в ответе. Поле code в ответе возвращается с обрамляющими слешами (/conf-2026/) — это представление пути сайта в URL. В запросе слеши передавать нельзя.

Ключ code обязателен. Значение code может быть пустой строкой "" или null — тогда код генерируется из title. Но если опустить сам ключ code, создание возвращает 422 BITRIX_ERROR с сообщением Не заполнено обязательное поле "Адрес сайта". Если domainId не передан, адрес формируется из code на bitrix24site.ru, например b24-xxxxx.bitrix24site.ru.

Главная страница и страницы ошибок. Поля landingIdIndex, landingId404, landingId503 при создании не задаются — страниц ещё нет. Назначьте их через обновление после создания страниц сайта.

База знаний 2.0. Создаётся как сайт с type: "KNOWLEDGE" И scope: "KNOWLEDGE" — оба поля обязательны. Без scope сервер вернёт 403 BITRIX_ACCESS_DENIED, потому что Битрикс24 создаёт сайты типа KNOWLEDGE только в разделе баз знаний (тот же scope доступен для списка, чтения, обновления и удаления — см. соответствующие методы). Достаточно скоупа landing у ключа. Отдельного скоупа для баз знаний не требуется.

Смотрите также