1. Docs
  2. API Reference
  3. Move (reparent) a node

Move (reparent) a node

POST/api/v1/nodes/{id}/move

Reparents a node under a new parent_node_id in the current Environment, gated by hierarchy.manage on the node; the move is re-validated against the schema (allowed parent/child types, depth, no cycles). Supply an If-Match header with the node's current version for optimistic concurrency — a stale value returns 409. Returns the updated node and writes a node.moved audit row.

Authentication

Bearer TokenAuthorization Option A

JWT access token. Never send alongside X-API-Key: a request carrying both is refused.

API KeyX-API-Key Option B

API key for management-tier access. Never send alongside an Authorization header: a request carrying both is refused.

Path Parameters

idstring Required

Headers

  • if-match required
  • If-Match

    Optimistic-lock version of the resource. Send the `version` field returned on read; the server rejects with 409 if the row has changed since.

Request body

application/json

parent_node_idstring Required

Responses

application/json

  • dataNodeResponseDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

Returned object

Request
curl -X POST "https://auth.canopy-io.com/api/v1/nodes/value/move" \
  -H "if-match: value" \
  -H "If-Match: value" \
  -H "X-API-Key: $CANOPY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "parent_node_id": "string"
  }'
Response
{
  "data": {
    "id": "string",
    "application_id": "string",
    "parent_node_id": "string",
    "node_type": "string",
    "name": "string",
    "description": "string",
    "slug": "string",
    "status": "string",
    "metadata": {},
    "created_at": "2026-04-20T12:00:00.000Z",
    "updated_at": "2026-04-20T12:00:00.000Z",
    "version": 0
  }
}
Related endpoints
GETList hierarchy (scoped tree)
POSTCreate a hierarchy node
GETList the hierarchy as parent edges
GETGet a hierarchy node
PATCHUpdate a hierarchy node
DELETEDelete a hierarchy node
GETGet subtree from a node
GETGet ancestor chain for a node
GETGet direct children of a node
GETList identities at a node
GETGet identity summary for a node
Was this page helpful?

Tell us how we can improve this guide.