Для AI-агентов: markdown этой страницы — /docs-content/entities/pages/cards/add.md индекс документации — /llms.txt
Добавить карточку с HTML
POST /v1/pages/:pageId/blocks/:blockId/cards
Клонирует образец и заменяет HTML новой карточки. Б24 очищает опасный HTML своим санитайзером. Карточка должна сохранять структуру классов блока. Индексы @N сдвигаются.
Требуется скоуп landing; READONLY-ключ получает 403 до записи. Блок проверяется на принадлежность странице.
Query scope необязателен: KNOWLEDGE, GROUP или MAINPAGE для соответствующей страницы; для обычного сайта пропустите. ID должны быть положительными целыми безопасными числами.
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/cards" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"selector":".landing-block-card@0","content":"<div class=\"landing-block-card\"><h3 class=\"landing-block-node-title\">Example</h3></div>"}'
JavaScript — личный ключ
const response = await fetch("https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/cards", {
method: "POST",
headers: {"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
body: JSON.stringify({"selector": ".landing-block-card@0", "content": "<div class=\"landing-block-card\"><h3 class=\"landing-block-node-title\">Example</h3></div>"}),
})
const result = await response.json()
if (!response.ok) throw new Error(result.error.message)
console.log(result.data)
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/cards" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"selector":".landing-block-card@0","content":"<div class=\"landing-block-card\"><h3 class=\"landing-block-node-title\">Example</h3></div>"}'
JavaScript — OAuth-приложение
const response = await fetch("https://vibecode.bitrix24.tech/v1/pages/42/blocks/50/cards", {
method: "POST",
headers: {"X-Api-Key": "YOUR_APP_KEY", "Authorization": "Bearer USER_SESSION_TOKEN", "Content-Type": "application/json"},
body: JSON.stringify({"selector": ".landing-block-card@0", "content": "<div class=\"landing-block-card\"><h3 class=\"landing-block-node-title\">Example</h3></div>"}),
})
const result = await response.json()
if (!response.ok) throw new Error(result.error.message)
console.log(result.data)
Ответ
{
"success": true,
"data": {
"cards": {
".landing-block-card": [
{
"index": 0,
"content": "<div class=\"landing-block-card\">Example</div>"
}
]
}
}
}
Отказ после записи не отменяет действие Б24. При 422/502 после вызова сначала перечитайте блок; повтор clone/add может создать ещё одну карточку.
Ошибки
| 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 |