Polymarket Orderbook Archive archive.pendulumflow.com

AG6 archive

DownloadAudit

A single-source capture, mirrored unmodified and not checked by us.

third-party/ag6/, 2026-08-09T20 to 2026-08-15T09, one Parquet file per UTC hour, named polymarket_orderbook_YYYY-MM-DDTHH.parquet. 136 objects, 58.1 GiB, measured 2026-08-29.

We serve these bytes. We do not vouch for them. They were collected by AG6 and mirrored here exactly as received. There is no witness pipeline behind them, no per-hour coverage verdict, and they have not been through the checks the rest of this site describes: the quality audit was pre-registered and has now run, and what it measured is published with this corpus. That is a statement about what we have measured, not an accusation about the data.

Why it is here

It closes part of a gap nothing else could. PMXT's archive ends at 2026-08-10T00 and that final hour is truncated - it holds 59,132,258 rows against AG6's 86,519,038 for the same hour, because PMXT's capture stopped partway through. AG6's copy of that hour is whole.

Its run also begins before PMXT's last hour rather than after it, so the two overlap instead of meeting end to end. Where they overlap you have two independent captures of the same hour, which is the only place in this archive outside v3/ where that is true.

It does not close the whole gap. 68 hours between 2026-08-15T10 and 2026-08-18T05 are still missing, with no known source. If you can help us fill the gap, please DM x.com/PendulumFlow.

Columns

The same sixteen columns as pmxt/v2/, and that is measured rather than assumed: the two schemas were read from the footers of the served files and compared field by field, including nullability.

timestamp_receivedtimestamp[ms, tz=UTC]never null

When the exporter ingested the event. The hour partition key and the sort key. Milliseconds, so rows tie constantly.

timestamptimestamp[ms, tz=UTC]never null

Polymarket's own timestamp for the event. Can be stale on a quiet market, so it is not a substitute for the receive time.

marketfixed_size_binary[66]never null

Condition id, 0x and 64 hex characters. Cast to text on read.

event_typestringnever null

price_change (~99.7% of rows), book, last_trade_price, tick_size_change.

asset_idstringnever null

Outcome token id, as a decimal string.

bidsstringnullable

Resting bid depth on book rows, as a JSON string you have to parse. Null on every other event type.

asksstringnullable

Resting ask depth on book rows, as a JSON string. Null elsewhere.

pricedecimal(9,4)nullable

On price_change and last_trade_price.

sizedecimal(18,6)nullable

On price_change and last_trade_price.

sidestringnullable

On price_change and last_trade_price.

best_biddecimal(9,4)nullable

On book rows. Frequently null even there in the files we serve, so recompute the touch from bids rather than relying on it.

best_askdecimal(9,4)nullable

On book rows, and null as often as best_bid is. Recompute it from asks.

fee_rate_bpsuint16nullable

On last_trade_price.

transaction_hashstringnullable

The on-chain hash, on last_trade_price.

old_tick_sizedecimal(9,4)nullable

On tick_size_change.

new_tick_sizedecimal(9,4)nullable

On tick_size_change.

16 columns. The types above were read from the footer of 2026-08-15T08, not copied from documentation, so they are what your own reader will report. nullable says whether the schema permits a null at all, which is not the same as how often one appears.

The reading notes on the V2 overview apply here unchanged, including that best_bid and best_ask are frequently null even on book rows.

What is wrong with this data

What is thin in AG6 is TIME, not market breadth.

  • It holds 136 of the 333 hours in its span. 2026-08-01T13 to 2026-08-15T09, 41% hour density. The roughly 197 hours it does not hold are gaps in TIME. An hour it holds is not thinner than its neighbours; it is simply not there. hour census over the served AG6 objects, 2026-08-31
  • Traded coverage is nearly whole. Ratio 0.9977 across the audit's six pre-registered AG6 hours, 47 traded markets missed in total. On the hour read in depth, four markets traded with no book, with fill counts of 171, 5, 4 and 2, and no phantom fills at all. audit instrument against on-chain fills, 2026-08-31
  • Its market universe is BROADER than pmxt/v2's, not narrower. On the seven hours they share, AG6 misses 0.55% of v2's markets while v2 misses 3.09% of AG6's. audit instrument, 2026-08-31
  • On the hours they share, AG6 is MORE complete than pmxt/v2 on the markets that actually traded. Both corpora measured against the same set of on-chain fills across all seven shared hours: AG6 0.9972, pmxt/v2 0.9896. The split behind that: markets present in v2 and absent from AG6 are 47 traded and 4,298 untraded; markets present in AG6 and absent from v2 are 246 traded and 24,688 untraded. So most of what AG6 lacks never traded, and only 47 markets that did trade are missing from it. phantom_fills is 0 across all seven hours, which is the era split predicting correctly: a consistency check passing, and not evidence that the column is never true. box-ops chain reads over the 7 shared hours, joined by recon 942a1ad3, 2026-08-31

Credit the collector: pendulumflow for V3, PMXT for V1 and V2, AG6 for their V2 archive. Ours and PMXT's are CC BY 4.0; AG6 states no licence.

Serving these bytes is not endorsing them. We are not affiliated with Polymarket.

For AI readers: llms.txt, what this archive holds and the questions it cannot answer.

https://x.com/PendulumFlow