Skip to content
Hoody.com

The Notes Databases API provides full CRUD operations over the records stored inside notebook database nodes. Use these endpoints to list, search, create, update, and delete individual rows, including their typed field values. All endpoints are scoped to a notebook and database combination and require permission to access the parent node.

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

Returns a paginated list of records in a database. Supports JSON-encoded filters and sorts.

NameInTypeRequiredDescription
filtersquerystringNoJSON-encoded filter expression applied to the record set
sortsquerystringNoJSON-encoded sort directives
pagequeryintegerNoPage number (default 1)
countqueryintegerNoNumber of records per page (default 50)
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
{
"records": [
{
"id": "65f1a2b3c4d5e6f7a8b9c0d1",
"name": "Quarterly planning",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "In Progress" },
"priority": { "type": "number", "value": 3 }
}
}
],
"total": 1,
"page": 1,
"count": 50
}
FieldTypeRequiredDescription
recordsarrayYesArray of record objects
totalintegerYesTotal number of records matching the query
pageintegerYesCurrent page number
countintegerYesRequested page size; the records array may contain fewer items
Terminal window
curl -X GET "https://67e89abc123def456789abcd-890abcdef12345678901cdef-notes-1.node-example-1.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records?page=1&count=50" \
-H "Authorization: Bearer $HOODY_TOKEN"

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

Returns a single record by ID from a database.

NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
recordIdpathstringYesID of the record to retrieve
{
"id": "65f1a2b3c4d5e6f7a8b9c0d1",
"name": "Quarterly planning",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "In Progress" },
"owner": { "type": "string", "value": "Alex Morgan" },
"tags": { "type": "string_array", "value": ["planning", "Q4"] },
"priority": { "type": "number", "value": 3 },
"done": { "type": "boolean", "value": false }
}
}
Terminal window
curl -X GET "https://67e89abc123def456789abcd-890abcdef12345678901cdef-notes-1.node-example-1.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}" \
-H "Authorization: Bearer $HOODY_TOKEN"

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

Searches records in a database by name. Supports excluding specific record IDs.

NameInTypeRequiredDescription
qquerystringNoSearch query matched against record names (default "")
excludequerystringNoJSON-encoded array of record IDs to omit from results
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
{
"records": [
{
"id": "65f1a2b3c4d5e6f7a8b9c0d1",
"name": "Quarterly planning",
"fields": {
"status": { "type": "string", "value": "In Progress" }
}
}
],
"total": 1
}
FieldTypeRequiredDescription
recordsarrayYesArray of record objects matching the search query
totalintegerYesTotal number of matching records
Terminal window
curl -X GET "https://67e89abc123def456789abcd-890abcdef12345678901cdef-notes-1.node-example-1.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/search?q=planning" \
-H "Authorization: Bearer $HOODY_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
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
FieldTypeRequiredDefaultDescription
idstringNoOptional client-supplied record ID
namestringNo"Untitled"Display name for the record
avatarstring | nullNoAvatar reference for the record
fieldsobjectNo{}Map of field names to typed values
{
"id": "65f1a2b3c4d5e6f7a8b9c0d1",
"name": "Quarterly planning",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "In Progress" },
"priority": { "type": "number", "value": 3 }
}
}
Terminal window
curl -X POST "https://67e89abc123def456789abcd-890abcdef12345678901cdef-notes-1.node-example-1.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records" \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Quarterly planning",
"fields": {
"status": { "type": "string", "value": "In Progress" },
"priority": { "type": "number", "value": 3 }
}
}'

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

Updates a record name, avatar, or field values. Fields are merged with existing values.

NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
recordIdpathstringYesID of the record to update
FieldTypeRequiredDefaultDescription
namestringNoNew display name for the record
avatarstring | nullNoNew avatar reference for the record
fieldsobjectNoMap of field names to typed values. Each value is an object of shape { type, value } where type is one of "boolean", "string", "string_array", "number", or "text". Field values are merged into the existing record.
{
"id": "65f1a2b3c4d5e6f7a8b9c0d1",
"name": "Quarterly planning (revised)",
"avatar": null,
"fields": {
"status": { "type": "string", "value": "Done" },
"priority": { "type": "number", "value": 3 }
}
}
Terminal window
curl -X PATCH "https://67e89abc123def456789abcd-890abcdef12345678901cdef-notes-1.node-example-1.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}" \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Quarterly planning (revised)",
"fields": {
"status": { "type": "string", "value": "Done" }
}
}'

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

Permanently deletes a record from a database.

NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
recordIdpathstringYesID of the record to delete
{
"success": true
}
FieldTypeRequiredDescription
successbooleanYesWhether the record was deleted
Terminal window
curl -X DELETE "https://67e89abc123def456789abcd-890abcdef12345678901cdef-notes-1.node-example-1.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}" \
-H "Authorization: Bearer $HOODY_TOKEN"