Skip to content

The Notes: Databases API lets you manage the individual records stored inside database nodes within a notebook. Use these endpoints to list, retrieve, search, create, update, and delete records — including the custom field values defined by the database schema.

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

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

Section titled “GET /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records”
NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
filtersquerystringNoJSON-encoded filter expression applied to record fields
sortsquerystringNoJSON-encoded sort expression applied to record fields
pagequeryintegerNoPage number to retrieve. Default: 1
countqueryintegerNoNumber of records to return per page. Default: 50
Terminal window
curl -G "https://api.hoody.com/api/v1/notes/notebooks/nb_8f3c1a2b/databases/db_4e9d6f0a/records" \
-H "Authorization: Bearer <token>" \
--data-urlencode 'filters=[{"field":"status","op":"eq","value":"active"}]' \
--data-urlencode 'sorts=[{"field":"name","dir":"asc"}]' \
--data-urlencode 'page=1' \
--data-urlencode 'count=50'

Returns a single record by ID from a database.

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

Section titled “GET /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}”
NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
recordIdpathstringYesID of the record to retrieve
Terminal window
curl "https://api.hoody.com/api/v1/notes/notebooks/nb_8f3c1a2b/databases/db_4e9d6f0a/records/rec_01HQ2XK9A1B2C3D4E5F6G7H8J9" \
-H "Authorization: Bearer <token>"

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

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

Section titled “GET /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/search”
NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
qquerystringNoName query string. Default: ""
excludequerystringNoJSON-encoded array of record IDs to exclude from results
Terminal window
curl -G "https://api.hoody.com/api/v1/notes/notebooks/nb_8f3c1a2b/databases/db_4e9d6f0a/records/search" \
-H "Authorization: Bearer <token>" \
--data-urlencode 'q=Acme' \
--data-urlencode 'exclude=["rec_01HQ2XK9A1B2C3D4E5F6G7H8J9"]'

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

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

Section titled “POST /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records”
NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
NameTypeRequiredDescription
idstringNoOptional client-supplied record ID
namestringNoRecord name. Default: "Untitled"
avatarstring | nullNoAvatar image URL for the record, or null to clear
fieldsobjectNoKey-value map of field names to field values. Default: {}
Terminal window
curl -X POST "https://api.hoody.com/api/v1/notes/notebooks/nb_8f3c1a2b/databases/db_4e9d6f0a/records" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Initech",
"fields": {
"status": { "type": "string", "value": "prospect" },
"tags": { "type": "string_array", "value": ["smb", "emea"] }
}
}'

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

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

Section titled “PATCH /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}”
NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
recordIdpathstringYesID of the record to update
NameTypeRequiredDescription
namestringNoNew record name
avatarstring | nullNoNew avatar image URL, or null to clear the existing avatar
fieldsobjectNoPartial map of field names to field values. Each value is an object with a type and a typed value (boolean, string, string_array, number, or text). Provided fields are merged with existing values
Terminal window
curl -X PATCH "https://api.hoody.com/api/v1/notes/notebooks/nb_8f3c1a2b/databases/db_4e9d6f0a/records/rec_01HQ2XK9A1B2C3D4E5F6G7H8J9" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp (Renewed)",
"fields": {
"status": { "type": "string", "value": "renewed" },
"renewal": { "type": "number", "value": 730 }
}
}'

Permanently deletes a record from a database.

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

Section titled “DELETE /api/v1/notes/notebooks/{notebookId}/databases/{databaseId}/records/{recordId}”
NameInTypeRequiredDescription
notebookIdpathstringYesID of the parent notebook
databaseIdpathstringYesID of the database node
recordIdpathstringYesID of the record to delete
Terminal window
curl -X DELETE "https://api.hoody.com/api/v1/notes/notebooks/nb_8f3c1a2b/databases/db_4e9d6f0a/records/rec_01HQ2XK9A1B2C3D4E5F6G7H8J9" \
-H "Authorization: Bearer <token>"