لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/entities/pages/blocks/down.md فهرس التوثيق — /llms.txt
مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.
Move a block down
POST /v1/pages/:pageId/blocks/:blockId/down
Moves a block one position down in the page draft, swapping it with the neighbouring block below.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ParameterpageId (path) |
Typenumber | Requiredyes | DescriptionPage ID. List: GET /v1/pages |
ParameterblockId (path) |
Typenumber | Requiredyes | DescriptionID of a block in the draft of page pageId. List: GET /v1/pages/:pageId/blocks without the version parameter. A block from another page, a block in the trash and an ID from the published version return 404 |
Parameterscope (query) |
Typestring | Requiredno | DescriptionSite type: KNOWLEDGE — knowledge base, GROUP — workgroup site, MAINPAGE — main page. Omit the parameter for pages of other sites |
No body is needed: the call accepts an empty request or {}. Any field in the body is rejected with 400 INVALID_PARAMS.
Examples
curl — personal key
curl -X POST "https://vibecode.bitrix24.com/v1/pages/2417/blocks/29453/down" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
curl — OAuth application
curl -X POST "https://vibecode.bitrix24.com/v1/pages/2417/blocks/29453/down" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
JavaScript — personal key
const response = await fetch("https://vibecode.bitrix24.com/v1/pages/2417/blocks/29453/down", {
method: "POST",
headers: {"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
body: JSON.stringify({}),
})
const result = await response.json()
if (!response.ok) throw new Error(result.error.message)
console.log(result.data)
JavaScript — OAuth application
const response = await fetch("https://vibecode.bitrix24.com/v1/pages/2417/blocks/29453/down", {
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()
if (!response.ok) throw new Error(result.error.message)
console.log(result.data)
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.pageId |
Typenumber | DescriptionPage ID |
Fielddata.blockIds |
Typenumber[] | DescriptionIDs of all draft blocks, hidden ones included, in page order after the move |
Response example
{
"success": true,
"data": {
"pageId": 2417,
"blockIds": [
29451,
29453,
29455
]
}
}
Error response example
409 — the block is already last on the page:
{
"success": false,
"error": {
"code": "BLOCK_WRONG_SORT",
"message": "Block cannot move beyond the page order."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP409 | CodeBLOCK_WRONG_SORT |
DescriptionBlock cannot move beyond the page order. — the block is already last on the page |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionPath ids must be positive safe integers. — pageId or blockId is not a positive integer |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionBody must be a JSON object. — the body is not a JSON object |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionUnsupported body field. — the body contains any field |
| HTTP400 | CodeFST_ERR_CTP_EMPTY_JSON_BODY |
DescriptionThe Content-Type: application/json header is sent with an empty body. Send a {} body or drop the header |
| HTTP400 | CodeINVALID_SCOPE |
Descriptionscope must be KNOWLEDGE, GROUP or MAINPAGE, or omitted. — scope is not KNOWLEDGE, GROUP or MAINPAGE |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionBlocks not found on this page. — the block is not in the draft of page pageId: it belongs to another page, is in the trash, was deleted, the ID comes from the published version, or page pageId does not exist. The IDs of such blocks are listed in error.blockIds |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionPage or block not found. — Bitrix24 did not find the page or block during the move |
| HTTP422 | CodeBITRIX_NO_EFFECT |
DescriptionBitrix24 returned an invalid block descriptor; the action cannot be confirmed. — Bitrix24 returned a block descriptor that could not be parsed |
| HTTP422 | CodeBITRIX_NO_EFFECT |
DescriptionBitrix24 did not acknowledge the action. — Bitrix24 did not confirm the move |
| HTTP422 | CodeBITRIX_NO_EFFECT |
DescriptionBitrix24 did not return the page block order. — after the move, Bitrix24 did not return the block order |
| HTTP422 | CodeBITRIX_NO_EFFECT |
DescriptionBitrix24 returned an invalid block order. — the block order contains an invalid ID |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 rejected the action. The error text comes from Bitrix24 |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the landing scope |
| HTTP403 | CodeWRITE_BLOCKED_READONLY_KEY |
DescriptionThe key is read-only. The request is rejected before Bitrix24 is called |
| HTTP403 | CodeBITRIX_ACCESS_DENIED |
DescriptionThe Bitrix24 user the key is issued for has no permission to edit the page |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| HTTP401 | CodeINVALID_API_KEY |
DescriptionThe key in X-Api-Key is not found or has been revoked |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
| HTTP409 | CodeLANDING_MODULE_NOT_ENABLED |
DescriptionThe Sites module is not available on the Bitrix24 account |
| HTTP409 | CodePORTAL_ADDRESS_CHANGED |
DescriptionA self-hosted Bitrix24 moved to a new address, but the key's webhook was issued for the old one. Reissue the key's webhook |
| HTTP429 | CodeRATE_LIMITED |
DescriptionThe Bitrix24 request limit is exceeded. Retry the request in 1-2 seconds |
| HTTP502 | CodeBITRIX_UNAVAILABLE |
DescriptionBitrix24 did not respond, returned a server error, or sent a response larger than 8 MiB |
| HTTP503 | CodeBITRIX_TIMEOUT |
DescriptionBitrix24 did not respond in time |
Full list of common API errors — Errors.
Known specifics
- Moving several positions is a move call. To place a block right after a given block, call
POST /v1/pages/:pageId/blocks/:blockId/movewithtoPageIdequal topageIdand withafterBlockId. - A failure after the write does not cancel the shift. Responses
422 BITRIX_NO_EFFECT,429,502and503do not mean that the block stayed in place, and a retry shifts it again. Before retrying, re-read the page blocks withGET /v1/pages/:pageId/blocks. - The call changes the page draft. Site visitors see the change after the page is published with
POST /v1/pages/:id/publication. See Pages for details.