Для AI-агентов: markdown этой страницы — /docs-content/entities/pages/blocks/list.md индекс документации — /llms.txt
Список блоков страницы
GET /v1/pages/:pageId/blocks
Возвращает блоки одной страницы сайта в том порядке, в котором они стоят на странице.
Параметры
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
pageId (path) |
number | да | — | ID страницы. Список: GET /v1/pages |
version (query) |
string | нет | draft |
Версия страницы: draft — черновик, published — то, что видит посетитель сайта |
deleted (query) |
boolean | нет | false |
true — вернуть блоки из корзины страницы вместо блоков на странице |
content (query) |
boolean | нет | false |
true — добавить к каждому блоку его разметку content и подключения css, js. Увеличивает ответ на объём HTML всех блоков страницы |
scope (query) |
string | нет | — | Область сайта: KNOWLEDGE — база знаний, GROUP — страницы рабочих групп, MAINPAGE — главные страницы. Для страниц остальных сайтов параметр не передаётся |
Пагинация. Параметров limit и offset у метода нет: ответ содержит все блоки страницы за один вызов.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/pages/20/blocks" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/pages/20/blocks" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/pages/20/blocks', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { data, meta } = await res.json()
console.log(`Версия ${meta.version}, блоков: ${meta.count}`)
for (const block of data) {
console.log(block.id, block.code, block.active ? 'виден' : 'скрыт')
}
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/pages/20/blocks', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data, meta } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
array | Блоки страницы в порядке их расположения на странице. Пустой массив, если блоков нет |
data[].id |
number | ID блока в прочитанной версии страницы |
data[].pageId |
number | ID страницы |
data[].code |
string | Код блока из каталога. Каталог: GET /v1/block-repository |
data[].name |
string | Название блока на языке портала |
data[].active |
boolean | false — блок скрыт на странице |
data[].meta |
object | Служебные сведения о блоке. Ключи в верхнем регистре, все значения строками: CREATED_BY_ID и MODIFIED_BY_ID — ID сотрудников, DATE_CREATE и DATE_MODIFY — даты в формате локали портала, DESIGNER_MODE, XML_ID и другие. FAVORITE_META приходит строкой "Array" и данных не содержит |
data[].content |
string | null | Только при content=true. HTML блока вместе с внешней обёрткой <div id="b<id>" class="block-wrapper …">. У скрытого блока — null |
data[].css |
array | Только при content=true. Подключаемые стили блока |
data[].js |
array | Только при content=true. Подключаемые скрипты блока |
data[].version |
string | Версия, из которой прочитан блок: draft или published |
meta.version |
string | Версия страницы, которую прочитал запрос: draft или published |
meta.count |
number | Число блоков в data |
Пример ответа
Черновик страницы с тремя блоками, первый скрыт:
{
"success": true,
"data": [
{
"id": 32,
"pageId": 20,
"code": "01.big_with_text",
"name": "Обложка с меняющимися на фоне картинками",
"active": false,
"meta": {
"LID": "20",
"FAVORITE_META": "Array",
"CREATED_BY_ID": "1",
"DATE_CREATE": "10/12/2026 02:16:49 pm",
"MODIFIED_BY_ID": "1",
"DATE_MODIFY": "10/12/2026 02:16:49 pm",
"SITE_TYPE": "PAGE",
"LANDING_TITLE": "",
"LANDING_TPL_CODE": "",
"SITE_TPL_CODE": "",
"XML_ID": "",
"DESIGNER_MODE": ""
},
"version": "draft"
},
{
"id": 30,
"pageId": 20,
"code": "03.1.three_cols_big_with_text_and_titles",
"name": "Текст в 3 колонки на всю ширину страницы на цветном фоне",
"active": true,
"meta": {
"LID": "20",
"FAVORITE_META": "Array",
"CREATED_BY_ID": "1",
"DATE_CREATE": "10/12/2026 02:16:48 pm",
"MODIFIED_BY_ID": "1",
"DATE_MODIFY": "10/12/2026 02:16:48 pm",
"SITE_TYPE": "PAGE",
"LANDING_TITLE": "",
"LANDING_TPL_CODE": "",
"SITE_TPL_CODE": "",
"XML_ID": "",
"DESIGNER_MODE": ""
},
"version": "draft"
},
{
"id": 34,
"pageId": 20,
"code": "03.1.three_cols_big_with_text_and_titles",
"name": "Текст в 3 колонки на всю ширину страницы на цветном фоне",
"active": true,
"meta": {
"LID": "20",
"FAVORITE_META": "Array",
"CREATED_BY_ID": "1",
"DATE_CREATE": "10/12/2026 02:16:55 pm",
"MODIFIED_BY_ID": "1",
"DATE_MODIFY": "10/12/2026 02:16:55 pm",
"SITE_TYPE": "PAGE",
"LANDING_TITLE": "",
"LANDING_TPL_CODE": "",
"SITE_TPL_CODE": "",
"XML_ID": "",
"DESIGNER_MODE": ""
},
"version": "draft"
}
],
"meta": {
"version": "draft",
"count": 3
}
}
Запрос GET /v1/pages/20/blocks?content=true — показаны два блока из трёх, у скрытого блока content равен null:
{
"success": true,
"data": [
{
"id": 32,
"pageId": 20,
"code": "01.big_with_text",
"name": "Обложка с меняющимися на фоне картинками",
"active": false,
"meta": {
"LID": "20",
"FAVORITE_META": "Array",
"CREATED_BY_ID": "1",
"DATE_CREATE": "10/12/2026 02:16:49 pm",
"MODIFIED_BY_ID": "1",
"DATE_MODIFY": "10/12/2026 02:16:49 pm",
"SITE_TYPE": "PAGE",
"LANDING_TITLE": "",
"LANDING_TPL_CODE": "",
"SITE_TPL_CODE": "",
"XML_ID": "",
"DESIGNER_MODE": ""
},
"content": null,
"css": [],
"js": [],
"version": "draft"
},
{
"id": 34,
"pageId": 20,
"code": "03.1.three_cols_big_with_text_and_titles",
"name": "Текст в 3 колонки на всю ширину страницы на цветном фоне",
"active": true,
"meta": {
"LID": "20",
"FAVORITE_META": "Array",
"CREATED_BY_ID": "1",
"DATE_CREATE": "10/12/2026 02:16:55 pm",
"MODIFIED_BY_ID": "1",
"DATE_MODIFY": "10/12/2026 02:16:55 pm",
"SITE_TYPE": "PAGE",
"LANDING_TITLE": "",
"LANDING_TPL_CODE": "",
"SITE_TPL_CODE": "",
"XML_ID": "",
"DESIGNER_MODE": ""
},
"content": "<div id=\"b34\" class=\"block-wrapper block-03-1-three-cols-big-with-text-and-titles\"><section class=\"landing-block\"><div class=\"container\"><h2>Hello</h2></div></section></div>",
"css": [],
"js": [],
"version": "draft"
}
],
"meta": {
"version": "draft",
"count": 3
}
}
Пример ответа при ошибке
404 — страница не найдена:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "No such landing page, or it is not visible to this key. A knowledge-base, group or vibe page also needs `?scope=`."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_PAGE_ID |
pageId не положительное целое число |
| 400 | INVALID_VERSION |
version не равен draft или published |
| 400 | INVALID_SCOPE |
scope не входит в KNOWLEDGE, GROUP, MAINPAGE |
| 400 | INVALID_PARAMS |
Битрикс24 отклонил запрос: не хватает обязательного параметра |
| 400 | WRONG_PATH |
Запрос отправлен на /v1/blocks без страницы. Сообщение перечисляет правильные пути |
| 404 | ENTITY_NOT_FOUND |
Страницы нет или она не видна владельцу ключа. Страница базы знаний, рабочей группы или главная страница не находится без параметра scope |
| 413 | RESPONSE_TOO_LARGE |
Ответ больше 5 МБ. Прочитайте страницу без content=true |
| 502 | BLOCK_LIST_UNCONFIRMED |
Битрикс24 не вернул список блоков. Повторите запрос |
| 403 | BITRIX_ACCESS_DENIED |
У сотрудника, под которым выпущен ключ, нет прав на страницу в Битрикс24 |
| 422 | BITRIX_ERROR |
Битрикс24 отклонил запрос, текст ошибки — в message |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа landing |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.
Известные особенности
Черновик и опубликованная версия — разные блоки. Добавление, изменение и удаление блоков меняют черновик страницы, посетитель видит изменения только после публикации страницы — POST /v1/pages/:id/publication. После публикации у блоков опубликованной версии свои ID, не совпадающие с ID в черновике. Методы записи принимают только ID из черновика: ID, взятый из ответа с version=published, они отклоняют с 404 BLOCK_NOT_IN_DRAFT.