1
List available tables
Call Example response:
GET /raw/tables to discover which tables are available, their primary keys, row counts, and sync status.2
Start the export
Request the first page of the table you want. Set Example response:
limit up to the maximum of 10000.3
Paginate with the cursor
Pass the
next_cursor value into the cursor query parameter for each subsequent request. Repeat until next_cursor is null.4
Verify snapshot consistency
Check the
X-Snapshot-At response header on every page. All rows within a single cursor sequence are consistent as of that timestamp. If the header changes between pages, start the export over to ensure a single snapshot view.5
Full Python example
A complete script that exports a table page by page, following the cursor until
exhausted, and verifies snapshot consistency across pages. Requires the
requests package.bulk_export.py
Cursor sequences remain stable under concurrent writes. Because raw tables can receive updates during a long export,
X-Snapshot-At tells you which sync version each page belongs to. For a guaranteed single-snapshot export, retry from the beginning if the snapshot timestamp differs across pages.