← API referenceChanges & events · API access unavailable
API REFERENCE / CHANGES & EVENTS
GET /v1/changes/snapshot
Bootstrap an authorized metadata snapshot and a cursor for subsequent changes.
Request fields
| Location | Field | Type | Required | Description |
|---|---|---|---|---|
| Header | Authorization | string | Yes | Credential scoped to the authorized resource. |
| Query | cursor | string | No | Opaque next-page cursor from this snapshot. |
Request example
Example request
GET /v1/changes/snapshot
Authorization: Bearer <scoped token>HTTP status codes
| Status | Meaning |
|---|---|
200 OK | Success response shown below. |
400 Bad Request | Invalid snapshot cursor. |
401 Unauthorized | Missing, expired, or invalid credential. |
403 Forbidden | Credential is valid but lacks the required scope or role. |
410 Gone | Snapshot expired; restart from the first page. |
429 Too Many Requests | Rate limit reached; honor Retry-After when provided. |
503 Service Unavailable | Service temporarily unavailable; retry safely. |
Response fields
| Field | Type | Example |
|---|---|---|
snapshot_id | string | snap_123 |
items | object[] | [1 shown] |
items[].id | string | file_789 |
items[].type | string | file |
items[].parent_id | string | folder_123 |
items[].version_id | string | ver_012 |
next_cursor | string | null | null |
resume_cursor | string | cursor_124 |
Response example
Example response
200 OK
Content-Type: application/json
{
"snapshot_id": "snap_123",
"items": [
{
"id": "file_789",
"type": "file",
"parent_id": "folder_123",
"version_id": "ver_012"
}
],
"next_cursor": null,
"resume_cursor": "cursor_124"
}How it works
Pagination must represent one consistent snapshot. The final page alone provides a resume_cursor that starts strictly after the snapshot boundary; an expired snapshot returns 410 and must restart. This ordering is a release-blocking invariant.
