Для AI-агентов: markdown этой страницы — /docs-content/entities/pages/favorite.md индекс документации — /llms.txt

Сохранить блок в «Мои блоки»

POST /v1/pages/:pageId/blocks/:blockId/favorite

Создаёт шаблон блока в каталоге аккаунта Битрикс24 («Мои блоки»). Его видят ВСЕ редакторы аккаунта; это не личная закладка. sections необязателен, массив разделов каталога; [] разрешён. Ответ содержит blockId шаблона и code вида исходныйКод@blockId. Поле preview не поддерживается: Б24 удаляет указанный файл у исходного блока. Удалите ненужный шаблон через удаление избранного блока.

Требуется скоуп landing; READONLY-ключ получает 403 до записи. Блок проверяется на принадлежность странице.

Query scope необязателен: KNOWLEDGE, GROUP или MAINPAGE для соответствующей страницы; для обычного сайта пропустите. ID должны быть положительными целыми безопасными числами.

Примеры

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/favorite" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Reusable block","sections":["text"]}'

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

javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/favorite", {
  method: "POST",
  headers: {"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
  body: JSON.stringify({"name": "Reusable block", "sections": ["text"]}),
})
const result = await response.json()
if (!response.ok) throw new Error(result.error.message)
console.log(result.data)

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/favorite" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Reusable block","sections":["text"]}'

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

javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/favorite", {
  method: "POST",
  headers: {"X-Api-Key": "YOUR_APP_KEY", "Authorization": "Bearer USER_SESSION_TOKEN", "Content-Type": "application/json"},
  body: JSON.stringify({"name": "Reusable block", "sections": ["text"]}),
})
const result = await response.json()
if (!response.ok) throw new Error(result.error.message)
console.log(result.data)

Ответ

JSON
{
  "success": true,
  "data": {
    "blockId": 50,
    "code": "03.1.three_cols_big_with_text_and_titles@50"
  }
}

Ошибки

HTTP Code
400 INVALID_PARAMS / MISSING_REQUIRED_FIELDS / INVALID_SCOPE
401 MISSING_API_KEY / INVALID_API_KEY / TOKEN_MISSING
403 SCOPE_DENIED / WRITE_BLOCKED_READONLY_KEY / BITRIX_ACCESS_DENIED
404 ENTITY_NOT_FOUND
409 PORTAL_ADDRESS_CHANGED / LANDING_MODULE_NOT_ENABLED
422 BITRIX_ERROR / BITRIX_NO_EFFECT
429 RATE_LIMITED
502 BITRIX_ERROR
503 SERVICE_UNAVAILABLE