Skip to content
Hoody.com

The Notes document version API provides immutable snapshots of a page’s block content. Use these endpoints to capture, list, restore, and delete historical versions of a document, which is useful for audit trails, content recovery, and collaborative editing history.

A version’s content field uses the same block map shape as the live page document: {"type":"rich_text","blocks":{"<blockId>":{...}}}. It is not a ProseMirror document and does not carry a top-level content array.

The base URL for every endpoint on this page follows the pattern https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com. Replace {projectId} and {containerId} with your 24-character hexadecimal identifiers and {server} with your container’s server name.

GET /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions

Section titled “GET /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions”

Lists all versions for a document, ordered by revision descending.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook that owns the document.
nodeIdpathstringYesThe ID of the document node.
limitqueryintegerNoMaximum number of versions to return. Defaults to 20.
offsetqueryintegerNoNumber of versions to skip before returning results. Defaults to 0.
Terminal window
curl -X GET "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/67e89abc123def456789abcd/nodes/890abcdef12345678901cdef/versions?limit=20&offset=0" \
-H "Authorization: Bearer <token>"
{
"versions": [
{
"id": "67e89abc123def456789abcd",
"documentId": "890abcdef12345678901cdef",
"revision": 7,
"createdAt": "2026-01-15T10:30:00.000Z",
"createdBy": "user_abc123"
}
],
"total": 1
}

GET /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions/{versionId}

Section titled “GET /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions/{versionId}”

Retrieves a specific document version by ID, including its full block content.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook that owns the document.
nodeIdpathstringYesThe ID of the document node.
versionIdpathstringYesThe ID of the version to retrieve.
Terminal window
curl -X GET "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/67e89abc123def456789abcd/nodes/890abcdef12345678901cdef/versions/67e89abc123def456789abcd" \
-H "Authorization: Bearer <token>"
{
"id": "67e89abc123def456789abcd",
"documentId": "890abcdef12345678901cdef",
"revision": 7,
"content": {
"type": "rich_text",
"blocks": {
"b_kickoff": {
"id": "b_kickoff",
"type": "paragraph",
"parentId": "890abcdef12345678901cdef",
"index": "a0",
"content": [
{
"type": "text",
"text": "Project kickoff notes"
}
]
}
}
},
"createdAt": "2026-01-15T10:30:00.000Z",
"createdBy": "user_abc123"
}

POST /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions

Section titled “POST /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions”

Captures the current document content as a new version snapshot. The new version’s revision is one greater than the previous maximum.

This endpoint takes no request body.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook that owns the document.
nodeIdpathstringYesThe ID of the document node.
Terminal window
curl -X POST "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/67e89abc123def456789abcd/nodes/890abcdef12345678901cdef/versions" \
-H "Authorization: Bearer <token>"
{
"id": "67e89abc123def456789abcf",
"documentId": "890abcdef12345678901cdef",
"revision": 8,
"createdAt": "2026-01-15T11:00:00.000Z",
"createdBy": "user_abc123"
}

POST /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions/{versionId}/restore

Section titled “POST /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions/{versionId}/restore”

Restores a document to the content of a previous version. The restore creates a new revision on the live document, and the source version is preserved.

This endpoint takes no request body.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook that owns the document.
nodeIdpathstringYesThe ID of the document node.
versionIdpathstringYesThe ID of the version whose content to restore.
Terminal window
curl -X POST "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/67e89abc123def456789abcd/nodes/890abcdef12345678901cdef/versions/67e89abc123def456789abcd/restore" \
-H "Authorization: Bearer <token>"
{
"success": true
}

DELETE /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions/{versionId}

Section titled “DELETE /api/v1/notes/notebooks/{notebookId}/nodes/{nodeId}/versions/{versionId}”

Deletes a specific document version. Only the targeted version is removed. Other versions of the document, and the live document content, are not affected.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook that owns the document.
nodeIdpathstringYesThe ID of the document node.
versionIdpathstringYesThe ID of the version to delete.
Terminal window
curl -X DELETE "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/67e89abc123def456789abcd/nodes/890abcdef12345678901cdef/versions/67e89abc123def456789abce" \
-H "Authorization: Bearer <token>"
{
"success": true
}