Syndai Docs

Read a page of sync snapshot rows

GET
/api/v1/external/coding/sync/snapshot

One keyset page of a sync entity's rows for the caller, the sync hydrate for coding_run, coding_project and coding_thread_item. customer_id is required. rows have exactly the shape of a sync delta's data for that entity. versions maps a row id to its sync version (the row's highest sync event sequence, read in the same statement as the row; a row with no sync event is omitted): apply a later delta for that row only when its sequence is higher. Server-owned ordering: newest created_at, then id descending. limit is the page size (default 200, clamped to 1..500). Pass the prior response's opaque next_cursor as after; next_cursor is null at the end. The first page (no after) carries resume: the caller's event-stream position read before the page; open /api/v1/events/stream?after=<resume> to receive every change since. resume is null on later pages and when the stream is unavailable.

Authorization

CustomerApiKey
headerAuthorizationBearer <API Key>

Customer API key sent as a bearer token

Query Parameters

entity*string
Value in"coding_run""coding_project""coding_thread_item"
customer_id*string
Formatuuid
after?string|null
limit?integer
Default200

Response Body

Request fulfilled, document follows

application/json
  1. response
next_cursor?string|null
resume?string|null
rows*array<>
versions*
Example Request
curl -X GET 'https://api.syndai.ai/api/v1/external/coding/sync/snapshot?entity=coding_run&customer_id=497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
{  "next_cursor": "string",  "resume": "string",  "rows": [    {}  ],  "versions": {    "property1": 0,    "property2": 0  }}