Create a node inside an organization
/api/v1/organizations/{id}/nodesCreates a node beneath parent_node_id, the organization or a node inside it, with node_type, name and an optional description. The schema decides what goes where, as on POST /nodes: a type not allowed beneath the parent, or a node past max_depth, answers 400 (hierarchy.child_type_not_allowed, hierarchy.max_depth_exceeded), and the organization node type cannot be created here. Requires the developer's hierarchy.manage, or canopy:structure.manage held at the parent or above it inside the organization; canopy:organization.manage at the organization node implies it. Emits node.created.
Authentication
Authorization Option A JWT access token. Never send alongside X-API-Key: a request carrying both is refused.
X-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 Request body
application/json
parent_node_idstring Required The node it goes beneath: the organization or a node in it
node_typestring Required A node type the schema allows beneath it
namestring Required descriptionstring Optional Responses
application/json
data *NodeResponseDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Returned object
curl -X POST "https://auth.canopy-io.com/api/v1/organizations/value/nodes" \ -H "X-API-Key: $CANOPY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "parent_node_id": "string", "node_type": "string", "name": "string", "description": "string" }'
{ "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 } }
Tell us how we can improve this guide.