Для AI-агентов: markdown этой страницы — /docs-content/entities/pages/blocks/copy.md индекс документации — /llms.txt
Копировать блок
POST /v1/pages/:pageId/blocks/:blockId/copy
Копирует блок на страницу toPageId или на исходную, если поле не задано. Возвращает новый ID.
Требуется скоуп landing. READONLY-ключ получает 403 до обращения к Б24. Правится черновик.
Параметры запроса
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
pageId |
integer | да | Исходная страница из списка страниц. |
blockId |
integer | да | Блок исходной страницы. ID можно взять из ответа copy/move. |
scope |
string | нет | Query: KNOWLEDGE, GROUP, MAINPAGE; для обычных сайтов не нужен. |
toPageId |
integer | нет | Целевая страница; copy по умолчанию использует исходную. |
afterBlockId |
integer | нет | Блок целевой страницы; чужой или отсутствующий даёт 400 до записи. |
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/pages/42/blocks/31/copy" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/pages/42/blocks/31/copy" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
JavaScript — личный ключ
const response = await fetch("https://vibecode.bitrix24.tech/v1/pages/42/blocks/31/copy", {
method: "POST",
headers: { "X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json" },
body: JSON.stringify({})
});
const result = await response.json();
JavaScript — OAuth-приложение
const response = await fetch("https://vibecode.bitrix24.tech/v1/pages/42/blocks/31/copy", {
method: "POST",
headers: { "X-Api-Key": "YOUR_APP_KEY", "Authorization": "Bearer USER_SESSION_TOKEN", "Content-Type": "application/json" },
body: JSON.stringify({})
});
const result = await response.json();
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Успешный ответ. |
data |
object | Результат операции. |
data.blockId |
integer | ID блока после операции. |
data.pageId |
integer | ID страницы результата. |
Ответ
{
"success": true,
"data": {
"blockId": 51,
"pageId": 42
}
}
Ошибки
| HTTP | Код | Причина |
|---|---|---|
| 400 | INVALID_PARAMS |
Некорректный ID, тело или блок после которого вставлять. |
| 400 | MISSING_REQUIRED_FIELDS |
Нет обязательного поля. |
| 403 | SCOPE_DENIED / WRITE_BLOCKED_READONLY_KEY |
Нет landing или ключ только для чтения. |
| 409 | LANDING_MODULE_NOT_ENABLED |
Модуль Сайты недоступен на портале. |
| 404 | ENTITY_NOT_FOUND |
Нет страницы или блок не принадлежит исходной странице. |
| 422 | BITRIX_ERROR / BITRIX_NO_EFFECT |
Отказ Б24 или результат не подтверждён; не повторяйте удаление вслепую. |
Каждый ответ Б24 ограничен 8 МиБ; превышение даёт 502. После неподтверждённого результата не повторяйте действие вслепую: copy может создать ещё один блок, up/down изменят порядок повторно.