#Создать сайт

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. Если оставить пустым или не передать — генерируется из title. Если код состоит только из цифр, добавляется префикс site. Если код уже занят на домене — добавляется числовой суффикс (code2, code3)
domainId number нет Идентификатор домена. Если не передавать — адрес сгенерируется автоматически
active boolean нет Активен ли сайт. По умолчанию true
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 Активен ли сайт
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": true,
    "domainId": 28,
    "createdById": 1,
    "dateCreate": "2026-05-07T12:14:08.000Z",
    "dateModify": "2026-05-07T12:14:08.000Z"
  }
}

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

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

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

#Ошибки

HTTP error.code Маркер в error.message Описание
400 BITRIX_ERROR SLASH_IS_NOT_ALLOWED В code передан символ / — слеши в коде запрещены
400 BITRIX_ERROR DOMAIN_IS_INCORRECT Адрес сайта введён неверно: разрешены только символы a-z, 0-9, -, .
400 BITRIX_ERROR DOMAIN_EXIST Указанный домен уже занят другим сайтом
400 BITRIX_ERROR DOMAIN_EXIST_TRASH Домен привязан к сайту в корзине — сначала отвяжите его
400 BITRIX_ERROR DOMAIN_NOT_FOUND Домен с указанным domainId не существует
400 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. В запросе слеши передавать нельзя.

Адрес по умолчанию. Если domainId не передавать, для сайта будет сгенерирован адрес на bitrix24site.ru (например, b24-xxxxx.bitrix24site.ru).

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

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

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