Create a document
View as MarkdownPOST
/v1/documentsCreates a document in a workspace, optionally under a parent and with an initial Markdown body. Without afterId/beforeId it is appended as the last child.
docs:writeUndoable
curl -X POST "https://api.lydie.co/v1/documents" \
-H "Authorization: Bearer $LYDIE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "01JCQ3TZ0WJ8K4M2X7T9R6N1PA",
"title": "Meeting notes",
"markdown": "# Meeting notes\n\n- Ship the developer docs"
}'Body
- idULID
Client-minted id. Generated when omitted.
Default
nullDefault
"Untitled"- propertiesobject
Default
{} - markdownstring
Initial body as Lydie Markdown.
Hosted: the teamspace a top-level page goes into (null or absent: the creator's private section). Ignored for child pages, which share their parent's space, and in local mode.
- afterIdULID
Place directly after this sibling.
- beforeIdULID
Place directly before this sibling.
Explicit fractional key. Overrides afterId/beforeId; recorded by clients so replays converge.
Response
- idULID
- propertiesobject
- createdAttimestamp
- updatedAttimestamp
{
"id": "01JCQ3V5MZ8G4ZK2X7T9R6N1PB",
"workspaceId": "01JCQ3TZ0WJ8K4M2X7T9R6N1PA",
"parentId": null,
"title": "Meeting notes",
"sortKey": "a0",
"properties": {
"status": "draft"
},
"createdAt": "2026-11-12T09:30:00.000Z",
"updatedAt": "2026-11-12T09:30:00.000Z",
"deletedAt": null,
"createdBy": null,
"updatedBy": null
}Errors use one envelope for every endpoint. See Errors and versions.