Planned. Snapshot routes are specified here so you can design against
them; they return
404 until launch. Availability requires the snapshots
feature (Builder and Commercial). Follow the
changelog for the release date.Endpoints
Both are data routes and count as one data response each. The download itself (from the signed URL) does not touch the API and does not count.
List snapshots
id or data_as_of).
Download a file
1
Fetch the manifest
GET /v1/snapshots. Stop if id matches what you already imported.2
Download each dataset
Request a signed URL per dataset and stream it to disk.
3
Verify
Compare the file’s SHA-256 and byte size to the manifest. Discard and re-download on mismatch.
4
Import atomically
Load into a staging table, then swap. Never apply a partial snapshot.
5
Save the cursor
Store
change_cursor and continue with incremental updates.File format
Each dataset is one gzip-compressed JSON Lines file: one JSON object per line, UTF-8,\n separated. Records use the same field names as the corresponding live endpoints.
Consult the generated endpoint schemas for field-level definitions; snapshot records mirror them.
Schedule, freshness, and retention
- Snapshots are published daily, shortly after
00:00 UTC.data_as_ofmarks the cut. - Builder always sees exactly one snapshot: the latest. Older snapshots are not retrievable on Builder — use the change feed for history.
- Commercial retention follows your contract; by default the last 90 daily snapshots plus month-end snapshots within your history entitlement are retained.
- A snapshot is never modified after
published_at. Corrections appear in the next snapshot and in the change feed.
Schema changes
schema_version is major.minor. Minor bumps add optional fields; your importer should ignore unknown keys. Major bumps can rename or remove fields and are announced in the changelog at least 30 days before the first snapshot that uses them. During the notice period, the manifest lists both versions and you choose with ?schema_version=.
Recovery
If your local copy is corrupt or your incremental cursor has expired (410 cursor_expired), re-import the latest snapshot and resume from its change_cursor. A full resync costs one data response for the manifest plus one per dataset — five or six in total.
Rights and redistribution
Downloading a snapshot gives you a copy of the dataset for use inside your organization or product, under the API terms. It does not grant redistribution rights:- Builder may load the data into internal systems and display it to your users with the plan’s attribution terms.
- Builder may not republish the files, mirror them, ship them as a dataset, or expose them through your own API.
- Commercial redistribution, sublicensing, and white-label use are granted only in a signed contract. Contact sales.