---
title: "One keyset page of currently readable rows of one entity kind for a local store"
method: GET
path: "/api/preview/sync/snapshot"
tags: ["sync"]
---

# One keyset page of currently readable rows of one entity kind for a local store

`GET /api/preview/sync/snapshot`

## Request

- Base URL: `https://symbol.chat` (the document declares no server; this is the origin it was published from)
- URL: `https://symbol.chat/api/preview/sync/snapshot`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Secure-next-auth.session-token`
  - OAuth 2
    - Authorization code: `https://mcp.symbol.chat/authorize`
    - Token URL: `https://mcp.symbol.chat/token`

## Query parameters

- `entity` 'capsules' | 'types' | 'projects' | 'collections' | 'collection_members' | 'archived_capsules' | 'log_entries', required: Which entity kind this page carries.
- `cursor` string: Opaque `nextCursor` from the previous page of the same entity. Omit for the first page.
- `limit` integer: Page size (1..200, default 100). For the change feed this bounds the log rows examined; the page may hold fewer entries after filtering.
- `ws` string: Workspace scope: `all` (default) for every workspace in the caller's grants, `personal`, or an organization id that is in the grants.
- `completeness` '1': Set to `1` to receive the data a local copy needs to answer every offline read: each capsule item gains `data.query`, a page reports `coverage`, the feed follows a capsule's `remove` with an `archived_capsule` entry when it was archived, and a page is cut short at a byte budget.
- `capsule_id` string: Only with `entity=log_entries`: the entries of this one log capsule, for a client whose stored `log_revision` differs from the one a capsule item reported.

## Response `200`

Successful response

- object
  - `coverage` object
    - `complete` boolean
    - `entity` string
    - `protocol` 1, required
  - `dependency_review` object: Your dependency review switch now. Capsule documents carry dependency reasons only when it is on; when it differs from the value your copy was built under, re-snapshot the capsules.
    - `enabled` boolean, required
  - `entity` 'capsules' | 'types' | 'projects' | 'collections' | 'collection_members' | 'archived_capsules' | 'log_entries', required
  - `hasMore` boolean, required
  - `items` object[], required
  - `nextCursor` string, nullable, required
  - `reach` object: Your suspensions. `epoch` moves when one is created or restored; `generations` says in which workspace. Discard a page whose epoch differs from the one you are working under, wipe each workspace whose generation changed, and take a fresh snapshot of it if it is in your grants again.
    - `epoch` string, required
    - `generations` object, required
    - `suspended_workspace_ids` string[], required

## Changes

- **2026-11-13** `24536ef7ac40`: 2 warning, 6 info
  - added the new `archived_capsules` enum value to the `entity` response property for the response status `200`
  - added the new `log_entries` enum value to the `entity` response property for the response status `200`
  - added the new optional `query` request parameter `capsule_id`
  - added the new optional `query` request parameter `completeness`
  - …4 more
- **2026-11-08** `fd7b0a7085e4`: 1 info
  - added the optional property `dependency_review` to the response with the `200` status
- **2026-09-12** `74a5f960149b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/symbol-chat/apis/symbol-api/changes/api/preview/sync/snapshot/get.md)

---

[API](https://skmtc.dev/symbol-chat/apis/symbol-api.md) - [All operations](https://skmtc.dev/symbol-chat/apis/symbol-api/llms.txt) - [OpenAPI document](https://skmtc.dev/symbol-chat/apis/symbol-api/revisions/3ae8310b31e1?raw)
