Skip to content
Hoody.com

The Notes Databases API lets you read, search, create, update, and delete individual records inside a database notebook node. Use these endpoints to enumerate pages of records with JSON-encoded filters and sorts, fetch a single record by ID, search records by name, create new records with typed field values, merge updates into an existing record, or permanently remove a record.

All requests target the Notes service running inside a container. The base URL is https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com, where {projectId} and {containerId} are 24-character hexadecimal identifiers and {server} is the cluster node label such as node-us.

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 records.
sortsquerystringNoJSON-encoded sort expression applied to records.
pagequeryintegerNoPage number to retrieve. Default: 1.
countqueryintegerNoNumber of records per page. Default: 50.
notebookIdpathstringYesIdentifier of the parent notebook.
databaseIdpathstringYesIdentifier of the database node.

This endpoint takes no request body.

Terminal window
curl -X GET "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/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
notebookIdpathstringYesIdentifier of the parent notebook.
databaseIdpathstringYesIdentifier of the database node.
recordIdpathstringYesIdentifier of the record.

This endpoint takes no request body.

Terminal window
curl -X GET "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}" \
-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 from the result set.

NameInTypeRequiredDescription
qquerystringNoSearch query matched against record names. Default: "".
excludequerystringNoJSON-encoded array of record IDs to exclude from the results.
notebookIdpathstringYesIdentifier of the parent notebook.
databaseIdpathstringYesIdentifier of the database node.

This endpoint takes no request body.

Terminal window
curl -X GET "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/search?q=acme" \
-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
notebookIdpathstringYesIdentifier of the parent notebook.
databaseIdpathstringYesIdentifier of the database node.
FieldTypeRequiredDescription
idstringNoOptional client-supplied record ID.
namestringNoDisplay name of the record. Default: "Untitled".
avatarstring | nullNoOptional avatar identifier or URL.
fieldsobjectNoMap of field IDs to typed field values. Default: {}.
{
"name": "Vendor onboarding",
"fields": {
"status": { "type": "string", "value": "pending" },
"priority": { "type": "number", "value": 2 },
"tags": { "type": "string_array", "value": ["q1", "review"] }
}
}
Terminal window
curl -X POST "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Vendor onboarding",
"fields": {
"status": { "type": "string", "value": "pending" },
"priority": { "type": "number", "value": 2 },
"tags": { "type": "string_array", "value": ["q1", "review"] }
}
}'

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

Updates a record name, avatar, or field values. Submitted fields are merged with the existing field map.

NameInTypeRequiredDescription
notebookIdpathstringYesIdentifier of the parent notebook.
databaseIdpathstringYesIdentifier of the database node.
recordIdpathstringYesIdentifier of the record.
FieldTypeRequiredDescription
namestringNoNew display name for the record.
avatarstring | nullNoNew avatar identifier or URL.
fieldsobjectNoMap of field IDs to typed field values. Values are merged with existing fields.
{
"name": "Vendor onboarding - in progress",
"fields": {
"status": { "type": "string", "value": "in_progress" }
}
}
Terminal window
curl -X PATCH "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Vendor onboarding - in progress",
"fields": {
"status": { "type": "string", "value": "in_progress" }
}
}'

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

Permanently deletes a record from a database.

NameInTypeRequiredDescription
notebookIdpathstringYesIdentifier of the parent notebook.
databaseIdpathstringYesIdentifier of the database node.
recordIdpathstringYesIdentifier of the record.

This endpoint takes no request body.

Terminal window
curl -X DELETE "https://{projectId}-{containerId}-notes-1.{server}.containers.hoody.com/api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}" \
-H "Authorization: Bearer <token>"