OpenAPI reference · Notes
List notes for a project
/notesCursor-paginated list of notes scoped to a project. Filter by
folder (null for inbox), date range (paired-slot date), and
custom limit. Sorted by (createdAt DESC, id DESC).
Authorization
AuthorizationstringrequiredBearer token in the Authorization header.
Pass
Authorization: Bearer scripe_sk_live_<...>(orscripe_sk_test_<...>for test keys) on every request. Keys are scoped to a single workspace and can be revoked from the Scripe dashboard.The same header also accepts an OAuth 2.1 access token (
scripe_oat_*); both credentials share one scope vocabulary and every operation below documents the scope it requires. An API key can hold every scope named on this surface exceptwebhooks:manage, which is grantable to OAuth tokens only today — the webhook-endpoint operations answer403 scope_missingto every API key. Operations that name no scope accept any valid token of the workspace.
Query parameters
projectIdstringrequiredfolderIdstringFolder filter. Pass the literal string
nullfor the inbox view (notes with no folder). Omit for "every note in the project".qstringFree-text search over the note body. Case- and accent-insensitive substring match (the column collation is
utf8mb4_0900_ai_ci); whitespace-separated words are AND-ed and a"quoted phrase"is matched whole.%and_in the query are matched literally, not as wildcards. Results stay newest-first — this narrows the page, it does not rank by relevance.searchandqueryare accepted as aliases. Max 200 characters; longer is a400 invalid_requestrather than a silent truncation.dateFromstring <date-time>ISO 8601 or
YYYY-MM-DDlower bound (inclusive).dateTostring <date-time>ISO 8601 or
YYYY-MM-DDupper bound (inclusive).cursorstringOpaque pagination cursor returned by the previous page.
limitintegerPage size. Default 50, max 200. Values above the max are clamped silently; only a non-integer or a value below 1 is rejected with
bad_pagination.Default: 50
Header parameters
Scripe-Api-VersionstringPin the API version. Format
YYYY-MM-DD. Omit to receive the currently rolling default. Unknown versions return400 version_unsupported.
Responses
- 200
Page of notes.
- 400
Malformed request (bad cursor, bad limit, etc.).
- 401
Missing, malformed, expired, or revoked API key.
- 403
Plan not eligible, scope missing, or workspace mismatch.
- 404
Resource not found in this workspace.
- 429
Sliding-window rate limit exceeded.
Example request
curl --request GET \
--url 'https://api.scripe.io/v1/notes?projectId=<projectId>' \
--header 'Authorization: Bearer <token>'Example response (200)
{
"data": [
{
"id": "note_a1b2c3d4e5f6g7h8",
"projectId": "string",
"folderId": "string",
"content": "string",
"createdAt": "2026-08-10T09:00:00Z",
"updatedAt": "2026-08-10T09:00:00Z",
"slot": {
"date": "2026-08-10T09:00:00Z",
"contentType": "PERSONAL"
}
}
],
"pagination": {
"next_cursor": "string",
"has_more": true,
"total": 128
}
}