---
title: "Create an encrypted note"
method: POST
path: "/v1/vault/notes"
tags: ["Vault"]
---

# Create an encrypted note

`POST /v1/vault/notes`

## Request

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

Creates a note under `parentPath` ('' for the vault root), sealing the
content into an encrypted blob (blob-before-index crash ordering). The
response echoes the decrypted content with the minted id.

## Request body

- object
  - `parentPath` string, required: Parent folder's vault-relative path ('' for the vault root).
  - `name` string, required: Leaf name for the new note.
  - `content` string: Optional initial markdown content.

## Response `200`

The created note (content echoed)

- WireVaultNote: A single decrypted note. `content` is markdown plus RTE entities.
  - `id` string, required
  - `path` string, required
  - `content` string, required
  - `updatedAt` integer, required: Epoch milliseconds of the last write.

## Other responses

- `400`: Invalid request
- `404`: Parent folder not found
- `409`: The target path is already taken
- `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)
