Skip to content
Hoody.com

Use these endpoints to manage notebooks, which are the top-level container for notes and pages. You can list notebooks accessible to the current user, retrieve a single notebook, create new ones, update settings, or delete them. Notebook membership is role-based, where only owners can update or delete a notebook.

Returns every notebook the requesting user is a member of. Notebooks where the user has the role none and notebooks with inactive status are excluded.

GET /api/v1/notes/notebooks

This endpoint takes no parameters.

Terminal window
curl -X GET 'https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks' \
-H 'Authorization: Bearer <token>'

Returns metadata for a single notebook, including the current user’s role within it.

GET /api/v1/notes/notebooks/{notebookId}

NameInTypeRequiredDescription
notebookIdpathstringYesIdentifier of the notebook to retrieve
Terminal window
curl -X GET 'https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/nb_8f3c2a1b9d4e4f7a' \
-H 'Authorization: Bearer <token>'

Creates a new notebook owned by the requesting user. The name field is required.

POST /api/v1/notes/notebooks

NameInTypeRequiredDescription
namebodystringYesDisplay name for the notebook
descriptionbodystring | nullNoOptional longer description
avatarbodystring | nullNoOptional avatar URL or identifier

This endpoint takes no path, query, or header parameters.

Terminal window
curl -X POST 'https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"name": "Product Launch Plan",
"description": "Tracking the v2.0 launch tasks and owners",
"avatar": null
}'

Updates the name, description, or avatar of an existing notebook. Only owners (and admins, where applicable) can update notebook settings.

PATCH /api/v1/notes/notebooks/{notebookId}

NameInTypeRequiredDescription
notebookIdpathstringYesIdentifier of the notebook to update
NameInTypeRequiredDescription
namebodystringYesUpdated display name for the notebook
descriptionbodystring | nullNoUpdated description
avatarbodystring | nullNoUpdated avatar URL or identifier
Terminal window
curl -X PATCH 'https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/nb_4d2e1c9f8a7b6e5d' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"name": "Product Launch Plan (v2)",
"description": "Updated scope for the v2.0 launch",
"avatar": null
}'

Permanently deletes a notebook and all of its data. Only the notebook owner can delete it.

DELETE /api/v1/notes/notebooks/{notebookId}

NameInTypeRequiredDescription
notebookIdpathstringYesIdentifier of the notebook to delete
Terminal window
curl -X DELETE 'https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/nb_4d2e1c9f8a7b6e5d' \
-H 'Authorization: Bearer <token>'

The notebook object returned by the endpoints above shares a common shape:

FieldTypeRequiredDescription
idstringYesNotebook identifier
namestringYesDisplay name of the notebook
descriptionstring | nullNoOptional longer description
avatarstring | nullNoAvatar URL or identifier
userobjectYesCurrent user’s relationship to the notebook
user.idstringYesCurrent user identifier
user.rolestringYesRole of the current user: owner, admin, collaborator, guest, or none
statusnumberYesNotebook status: 1 (active), 2 (archived), or 3 (deleted)
maxFileSizestringNoMaximum upload size, formatted as a string with units

Error responses share a common shape:

FieldTypeRequiredDescription
messagestringYesHuman-readable error message
codestringYesMachine-readable error code
detailsarrayNoArray of per-path validation errors
details[].pathstringYesField path that failed validation
details[].messagestringYesDescription of the validation failure