لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/entities/pages/blocks/move.md فهرس التوثيق — /llms.txt
مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.
Move a block
POST /v1/pages/:pageId/blocks/:blockId/move
Moves a block to another page or to another position on its own page, keeping the block ID.
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. For a block from another page, a block in the trash or an ID from the published version, the response is 404 |
Parameterscope (query) |
Typestring | Requiredno | DescriptionSite type: KNOWLEDGE — knowledge base, GROUP — workgroup site, MAINPAGE — main page. Omit the parameter for pages of other sites |
Request fields (body)
| Field | Type | Required | Description |
|---|---|---|---|
FieldtoPageId |
Typenumber | Requiredyes | DescriptionID of the page the block moves to. List: GET /v1/pages. The page may belong to another site. Pass pageId to reorder the block within its own page |
FieldafterBlockId |
Typenumber | Requiredno | DescriptionID of the block on page toPageId after which the block is placed. List: GET /v1/pages/:pageId/blocks. Without the field, the block is placed last on the page |
Examples
curl — personal key
curl -X POST "https://vibecode.bitrix24.com/v1/pages/2417/blocks/29459/move" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"toPageId": 2419}'
curl — OAuth application
curl -X POST "https://vibecode.bitrix24.com/v1/pages/2417/blocks/29459/move" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"toPageId": 2419}'
JavaScript — personal key
const response = await fetch("https://vibecode.bitrix24.com/v1/pages/2417/blocks/29459/move", {
method: "POST",
headers: {"X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
body: JSON.stringify({"toPageId": 2419}),
})
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/29459/move", {
method: "POST",
headers: {"X-Api-Key": "YOUR_APP_KEY", "Authorization": "Bearer USER_SESSION_TOKEN", "Content-Type": "application/json"},
body: JSON.stringify({"toPageId": 2419}),
})
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.blockId |
Typenumber | DescriptionID of the moved block. Matches blockId from the request |
Fielddata.pageId |
Typenumber | DescriptionID of the page that now holds the block |
Response example
{
"success": true,
"data": {
"blockId": 29459,
"pageId": 2419
}
}
Error response example
400 — the body has no toPageId:
{
"success": false,
"error": {
"code": "MISSING_REQUIRED_FIELDS",
"message": "toPageId is required."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeMISSING_REQUIRED_FIELDS |
DescriptiontoPageId is required. — the body has no toPageId |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionDestination ids must be positive safe integers. — toPageId or afterBlockId is not a positive integer |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionafterBlockId must belong to the destination page. — block afterBlockId is not on the page that receives the block |
| 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 a field that is not in the Request fields (body) table |
| HTTP400 | CodeFST_ERR_CTP_EMPTY_JSON_BODY |
DescriptionThe Content-Type: application/json header is sent with an empty body. Send a body with toPageId |
| 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. — page toPageId does not exist |
| 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 return the expected block id. — Bitrix24 did not return a block ID or returned an ID other than blockId |
| HTTP422 | CodeBITRIX_NO_EFFECT |
DescriptionBlock destination could not be confirmed. — after the write, the block was not found on page toPageId |
| 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
- A failure after the write does not cancel the move. Responses
422 BITRIX_NO_EFFECT,429,502and503do not mean that the block stayed in place. Before retrying, re-read the blocks of the source page and of pagetoPageIdwithGET /v1/pages/:pageId/blocks. - The call changes the drafts of the source page and of page
toPageId. Site visitors see the change after both pages are published withPOST /v1/pages/:id/publication. See Pages for details.