This page documents the canonical HTTP contract. Switch to the CLI example when you want the operator workflow.
Notes and journals are independent, organization-shared resources. Identity, organization, author, timestamps, and harness provenance are server-owned. Developer keys need the endpoint scope; notes:write does not grant notes:read. These calls complete synchronously and do not consume research credits or start scheduled work.
For longitudinal research, create a journal once, then create a new research_update note per observation with journal_id, explicit related_records, observed_at, and sources. Journal links are independent of entry links. Lead, company, and Deal profiles link to their scoped Notes views. Use the existing Scheduled harness for recurrence; note creation itself does not schedule it.
Writes return {note,replayed} or {journal,replayed}. Retrying a committed write with the same key and input returns the resource's current state and replayed=true. Lists return bounded summaries and next_cursor; get and revision reads contain full content. Lists are ordered by created_at descending with ID as tie-breaker. Revision cursors are scoped to one note. DELETE /api/notes/{note_id} archives a note and preserves its revision history; no hard-delete endpoint is exposed. Failed write candidates are excluded from history.
Clients should preserve unknown BlockNote block data when editing; conversion between Markdown and BlockNote is not performed by the API. File uploads, collaborative editing, and revision restoration are not part of this API.
Path parameters
note_idrequiredstring
Exact note ID returned by create or list.
| Name | Type | Description |
|---|---|---|
| note_idrequired | string | Exact note ID returned by create or list. |
Query parameters
limit· optionalinteger
Page size 1-100, default 25. Revision pages also stop at about 700 KB; continue with next_cursor.
cursor· optionalstring | null
Opaque next_cursor from the previous response. Keep filters unchanged when continuing a list.
| Name | Type | Description |
|---|---|---|
| limit | integer | Page size 1-100, default 25. Revision pages also stop at about 700 KB; continue with next_cursor. |
| cursor | string | null | Opaque next_cursor from the previous response. Keep filters unchanged when continuing a list. |
Errors
| Status | Meaning |
|---|---|
| 401 | Missing or invalid authentication. |
| 403 | Developer key lacks the required Notes scope. |
| 404 | Note, journal, or linked record is unavailable in this organization. |
| 409 | Stale expected_version or idempotency key reused with changed input. |
| 422 | Invalid fields, content bounds, paired record filter, or cursor. |
