Skip to main content
Base path: http://localhost:3333/api/kiwi. Canvas paths must end with .canvas.json.

List canvases

Read canvas

Returns the raw JSON document with Content-Type: application/json.

Write canvas

Body must parse as JSON with nodes and edges arrays (empty arrays are allowed). Invalid JSON returns 400.

Patch canvas

Apply a batch of atomic operations without replacing the full document. If any operation fails, the whole batch is rejected.
Supported op values: add_node, update_node, remove_node, add_edge, update_edge, remove_edge.
integer
Nodes inserted.
integer
Nodes merged in place.
integer
Nodes deleted (connected edges removed too).
integer
Edges inserted.
integer
Edges merged in place.
integer
Edges deleted.

Delete canvas

Query canvas nodes

string
required
Canvas file path.
string
Filter nodes by label or metadata text.
string
Filter by node type.
string
Return nodes connected to the given node ID.
boolean
default:"false"
Return only nodes.
boolean
default:"false"
Return only edges.

Auto-layout

Reposition existing nodes in a canvas using a layout algorithm. This operates on the current canvas content only — it does not generate new nodes from the wiki-link graph (use POST /canvas/generate for that).
string
required
Canvas file to update in place.
string
default:"dot"
Graphviz engine: dot, neato, fdp, or circo.
  • path — output file; default canvas.canvas.json. A .canvas.json suffix is added if missing.
  • layouthierarchical (default), radial, force, or circular.
  • folder — optional prefix; only edges whose endpoints live under this folder are included.
  • colorize — boolean, default true.
Returns 503 if the link index is unavailable.
POST /canvas/generate and PATCH /canvas are REST-only. MCP exposes kiwi_canvas_list, kiwi_canvas_read, and kiwi_canvas_write — not generate or patch.

MCP parity

kiwi_canvas_list, kiwi_canvas_read, kiwi_canvas_write — see MCP.
Last modified on May 31, 2026