Skip to content

Get the full vault manifest

GET
/sync/manifest
curl --request GET \
--url 'https://api.engram.page/sync/manifest?since_seq=1042' \
--header 'Authorization: Bearer <token>'

Every live note + attachment path, content hash, and change seq, for sync reconciliation. Pass since_seq (the change_seq of a previous manifest) to short-circuit: when nothing has changed the response is just {unchanged: true, change_seq} with the body omitted.

since_seq
string

Watermark from a prior manifest’s change_seq; invalid values are ignored.

Example
1042

Manifest

Media typeapplication/json
ManifestResponse
object
attachments
Array<object>
ManifestEntry
object
content_hash
string
nullable
crdt_head

CRDT head fingerprint (notes only) — equality with the client’s recorded head proves a live-bound doc is converged without content transfer.

string
nullable
id
required

Stable note/attachment id — lets a client reconcile its path↔id map.

string format: uuid
path
required
string
seq

Vault-global change sequence of the row’s last write — integer-diff validation hook (a client whose recorded seq is lower is behind).

integer
nullable
change_seq
required

Current per-vault sequence watermark.

integer
notes
Array<object>
ManifestEntry
object
content_hash
string
nullable
crdt_head

CRDT head fingerprint (notes only) — equality with the client’s recorded head proves a live-bound doc is converged without content transfer.

string
nullable
id
required

Stable note/attachment id — lets a client reconcile its path↔id map.

string format: uuid
path
required
string
seq

Vault-global change sequence of the row’s last write — integer-diff validation hook (a client whose recorded seq is lower is behind).

integer
nullable
total_attachments
integer
total_notes
integer
unchanged

Present (true) only when since_seq equals the current watermark — the manifest body is omitted because nothing changed.

boolean
nullable
Examplegenerated
{
"attachments": [
{
"content_hash": "example",
"crdt_head": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"path": "example",
"seq": 1
}
],
"change_seq": 1,
"notes": [
{
"content_hash": "example",
"crdt_head": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"path": "example",
"seq": 1
}
],
"total_attachments": 1,
"total_notes": 1,
"unchanged": true
}