How it works
Where every row comes from.
Our own recorder on the venue socket, our own Polygon node for the on-chain side. Nothing here is resold, which is why we can tell you where the gaps are.
From the venue to your disk
Four machines. We own three of them.
Polymarket
CLOB websocket
every book change
Recorder
Zurich
ts_exchange + ts_recv
Lake
hour partitions
lp2 - sha256 - manifest
You
signed URL
no meter
Our Polygon node
on-chain fills, 2020 →
trades are reconciled, not trusted
Schemas
What columns do you actually get?
One row per change of the book, not a snapshot every n milliseconds. Between two samples a sweep can take three levels and be replaced with no trace left behind; event-driven capture is what makes queue behaviour answerable at all, and it decides whether a backtest of a fast strategy is worth running.
Both clocks travel with every row: when the venue stamped it, and when we received it. One is what you model against, the other is what you measure latency with, and a dataset that keeps only one has made that choice on your behalf.
One row per change of the ladder. lp2 (lossless, about 7x smaller than parquet) or parquet.
| ts_ms | int64 | venue timestamp, milliseconds |
| local_ts_ms | int64 | our receive timestamp, kept apart from the venue clock |
| token_id | string | outcome token the book belongs to |
| side | enum | bid | ask |
| price | float64 | level price, 0..1 |
| size | float64 | resting size after the change |
| action | enum | add | change | remove | snapshot |
| seq | int64 | monotonic per token; gaps are flagged, not hidden |
Datasets
Books, trades, catalog and coverage.
Two are paid and two carry no key at all, because a dataset nobody can verify is worth nothing - and verification has to be free, or it is not verification.
Order books
paidEvery change of the ladder, both sides, both clocks, to the millisecond.
lp2parquetTrades
paidVenue prints plus on-chain fills, reconciled against our own Polygon node.
parquet2020 ->Catalog
freeMarkets, tokens, outcomes and resolutions, including the ones nobody trades.
RESTparquetCoverage ledger
freeRecorded milliseconds, declared gaps and uptime, per market-hour.
RESTcsvcitableDocumentation
Where to go next.
The catalog and the coverage ledger need no key at all — you can check what we captured before deciding anything.
Inspect the ledger →Start free. Check the ledger, then decide.
No card is collected anywhere on this site. The catalog and the coverage ledger carry no key at all, so you can check what we captured before you decide anything.
Or order a dataset and we invoice it. Nothing renews because you forgot.