1. Docs
  2. API Reference
  3. Get subtree from a node

Get subtree from a node

GET/portal/v1/accounts/{accountSlug}/applications/{appSlug}/environments/{envSlug}/nodes/{id}/tree

Returns the subtree rooted at the given node as a nested structure, drawn from the caller's accessible hierarchy in the current Environment. The node must be within the caller's accessible scope (otherwise 403); a node id that resolves but is absent from the scoped tree returns 404. Each node carries the same access annotations as the full tree listing.

Authentication

Bearer TokenAuthorization

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

Requires capability env_structure.viewDeveloper Console

View the Environment's hierarchy tree and its schema. Granted through an administrator role in the Admin Workspace; a valid token without it is refused with 403.

Path Parameters

idstring Required

Responses

application/json

  • dataHierarchyTreeNodeDto*

application/json

  • errorApiErrorBodyDto*

application/json

  • errorApiErrorBodyDto*

Errors

When the request can't be completed, the response body includes a stable error code you can branch on.

403account.capability_requiredForbidden
When it happens

The signed-in user's administrator roles do not grant the capability this endpoint requires.

Remediation

Ask an account administrator to grant a role carrying the capability named in the Authentication section, then retry.

Returned object

Request
curl -X GET "https://auth.canopy-io.com/portal/v1/accounts/{accountSlug}/applications/{appSlug}/environments/{envSlug}/nodes/value/tree" \
  -H "Authorization: Bearer $CANOPY_TOKEN"
Response
{
  "data": {
    "id": "string",
    "name": "string",
    "description": "string",
    "slug": "string",
    "node_type": "string",
    "parent_node_id": "string",
    "status": "string",
    "access_state": "accessible",
    "can_access": false,
    "can_manage": false,
    "children": [
      {
        "id": "string",
        "name": "string",
        "description": "string",
        "slug": "string",
        "node_type": "string",
        "parent_node_id": "string",
        "status": "string",
        "access_state": "accessible",
        "can_access": false,
        "can_manage": false,
        "children": [
          {
            "id": "string",
            "name": "string",
            "description": "string",
            "slug": "string",
            "node_type": "string",
            "parent_node_id": "string",
            "status": "string",
            "access_state": "accessible",
            "can_access": false,
            "can_manage": false,
            "children": [
              {
                "id": "string",
                "name": "string",
                "description": "string",
                "slug": "string",
                "node_type": "string",
                "parent_node_id": "string",
                "status": "string",
                "access_state": "accessible",
                "can_access": false,
                "can_manage": false,
                "children": [
                  null
                ],
                "version": 0,
                "direct_count": 0,
                "inherited_count": 0
              }
            ],
            "version": 0,
            "direct_count": 0,
            "inherited_count": 0
          }
        ],
        "version": 0,
        "direct_count": 0,
        "inherited_count": 0
      }
    ],
    "version": 0,
    "direct_count": 0,
    "inherited_count": 0
  }
}
Related endpoints
GETList hierarchy (scoped tree)
POSTCreate a hierarchy node
GETGet a hierarchy node
PATCHUpdate a hierarchy node
DELETEDelete a hierarchy node
GETGet ancestor chain for a node
GETGet direct children of a node
POSTMove (reparent) 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.