Outlines
Lithic’s outliner documents (ADR-0018): a structure block like a page, with its node tree inside its own document rather than in the page tree.
6 operations. Every path is relative to the instance origin; every response body is JSON unless stated. See API for authentication, errors and pagination.
GET /api/v1/workspaces/{workspaceId}/outlines
List the outlines of a collection (flat, newest first). Requires read on the collection.
listOutlines · token scope: session only
Path parameters
workspaceId· string (uuid) — required
Query parameters
collectionId· string (uuid) — required
Response 200 — application/json
items· object[] — requiredid· string (uuid) — requiredworkspaceId· string (uuid) — requiredcollectionId· string (uuid) — requiredtitle· string — requiredicon· string | null — requiredcreatedAt· string (date-time) — requiredupdatedAt· string (date-time) — requireddeletedAt· string (date-time) | null — required
Response default — application/json
error· object — requiredcode·"bad_request"|"validation_failed"|"unauthorized"|"forbidden"|"not_found"|"conflict"|"rate_limited"|"internal"— requiredmessage· string — required
POST /api/v1/workspaces/{workspaceId}/outlines
Create an outline at the collection root. Requires edit on the collection; the body doc is created lazily on first collab connect.
createOutline · token scope: session only
Path parameters
workspaceId· string (uuid) — required
Request body — application/json, required
collectionId· string (uuid) — requiredtitle· string — required, length 1–500icon· string — length 0–2048
Response 200 — application/json
id· string (uuid) — requiredworkspaceId· string (uuid) — requiredcollectionId· string (uuid) — requiredtitle· string — requiredicon· string | null — requiredcreatedAt· string (date-time) — requiredupdatedAt· string (date-time) — requireddeletedAt· string (date-time) | null — required
Response default — application/json
error· object — requiredcode·"bad_request"|"validation_failed"|"unauthorized"|"forbidden"|"not_found"|"conflict"|"rate_limited"|"internal"— requiredmessage· string — required
GET /api/v1/workspaces/{workspaceId}/outlines/{outlineId}
Fetch one outline (structure plane only). Requires read.
getOutline · token scope: session only
Path parameters
workspaceId· string (uuid) — requiredoutlineId· string (uuid) — required
Response 200 — application/json
id· string (uuid) — requiredworkspaceId· string (uuid) — requiredcollectionId· string (uuid) — requiredtitle· string — requiredicon· string | null — requiredcreatedAt· string (date-time) — requiredupdatedAt· string (date-time) — requireddeletedAt· string (date-time) | null — required
Response default — application/json
error· object — requiredcode·"bad_request"|"validation_failed"|"unauthorized"|"forbidden"|"not_found"|"conflict"|"rate_limited"|"internal"— requiredmessage· string — required
PATCH /api/v1/workspaces/{workspaceId}/outlines/{outlineId}
Rename an outline or change its icon. Requires edit.
updateOutline · token scope: session only
Path parameters
workspaceId· string (uuid) — requiredoutlineId· string (uuid) — required
Request body — application/json, required
title· string — length 1–500icon· string | null
Response 200 — application/json
id· string (uuid) — requiredworkspaceId· string (uuid) — requiredcollectionId· string (uuid) — requiredtitle· string — requiredicon· string | null — requiredcreatedAt· string (date-time) — requiredupdatedAt· string (date-time) — requireddeletedAt· string (date-time) | null — required
Response default — application/json
error· object — requiredcode·"bad_request"|"validation_failed"|"unauthorized"|"forbidden"|"not_found"|"conflict"|"rate_limited"|"internal"— requiredmessage· string — required
DELETE /api/v1/workspaces/{workspaceId}/outlines/{outlineId}
Move an outline to the trash (soft delete). Requires full.
trashOutline · token scope: session only
Path parameters
workspaceId· string (uuid) — requiredoutlineId· string (uuid) — required
Response 200 — application/json
ok·true— required
Response default — application/json
error· object — requiredcode·"bad_request"|"validation_failed"|"unauthorized"|"forbidden"|"not_found"|"conflict"|"rate_limited"|"internal"— requiredmessage· string — required
GET /api/v1/workspaces/{workspaceId}/outlines/{outlineId}/markdown
Fetch the outline's node tree as canonical outline Markdown (text/markdown with a strong ETag over the canonical bytes; ADR-0018, mirroring the ADR-0012 page surface). Requires read.
getOutlineMarkdown · token scope: session only
Path parameters
workspaceId· string (uuid) — requiredoutlineId· string (uuid) — required
Response 200 — application/json
- string
Response default — application/json
error· object — requiredcode·"bad_request"|"validation_failed"|"unauthorized"|"forbidden"|"not_found"|"conflict"|"rate_limited"|"internal"— requiredmessage· string — required