Summary
Move a paragraph within the same story to a new anchor paragraph (before or after). Cross-story and relationship-bearing moves reject with named reasons. Tracked-mode authoring emits paired<w:moveFrom> / <w:moveTo> review state with explicit move range marker identity; safe content (no comment/bookmark/permission anchors and no pre-existing tracked wrappers) is required for tracked authoring. Available on v2-backed sessions only; v1-backed sessions currently return CAPABILITY_UNAVAILABLE.
- Operation ID:
blocks.move - API member path:
editor.doc.blocks.move(...) - Mutates document:
yes - Idempotency:
non-idempotent - Supports tracked mode:
yes - Supports dry run:
no - Deterministic target resolution:
yes
Expected result
Returns a BlocksMoveResult; on success carries the moved paragraph address plus affectedStories and a txId. Tracked-mode results includetrackedChangeRefs pointing at the paired move review entity.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
destination | BlockNodeAddress | yes | BlockNodeAddress |
destination.kind | "block" | yes | Constant: "block" |
destination.nodeId | string | yes | |
destination.nodeType | enum | yes | "paragraph", "heading", "listItem", "table", "tableRow", "tableCell", "tableOfContents", "image", "sdt" |
destination.story | StoryLocator | no | StoryLocator |
placement | enum | yes | "before", "after" |
source | BlockNodeAddress | yes | BlockNodeAddress |
source.kind | "block" | yes | Constant: "block" |
source.nodeId | string | yes | |
source.nodeType | enum | yes | "paragraph", "heading", "listItem", "table", "tableRow", "tableCell", "tableOfContents", "image", "sdt" |
source.story | StoryLocator | no | StoryLocator |
Example request
Output fields
| Field | Type | Required | Description |
|---|---|---|---|
affectedStories | StoryLocator[] | no | |
moved | BlockNodeAddress | yes | BlockNodeAddress |
moved.kind | "block" | yes | Constant: "block" |
moved.nodeId | string | yes | |
moved.nodeType | enum | yes | "paragraph", "heading", "listItem", "table", "tableRow", "tableCell", "tableOfContents", "image", "sdt" |
moved.story | StoryLocator | no | StoryLocator |
remappedRefs | AffectedRefRemapping[] | no | |
success | true | yes | Constant: true |
txId | string | no |
Example response
Pre-apply throws
TARGET_NOT_FOUNDCAPABILITY_UNAVAILABLEINVALID_TARGETINVALID_INPUT
Non-applied failure codes
INVALID_TARGETTARGET_NOT_FOUNDCAPABILITY_UNAVAILABLEINVALID_CONTEXTINVALID_INPUT
Raw schemas
Raw input schema
Raw input schema
Raw output schema
Raw output schema
Raw success schema
Raw success schema
Raw failure schema
Raw failure schema

