---
title: "List nodes (workspace tree, or a flat summary list by type)"
method: GET
path: "/api/v1/nodes"
tags: ["Nodes"]
---

# List nodes (workspace tree, or a flat summary list by type)

`GET /api/v1/nodes`

## Request

- Base URL: `https://api-docs.busabase.com`
- URL: `https://api-docs.busabase.com/api/v1/nodes`
- Auth: none declared

## Query parameters

- `parentId` string: Node to start from. Omit or null to start from the space root.
- `depth` integer: How many levels beneath the start point to eagerly include (default 2 once either field is set). Capped at 5.
- `status` 'active' | 'archived': `active` walks the live TREE. `archived` returns a FLAT list of soft-archived nodes (the Trash view) with no parent/depth walk — so the response shape you can rely on differs between the two, not just the rows.
- `types` union: Return a flat list of lightweight summaries for these node types instead of the tree. Read one node's full detail with GET /nodes/{nodeId}.
  - string[]
  - 'folder' | 'base' | 'skill' | 'drive' | 'airapp' | 'file' | 'doc' | 'form' | 'whiteboard' | 'workflow' | 'html'

## Response `200`

Workspace node tree including folders, Bases, files, and agents. With no `parentId`/`depth`, returns the FULL tree (legacy behavior, still what every non-sidebar caller gets). Passing `parentId` and/or `depth` switches to a depth-bounded fetch: `parentId` omitted/null starts from the space root and returns it wrapped exactly like the legacy call (just depth-limited); an explicit `parentId` returns that node's children directly, ready to merge into its `NodeVO.children` for a sidebar's lazy per-folder expand. See `NodeVO.hasChildren` for how a depth boundary is surfaced. Passing `types` instead returns a FLAT, ACL-filtered list of lightweight summaries (`children: []`) for just those node types — this is what replaced `GET /docs`, `/files`, `/folders`, and `/file-trees`, and it deliberately hydrates nothing heavy (no Doc bodies, backing Assets, folder children, or file inventories). Open one item with `GET /nodes/{nodeId}`.

- object[]
  - `id` string, required
  - `parentId` string, required
  - `type` 'folder' | 'base' | 'skill' | 'drive' | 'airapp' | 'file' | 'doc' | 'form' | 'whiteboard' | 'workflow' | 'html', required
  - `slug` string, required
  - `name` string, required
  - `description` string, required
  - `metadata` object
    - `version` string
  - `settings` object
    - `airappEngine` 'browser' | 'local' | 'remote'
  - `explicitVisibility` 'private' | 'workspace' | 'public'
  - `icon` union
    - object
      - `type` unknown, required
      - `value` string, required
    - object
      - `type` unknown, required
      - `url` string, required
      - `attachmentId` string, required
      - `originalUrl` string
      - `originalAttachmentId` string
      - `crop` object
        - `x` number, required
        - `y` number, required
        - `zoom` number, required
  - `position` number, required
  - `createdAt` string, required
  - `updatedAt` string, required
  - `baseId` string, required
  - `children` object[], required
    - `id` string, required
    - `parentId` string, required
    - `type` 'folder' | 'base' | 'skill' | 'drive' | 'airapp' | 'file' | 'doc' | 'form' | 'whiteboard' | 'workflow' | 'html', required
    - `slug` string, required
    - `name` string, required
    - `description` string, required
    - `metadata` object
      - `version` string
    - `settings` object
      - `airappEngine` 'browser' | 'local' | 'remote'
    - `explicitVisibility` 'private' | 'workspace' | 'public'
    - `icon` union
      - object
        - `type` unknown, required
        - `value` string, required
      - object
        - `type` unknown, required
        - `url` string, required
        - `attachmentId` string, required
        - `originalUrl` string
        - `originalAttachmentId` string
        - `crop` object
          - `x` number, required
          - `y` number, required
          - `zoom` number, required
    - `position` number, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `baseId` string, required
    - `children` unknown[], required
      - unknown
    - `hasChildren` boolean
    - `shared` boolean
    - `sharedViaAncestor` boolean
  - `hasChildren` boolean
  - `shared` boolean
  - `sharedViaAncestor` boolean

---

[API](https://skmtc.dev/busabase/apis/busabase-api.md) · [All operations](https://skmtc.dev/busabase/apis/busabase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/busabase/apis/busabase-api/revisions/bc6a7d5ff4c1?raw)
