Skip to content
Hoody.com

Use these endpoints to manage records inside notebook databases. Databases are typed nodes within a notebook that store structured records, each with a name and a set of custom field values. The endpoints cover listing, retrieving, searching, creating, updating, and deleting records.

All requests target the Notes container scoped to the project, container, and server hosting the notebook.

GET /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records

Returns a paginated list of records in a database. Supports JSON-encoded filters and sorts query parameters for narrowing results.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook containing the database
databaseIdpathstringYesThe ID of the database to list records from
filtersquerystringNoJSON-encoded filter expression applied to the records
sortsquerystringNoJSON-encoded sort expression applied to the records
pagequeryintegerNoPage number to return. Default: 1
countqueryintegerNoNumber of records per page. Default: 50
{
"records": [
{
"id": "rec_01HXY8K2N3M4P5Q6R7S8T9V0W1",
"name": "Acme Corp",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "Active" },
"priority": { "type": "number", "value": 1 },
"tags": { "type": "string_array", "value": ["lead", "enterprise"] }
}
},
{
"id": "rec_01HXY8K2N3M4P5Q6R7S8T9V0W2",
"name": "Globex Inc.",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "Pending" },
"priority": { "type": "number", "value": 2 },
"tags": { "type": "string_array", "value": ["lead"] }
}
}
],
"total": 2,
"page": 1,
"count": 50
}
Terminal window
curl -X GET "https://prj_abc123-cnt_xyz789-notes-1.us-east.containers.hoody.icu/api/v1/notes/notebooks/nbk_01HXY8K2N3M4P5Q6R7S8T9V0W1/databases/dbs_01HXY8K2N3M4P5Q6R7S8T9V0W1/records?page=1&count=50" \
-H "Authorization: Bearer <token>"

GET /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}

Returns a single record by ID from a database.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook containing the database
databaseIdpathstringYesThe ID of the database containing the record
recordIdpathstringYesThe ID of the record to retrieve
{
"id": "rec_01HXY8K2N3M4P5Q6R7S8T9V0W1",
"name": "Acme Corp",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "Active" },
"priority": { "type": "number", "value": 1 },
"tags": { "type": "string_array", "value": ["lead", "enterprise"] }
}
}
Terminal window
curl -X GET "https://prj_abc123-cnt_xyz789-notes-1.us-east.containers.hoody.icu/api/v1/notes/notebooks/nbk_01HXY8K2N3M4P5Q6R7S8T9V0W1/databases/dbs_01HXY8K2N3M4P5Q6R7S8T9V0W1/records/rec_01HXY8K2N3M4P5Q6R7S8T9V0W1" \
-H "Authorization: Bearer <token>"

GET /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/search

Searches records in a database by name. Supports excluding specific record IDs via a JSON-encoded array.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook containing the database
databaseIdpathstringYesThe ID of the database to search within
qquerystringNoName fragment to match. Default: ""
excludequerystringNoJSON-encoded array of record IDs to omit from results
{
"records": [
{
"id": "rec_01HXY8K2N3M4P5Q6R7S8T9V0W1",
"name": "Acme Corp",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "Active" }
}
}
],
"total": 1
}
Terminal window
curl -X GET "https://prj_abc123-cnt_xyz789-notes-1.us-east.containers.hoody.icu/api/v1/notes/notebooks/nbk_01HXY8K2N3M4P5Q6R7S8T9V0W1/databases/dbs_01HXY8K2N3M4P5Q6R7S8T9V0W1/records/search?q=Acme&exclude=%5B%22rec_01HXY8K2N3M4P5Q6R7S8T9V0W2%22%5D" \
-H "Authorization: Bearer <token>"

POST /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records

Creates a new record in a database with a name and custom field values.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook containing the database
databaseIdpathstringYesThe ID of the database to create the record in
NameTypeRequiredDescription
idstringNoOptional client-provided record ID
namestringNoDisplay name for the record. Default: "Untitled"
avatarstring | nullNoAvatar reference for the record
fieldsobjectNoMap of field name to typed value. Default: {}
{
"id": "rec_01HXY8K2N3M4P5Q6R7S8T9V0W3",
"name": "Initech",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "New" },
"priority": { "type": "number", "value": 3 }
}
}
Terminal window
curl -X POST "https://prj_abc123-cnt_xyz789-notes-1.us-east.containers.hoody.icu/api/v1/notes/notebooks/nbk_01HXY8K2N3M4P5Q6R7S8T9V0W1/databases/dbs_01HXY8K2N3M4P5Q6R7S8T9V0W1/records" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Initech",
"fields": {
"status": { "type": "string", "value": "New" },
"priority": { "type": "number", "value": 3 }
}
}'

PATCH /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}

Updates a record’s name, avatar, or field values. Fields provided in the request are merged with the existing values; fields not present in the body are left unchanged.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook containing the database
databaseIdpathstringYesThe ID of the database containing the record
recordIdpathstringYesThe ID of the record to update
NameTypeRequiredDescription
namestringNoNew display name for the record
avatarstring | nullNoNew avatar reference for the record
fieldsobjectNoMap of field name to typed value; merged into existing fields

Each value in fields must include a type discriminator. Supported types are boolean, string, string_array, number, and text.

{
"id": "rec_01HXY8K2N3M4P5Q6R7S8T9V0W1",
"name": "Acme Corp (Updated)",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "Closed" },
"priority": { "type": "number", "value": 1 },
"tags": { "type": "string_array", "value": ["lead", "enterprise", "closed"] }
}
}
Terminal window
curl -X PATCH "https://prj_abc123-cnt_xyz789-notes-1.us-east.containers.hoody.icu/api/v1/notes/notebooks/nbk_01HXY8K2N3M4P5Q6R7S8T9V0W1/databases/dbs_01HXY8K2N3M4P5Q6R7S8T9V0W1/records/rec_01HXY8K2N3M4P5Q6R7S8T9V0W1" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp (Updated)",
"fields": {
"status": { "type": "string", "value": "Closed" }
}
}'

DELETE /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}

Permanently deletes a record from a database.

NameInTypeRequiredDescription
notebookIdpathstringYesThe ID of the notebook containing the database
databaseIdpathstringYesThe ID of the database containing the record
recordIdpathstringYesThe ID of the record to delete
{
"success": true
}
Terminal window
curl -X DELETE "https://prj_abc123-cnt_xyz789-notes-1.us-east.containers.hoody.icu/api/v1/notes/notebooks/nbk_01HXY8K2N3M4P5Q6R7S8T9V0W1/databases/dbs_01HXY8K2N3M4P5Q6R7S8T9V0W1/records/rec_01HXY8K2N3M4P5Q6R7S8T9V0W1" \
-H "Authorization: Bearer <token>"