Skip to main content

Notes

A note is a piece of raw content captured against a project — a recording, a written snippet, an imported article, etc. Notes are the input side of Scripe’s content pipeline; once a note has been turned into a post draft (via “Turn into post” in the dashboard or the future write API), the post lives in posts. The v1 API exposes the notes the authenticated workspace owns, scoped to a specific project, with date filters and cursor pagination. Notes attached to deleted projects are not returned. A note may have at most one queue slot — the day on which it’s scheduled for content production. The slot is included inline so you don’t have to make a second call.

GET /v1/notes

List notes inside a project. projectId is required; everything else is optional.

Query parameters

dateFrom / dateTo filter on the queue slot’s date, not on the note’s createdAt. A note without a slot is excluded from a date-filtered result set; remove the date params to see notes that aren’t yet scheduled.

Response

Field reference

The content field is the raw user content. We do not redact PII or strip HTML — if you’re rendering this somewhere user-facing, sanitize on your end.

Pagination caveats

  • Order is (createdAt DESC, id DESC) — newest first. The cursor encodes that tuple.
  • Changing any filter (projectId, folderId, dateFrom, dateTo, limit) mid-loop will likely emit 400 bad_cursor. Restart the loop with the new filters.

GET /v1/notes/{noteId}

Single note read. Returns the same shape, wrapped in data.

Response

Errors


POST /v1/notes

Create a note + paired calendar slot. Required scope: notes:write.

Request body

We strongly recommend setting Idempotency-Key on every write — see idempotency.md. Replay within 24h returns the same response with header Idempotent-Replayed: true.

Response

Errors


What’s NOT here (yet)

  • Audio / transcript downloads. A note may have an attached recording; the v1 API doesn’t expose the storage URLs. Use sources for the truncated transcript.
  • Pinned / starred filters. Dashboard-only state, not exposed in v1.
  • Search / full-text query. No ?q= parameter. Filter client-side for now.
  • Update / delete endpoints. PATCH / DELETE are out of scope for v1.