Skip to content

List note changes since a cursor (keyset pagination)

GET
/notes/changes
curl --request GET \
--url 'https://api.engram.page/notes/changes?since=example' \
--header 'Authorization: Bearer <token>'

Returns one keyset-paginated page of note changes (creates, updates, deletes) updated at or after the since timestamp, including has_more and next_cursor. limit is capped at 500 and fields=meta omits note content. server_time is the high-water mark this page is complete through, so legacy clients can advance since without skipping rows.

since
required
string

ISO8601 timestamp cursor

limit
integer

Max rows (<=500)

fields
string

“meta” or “all”

cursor
string

Opaque pagination cursor

Changes page

Media typeapplication/json
ChangesResponse
object
changes

Note objects (content present only when fields=all).

Array<object>
Note
object
content
string
content_hash
string
nullable
description

OKF frontmatter description field

string
nullable
fm_created

OKF frontmatter created/date field

string format: date-time
nullable
fm_timestamp

OKF frontmatter timestamp/modified/updated field

string format: date-time
nullable
folder
string
nullable
id
string format: uuid
nullable
mtime

Client mtime (epoch seconds)

number format: float
parse_reason

Present when parse_status is “degraded”: {code, message, detail}

object
parse_status

Frontmatter parse outcome

string
nullable
Allowed values: ok degraded
path
required
string
resource

OKF frontmatter resource field

string
nullable
tags
Array<string>
title
string
nullable
type

OKF frontmatter type field

string
nullable
updated_at
string format: date-time
nullable
version
integer
nullable
has_more
boolean
next_cursor
string
nullable
server_time
string format: date-time
Example
{
"changes": [
{
"parse_status": "ok",
"path": "Projects/engram.md"
}
]
}

Invalid since/limit/fields/cursor

Media typeapplication/json
Error
object
errors
One of:
string
Examplegenerated
{
"errors": {}
}