---
title: "The whole decrypted vault tree"
method: GET
path: "/v1/vault/tree"
tags: ["Vault"]
---

# The whole decrypted vault tree

`GET /v1/vault/tree`

## Request

- Base URL: `http://localhost:9998`
- URL: `http://localhost:9998/v1/vault/tree`
- Auth: HTTP bearer

Returns the full decrypted folder/note tree in one deterministic pass
(folders first, then notes, name-ascending). Whole-tree-only by
decision: the explorer adapter derives per-parent listings client-side;
there is no server-side sort or pagination. 423 while locked — the
tree is decrypted metadata and does not exist without the VMK.

## Response `200`

The decrypted tree

- WireVaultTreeResponse: The vault root folder with its full subtree (whole-tree-only by decision).
  - `root` WireVaultTreeNode, required: A node in the DECRYPTED vault tree. Recursive: a folder carries its children in tree responses. Mutation responses (note move, folder create/rename/move) return the bare relocated node with `children` omitted regardless of kind.
    - `id` string, required: Stable random UUID; unchanged by move/rename.
    - `kind` 'folder' | 'note', required: Whether a vault tree node is a folder or a note.
    - `name` string, required: Leaf display name, no path.
    - `path` string, required: Vault-relative, '/'-separated path, e.g. "ideas/2026/pitch".
    - `children` WireVaultTreeNode[]: Present on a folder in tree responses; omitted on a note and in mutation responses.

## Other responses

- `423`: The vault is locked (no VMK loaded). Unlock natively in ToolPiper — there is no unlock route. The body is the standard nested error envelope with type `vault_locked`.
- `503`: Vault service unavailable

---

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