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.
curl -X GET ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks ' \
-H ' Authorization: Bearer <token> '
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({ baseURL : ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com ' , token : process . env . HOODY_TOKEN });
await client . notes . notebooks . list ();
" id " : " nb_8f3c2a1b9d4e4f7a " ,
" name " : " Project Roadmap " ,
" description " : " Quarterly planning and milestones " ,
" id " : " user_01HQXK7G2N3R5V8Y " ,
" id " : " nb_2e9d8c7b6a5f4e3d " ,
" name " : " Engineering Wiki " ,
" avatar " : " https://cdn.example.com/avatars/eng-wiki.png " ,
" id " : " user_01HQXK7G2N3R5V8Y " ,
" message " : " Bad request. "
" message " : " You do not have permission to perform this action. "
Returns metadata for a single notebook, including the current user’s role within it.
GET /api/v1/notes/notebooks/{notebookId}
curl -X GET ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/nb_8f3c2a1b9d4e4f7a ' \
-H ' Authorization: Bearer <token> '
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({ baseURL : ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com ' , token : process . env . HOODY_TOKEN });
await client . notes . notebooks . get ( ' nb_8f3c2a1b9d4e4f7a ' );
" id " : " nb_8f3c2a1b9d4e4f7a " ,
" name " : " Project Roadmap " ,
" description " : " Quarterly planning and milestones " ,
" id " : " user_01HQXK7G2N3R5V8Y " ,
" code " : " notebook_no_access " ,
" message " : " You do not have access to this notebook. "
" code " : " notebook_not_found " ,
" message " : " Notebook not found. "
Creates a new notebook owned by the requesting user. The name field is required.
POST /api/v1/notes/notebooks
This endpoint takes no path, query, or header parameters.
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 ' \
"name": "Product Launch Plan",
"description": "Tracking the v2.0 launch tasks and owners",
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({ baseURL : ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com ' , token : process . env . HOODY_TOKEN });
await client . notes . notebooks . create ({
name : ' Product Launch Plan ' ,
description : ' Tracking the v2.0 launch tasks and owners ' ,
" id " : " nb_4d2e1c9f8a7b6e5d " ,
" name " : " Product Launch Plan " ,
" description " : " Tracking the v2.0 launch tasks and owners " ,
" id " : " user_01HQXK7G2N3R5V8Y " ,
" code " : " notebook_name_required " ,
" message " : " Notebook name is required. "
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}
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 ' \
"name": "Product Launch Plan (v2)",
"description": "Updated scope for the v2.0 launch",
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({ baseURL : ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com ' , token : process . env . HOODY_TOKEN });
await client . notes . notebooks . update ( ' nb_4d2e1c9f8a7b6e5d ' , {
name : ' Product Launch Plan (v2) ' ,
description : ' Updated scope for the v2.0 launch ' ,
" id " : " nb_4d2e1c9f8a7b6e5d " ,
" name " : " Product Launch Plan (v2) " ,
" description " : " Updated scope for the v2.0 launch " ,
" id " : " user_01HQXK7G2N3R5V8Y " ,
" message " : " Invalid request body. "
" code " : " notebook_update_not_allowed " ,
" message " : " You do not have permission to update this notebook. "
" code " : " notebook_not_found " ,
" message " : " Notebook not found. "
" code " : " notebook_update_failed " ,
" message " : " Failed to update notebook. "
Permanently deletes a notebook and all of its data. Only the notebook owner can delete it.
DELETE /api/v1/notes/notebooks/{notebookId}
curl -X DELETE ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/nb_4d2e1c9f8a7b6e5d ' \
-H ' Authorization: Bearer <token> '
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({ baseURL : ' https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com ' , token : process . env . HOODY_TOKEN });
await client . notes . notebooks . delete ( ' nb_4d2e1c9f8a7b6e5d ' );
" id " : " nb_4d2e1c9f8a7b6e5d " ,
" name " : " Product Launch Plan (v2) " ,
" description " : " Updated scope for the v2.0 launch " ,
" id " : " user_01HQXK7G2N3R5V8Y " ,
" code " : " notebook_delete_not_allowed " ,
" message " : " You do not have permission to delete this notebook. "
" code " : " notebook_not_found " ,
" message " : " Notebook not found. "
The notebook object returned by the endpoints above shares a common shape:
Error responses share a common shape: