Для AI-агентов: markdown этой страницы — /docs-content/entities/pages/catalog.md индекс документации — /llms.txt
Каталог блоков
GET /v1/block-repository
Возвращает каталог блоков портала, сгруппированный по разделам, — отсюда берётся код блока для добавления на страницу. Каталог общий для всего портала и не зависит от сайта или страницы.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
section (query) |
string | нет | Код раздела каталога — ключ объекта data в ответе без параметра, например text или cover. С параметром в data приходит только этот раздел |
scope (query) |
string | нет | Область сайта: KNOWLEDGE — база знаний, GROUP — страницы рабочих групп, MAINPAGE — главные страницы. Для остальных сайтов параметр не передаётся |
Пагинация. Параметров limit и offset у метода нет: каталог или раздел приходит целиком за один вызов.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/block-repository?section=text" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/block-repository?section=text" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/block-repository?section=text', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { data: section } = await res.json()
// Ключ элемента в items — код блока для POST /v1/pages/:pageId/blocks
for (const [code, block] of Object.entries(section.items)) {
console.log(code, block.name)
}
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/block-repository?section=text', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data: section } = await res.json()
Поля ответа
Без параметра section объект data — словарь разделов: ключ — код раздела, значение — объект раздела. С параметром section в data сразу объект раздела, и пути ниже читаются без сегмента <раздел>.
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
object | Словарь разделов каталога или один раздел при section |
data.<раздел>.name |
string | Название раздела на языке портала. Может быть пустой строкой |
data.<раздел>.meta |
object | array | Служебные данные раздела: объект или, если данных нет, пустой массив []. У разделов приложений поля нет |
data.<раздел>.new |
boolean | Флаг нового раздела |
data.<раздел>.type |
array | null | Типы сайтов, к которым относится раздел, например ["page", "store", "smn"], либо null. У разделов приложений поля нет |
data.<раздел>.specialType |
string | null | Служебный тип раздела, на проверенном портале null. У разделов приложений поля нет |
data.<раздел>.separator |
boolean | Служебный флаг раздела, на проверенном портале false |
data.<раздел>.app_code |
string | boolean | Код приложения, которое добавило раздел, или false для встроенного раздела |
data.<раздел>.items |
object | array | Блоки раздела. Ключ — код блока, его передают в поле code при добавлении блока. У пустого раздела — пустой массив [] |
data.<раздел>.items.<код>.id |
null | Приходит null. Блок в каталоге идентифицируется ключом в items, а не этим полем |
data.<раздел>.items.<код>.name |
string | Название блока на языке портала |
data.<раздел>.items.<код>.description |
string | null | Описание блока. Бывает пустой строкой, у блоков приложений — null |
data.<раздел>.items.<код>.namespace |
string | Источник блока: bitrix для встроенных блоков, код приложения для блоков приложений |
data.<раздел>.items.<код>.section |
array | Коды всех разделов, в которые входит блок |
data.<раздел>.items.<код>.type |
array | Типы сайтов, к которым относится блок, например ["page", "store"]. Бывает пустым массивом |
data.<раздел>.items.<код>.preview |
string | URL картинки предпросмотра. У встроенных блоков адрес без схемы, начинается с // |
data.<раздел>.items.<код>.new |
boolean | Флаг нового блока |
data.<раздел>.items.<код>.restricted |
boolean | Флаг ограниченного блока. На проверенном портале true у блоков приложений |
data.<раздел>.items.<код>.repo_id |
string | boolean | Номер блока приложения строкой, у встроенных блоков — false. Ключ такого блока в items имеет вид repo_<номер> |
data.<раздел>.items.<код>.app_code |
string | boolean | Код приложения, которое добавило блок, или false |
data.<раздел>.items.<код>.requires_updates |
boolean | Служебный флаг блока, на проверенном портале false |
data.<раздел>.items.<код>.version |
string | null | Номер версии строкой, например 18.5.0, или null. Только у встроенных блоков |
data.<раздел>.items.<код>.system |
boolean | Служебный флаг блока. Только у встроенных блоков |
data.<раздел>.items.<код>.only_for_license |
string | Метка лицензии строкой, бывает пустой. Только у встроенных блоков |
Пример ответа
Запрос GET /v1/block-repository?section=text, показан один блок из раздела:
{
"success": true,
"data": {
"name": "Текст",
"meta": {
"ai_text_placeholder": "text for website, family business, sale of flowers",
"ai_text_max_tokens": 150
},
"new": false,
"type": null,
"specialType": null,
"separator": false,
"app_code": false,
"items": {
"03.1.three_cols_big_with_text_and_titles": {
"id": null,
"name": "Текст в 3 колонки на всю ширину страницы на цветном фоне",
"namespace": "bitrix",
"new": false,
"version": null,
"type": [],
"section": ["columns", "text"],
"system": false,
"description": "Три колонки с заголовками и текстом",
"preview": "//your-portal.bitrix24.ru/bitrix/blocks/bitrix/03.1.three_cols_big_with_text_and_titles/preview.jpg",
"restricted": false,
"repo_id": false,
"app_code": false,
"only_for_license": "",
"requires_updates": false
}
}
}
}
Запрос GET /v1/block-repository без параметров — показаны два раздела из каталога и один блок, у пустого раздела favourite поле items приходит массивом:
{
"success": true,
"data": {
"favourite": {
"name": "",
"meta": [],
"new": false,
"type": null,
"specialType": null,
"separator": false,
"app_code": false,
"items": []
},
"text": {
"name": "Текст",
"meta": {
"ai_text_placeholder": "text for website, family business, sale of flowers",
"ai_text_max_tokens": 150
},
"new": false,
"type": null,
"specialType": null,
"separator": false,
"app_code": false,
"items": {
"03.1.three_cols_big_with_text_and_titles": {
"id": null,
"name": "Текст в 3 колонки на всю ширину страницы на цветном фоне",
"namespace": "bitrix",
"new": false,
"version": null,
"type": [],
"section": ["columns", "text"],
"system": false,
"description": "Три колонки с заголовками и текстом",
"preview": "//your-portal.bitrix24.ru/bitrix/blocks/bitrix/03.1.three_cols_big_with_text_and_titles/preview.jpg",
"restricted": false,
"repo_id": false,
"app_code": false,
"only_for_license": "",
"requires_updates": false
}
}
}
}
}
Пример ответа при ошибке
404 — раздела с таким кодом нет:
{
"success": false,
"error": {
"code": "SECTION_NOT_FOUND",
"message": "No such repository section. Omit `section` to read the whole catalog."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 404 | SECTION_NOT_FOUND |
Раздела с кодом из section нет в каталоге портала |
| 400 | INVALID_SCOPE |
scope не входит в KNOWLEDGE, GROUP, MAINPAGE |
| 400 | INVALID_PARAMS |
Битрикс24 отклонил запрос: не хватает обязательного параметра |
| 413 | RESPONSE_TOO_LARGE |
Каталог больше 5 МБ. Запрашивайте по одному разделу через section |
| 502 | BLOCK_REPOSITORY_UNCONFIRMED |
Битрикс24 не вернул каталог. Повторите запрос |
| 403 | BITRIX_ACCESS_DENIED |
У сотрудника, под которым выпущен ключ, нет прав на сайты в Битрикс24 |
| 422 | BITRIX_ERROR |
Битрикс24 отклонил запрос, текст ошибки — в message |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа landing |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.
Известные особенности
Один блок — в нескольких разделах. Блок повторяется в каждом разделе, перечисленном в его поле section. Собирая список кодов по всему каталогу, убирайте повторы по ключу блока.
Каталог целиком — около мегабайта. На проверенном портале каталог содержит 33 раздела и около 1500 блоков, ответ занимает около 950 КБ. Если нужен один тип блоков, запрашивайте раздел через section.
Состав каталога зависит от портала. Установленные приложения добавляют свои разделы, код такого раздела совпадает с кодом приложения, например krayt.monotovar. Встречаются разделы с кодом на кириллице — значение section передавайте в URL-кодировке, например через encodeURIComponent.