NEW: Live arbitrage across 10+ prediction markets.Arbitrage →
← Index
Prediction MarketsAug 13, 202611 min read

Prediction Market Datasets in 2026: Where to Get Them

Prediction Market Datasets in 2026: Where to Get Them

The Short Answer

Prediction market datasets come from three places in 2026: the venue APIs, a few third-party reconstructions built from Polygon chain logs, and paid aggregators. Neither Kalshi nor Polymarket publishes a bulk download, so the "grab the CSV" habit you brought from equities does not transfer. Polymarket is far better served, with two large public archives on HuggingFace under permissive licences. Kalshi has no comparable public dataset and, running off-chain, no blockchain anyone can rebuild one from.

What passes for prediction market datasets in 2026 is a handful of APIs with awkward retention rules, two large Polymarket archives that both stop short of the present, and a lot of duplicate noise in the registries. Everything below about Polymarket describes its global platform and public API.

This page is for researchers and quants: what each venue exposes historically, which public datasets are real, and the two problems that eat the schedule. For the wider landscape, see our guide to prediction market data.

Key Takeaways

  • The best documented public archive, TimeSeventeen/Polymarket-v1, covers 21 November 2022 to 28 April 2026 under CC-BY-4.0. Neither venue publishes a bulk file of its own.
  • The big Polymarket archives exist because it settles on-chain. Kalshi has no equivalent fallback, which is why its dataset shelf is bare.
  • 28 April 2026 is the dividing line: CLOB V2 (the central limit order book) went live and the Dome API died. We found no public archive covering V2-era trading, so anything after that date means your own collector or a paid aggregator.

Where Prediction Market Datasets Actually Come From

There are three ways in: build it from the API, buy it, or borrow somebody else's reconstruction. Polymarket's documentation contains exactly one ZIP export, GET /v1/accounting/snapshot, which takes a wallet address and returns positions.csv and equity.csv for that one user. That is one trader's own history, not a market archive. Kalshi's documented surface has no bulk export and no data-licensing page.

And delete Dome from older bookmark lists: the cross-venue API half of 2025's write-ups recommended was acquired by Polymarket and reached end of life on 28 April 2026.

What Each Venue Exposes Historically

Kalshi split its API into live and historical tiers, the single biggest change for anyone backfilling. The live window is documented as a three-month target, not a guarantee, and the boundary advances over time. There are also four cutoffs, not one: market_settled_ts, trades_created_ts, orders_updated_ts and market_positions_last_updated_ts. Read them from GET /historical/cutoff instead of hard-coding a date, or a backfill will misroute at least one of the four data types. Older records sit behind eight /historical/* endpoints: cutoff, markets, markets/{ticker}, markets/{ticker}/candlesticks, trades, fills, orders and positions (docs.kalshi.com/getting_started/historical_data).

Historical candlesticks need no auth and accept three intervals only (1, 60 and 1440 minutes). How far back the archive runs is not documented anywhere we could find, so you have to probe for the earliest date yourself. Our Kalshi API guide covers auth and pagination.

Polymarket is stranger. GET /prices-history is unauthenticated and takes a fidelity in minutes, with a batch variant capped at 20 markets. The trade tape is where it bites: market-scoped requests to the data API carry an approximate three-year window, and offsets past 10,000 are rejected. A deep market's tape therefore cannot come out in one sweep. You slice it into narrower time windows and page each one separately, and the tedium of that is a large part of why the on-chain archives exist. The Polymarket API guide has the endpoint map.

SourceHistorical routeDocumented depthBulk file
Kalshi/historical/* endpointsNot publishedNone
Polymarket CLOB/prices-historyNot publishedNone
Polymarket tradesData API /tradesAbout 3 years, market-scopedNone
Polygon chain logsOrderFilled eventsFull tapeThird-party
ManifoldZipped JSON dumpsFree files dated July 2024Yes
MetaculusAuthenticated APICommunity prediction on ~50 questionsNo
Iowa Electronic MarketsPer-market price history1988 onwardUnclear
RobinhoodNo public APINoneNone

Manifold's free dumps are large but were last refreshed on 6 July 2024, and the download links carry that date. The present-day coverage advertised further down the same page belongs to its paid commercial licence, not the free files, which are offered for personal and non-commercial use only. Metaculus is no longer open at all: requests need credentials, the current community prediction is exposed on only a small set of questions, and model training is prohibited without permission.

The Polymarket Dataset Shelf Is Well Stocked

The best documented Polymarket dataset is TimeSeventeen/Polymarket-v1, released alongside arXiv paper 2606.04217 (Qin and Yang, June 2026). Watch the licences, because they differ: the dataset is CC-BY-4.0 on HuggingFace, the paper itself CC BY-SA 4.0, and share-alike is an obligation you can inherit by accident. What you get is an on-chain archive of the first-generation CTF Exchange (Conditional Tokens Framework, Polymarket's V1 contract) covering 21 November 2022 to 28 April 2026: roughly 1.20 billion trades across 1.30 million markets, about 49 GB of compressed Parquet. Its daily_aligned layer carries resolution_status, winning_outcome_label and resolved_at, which most dumps omit. The window is bounded at both ends, and both ends hurt: nothing after 28 April 2026, because it archives V1 only, and nothing from the AMM era before the CLOB launched in November 2022.

The most downloaded alternative, SII-WANGZJ/Polymarket_data, is MIT licensed and built from Polygon logs joined to Polymarket's Gamma metadata API. Its README, last revised 5 March 2026, states 1.9 billion records across 538,587 markets, broken out as 689.0 million raw OrderFilled events and 418.3 million processed trades. The HuggingFace viewer reports 5.41 billion rows. Cite whichever number you use and name which one it is. It does carry outcome metadata, contrary to how it is often described: markets.parquet exposes outcome_prices as a final-price array, a closed flag and answer1/answer2 outcome labels, though there is no explicit resolution-status enum. Note also that its trade coverage stops on 4 March 2026, so it does not reach further forward than Polymarket-v1 does.

Separately, arXiv 2604.20421 describes a lifecycle suite covering October 2020 to March 2026 with roughly 770,000 markets, 943 million fills and nearly 2 million oracle events, the only release we found treating the oracle layer as a first-class table. Its project page is polymonitor.club, where we could not find a public download, so budget for rebuilding it from the paper unless that changes. Ignore the near-identical crypto-candle re-uploads cluttering HuggingFace search.

Neither archive crosses the V2 boundary. For trading after 28 April 2026 we found no maintained public dataset at all, which leaves running your own collector or paying an aggregator.

The Kalshi Dataset Shelf Is Bare, and Structurally So

Searching the same registries for a Kalshi dataset turns up small, stale hobby uploads with download counts in the low hundreds. We found no large, maintained, Kalshi-native public dataset, and the reason is architectural: Kalshi runs an off-chain order book with no public event log, so there is nothing to rebuild a tape from. If the API does not expose it, it is not obtainable.

That leaves collecting it yourself or paying someone. Collecting is viable, since the candlestick endpoints are public, but read the tier ladder before you plan a schedule. Basic is the free default. Advanced is a self-serve upgrade through the Upgrade Account API Usage Level endpoint. Everything above that (Expert, Premier, Paragon, Prime, Prestige) is earned on trailing 30-day volume share against published thresholds, 0.075% to reach Expert and 0.05% to hold it at the time of writing, which penalises researchers who never trade. Check your live caps with GET /account/limits and read the thresholds at docs.kalshi.com/getting_started/rate_limits. On the vendor side, Adjacent (formerly adj.news, and the old links now redirect) indexes both venues, with paid tiers listed at $50 (Pro) and $250 (Premium) a month at the time of writing; current pricing is at docs.adjacent.markets/pricing. Its terms permit neither redistribution nor use in a financial product.

Normalising Across Venues Is the Actual Work

The identifier systems have zero overlap. Kalshi uses a readable hierarchy of series, event and market tickers; Polymarket uses id, slug, conditionId, questionID and a comma-separated clobTokenIds string. No shared key, no cross-venue registry, so joining is semantic text matching rather than a lookup. Matching is only half the job, because two matched markets can word their YES leg in opposite directions, which is why ImpliedData sells polarity normalisation as a feature. Check what it covers before you count on it, though: Polymarket, Manifold and Myriad, but not Kalshi. Its cross-venue layer runs to roughly 1,800 links across about 1,360 events at the time of writing, against archives holding hundreds of thousands of markets. For anything spanning Kalshi you are back to Adjacent or your own matcher, and most markets have no counterpart on any other venue at all.

Then the mundane things that corrupt results. Kalshi candles come in fixed buckets while Polymarket takes a lookback interval plus a separate fidelity in minutes, so a one-minute grid is the only clean shared basis. Timestamps arrive as Unix seconds from the Polymarket CLOB and as ISO-8601 strings from Kalshi's cutoff endpoint, so normalise before you join anything. Kalshi prices are fixed-point to six decimals; Polymarket's are floats. And prices-history is not a trade tape: it is a sampled series, so realised volatility computed off it measures the sampler as much as the market. Our Polymarket Python tutorial shows the difference.

Resolution Metadata Is Where Studies Break

If your question involves outcomes rather than prices, this matters more than the rest of the page. On Kalshi the authoritative settlement_sources array lives on the Series object, not the Market object, which carries no series ticker either, so you join market to event to series to learn what decided the contract. The status enum includes disputed and amended, so a study treating every settled price as final will swallow amended outcomes without noticing.

Polymarket resolves through UMA's optimistic oracle instead: a proposer posts a bond (750 pUSD at the time of writing, pUSD being the dollar-denominated token Polymarket pays winnings in), a two-hour challenge window runs, and a second dispute escalates to a token-holder vote lasting around 48 hours. Undisputed markets settle in about two hours, disputed ones in four to six days. Governance can move any of those four figures without warning, so re-read docs.polymarket.com/concepts/resolution before you build a timing assumption on them. The Gamma fields you would reach for (resolutionSource, umaResolutionStatus, resolvedBy) are all nullable. A settlement source pre-registered in a CFTC contract filing and a post-hoc adjudication by bonded strangers produce variables that share a name and mean different things, so pooling them without a venue effect is a modelling error rather than a cleaning one.

Frequently Asked Questions

What are prediction market datasets, and can you just download one?

Prediction market datasets are historical records of contract prices, trades and outcomes from venues like Kalshi and Polymarket. There is no canonical download: neither major venue publishes a bulk file, so every large dataset in circulation was collected from the API over time or rebuilt from Polygon chain logs. You build it, buy it, or accept someone else's archive and its cutoff date.

Is there a public Polymarket dataset?

Yes, more than one. The best documented is TimeSeventeen/Polymarket-v1 on HuggingFace, a CC-BY-4.0 on-chain archive of roughly 1.20 billion trades across 1.30 million markets with resolution status included, covering 21 November 2022 to 28 April 2026 because it archives the V1 exchange only. SII-WANGZJ/Polymarket_data is MIT licensed and larger on raw event count, but it does not run further forward: its trade coverage stops on 4 March 2026. Its published totals also fail to reconcile, at 1.9 billion records in the README against 5.41 billion rows in the HuggingFace viewer.

Is there a Kalshi dataset I can download?

Not a serious one publicly. Registry searches turn up only small, stale hobby uploads, and Kalshi's documentation offers no bulk download, no CSV export and no data-licensing page. Because Kalshi runs an off-chain order book with no public event log, there is no chain to rebuild a tape from, so the gap with Polymarket is structural. Realistically you run your own collector against the public endpoints, or pay an aggregator that already does.

What is the best prediction market data for research?

It depends on the question. For calibration work on Polymarket, the Polymarket-v1 archive is the strongest start because it ships resolution metadata, provided your sample fits inside 21 November 2022 to 28 April 2026. The Iowa Electronic Markets holds the longest series anywhere, running since the late 1980s, but access is by request and we could not verify its format, cost or citation terms, so settle those before you plan around it. Cross-venue studies involving Kalshi need an aggregator or your own collector, and you should check the licence before publishing anything derived from vendor data.

Which prediction market dataset should I use for calibration or resolution work?

Pick one that actually carries resolution fields, because most do not. Polymarket-v1 exposes resolution status, winning outcome label and resolved timestamp. The lifecycle suite described in arXiv 2604.20421 treats oracle events as a first-class table, but we could not find a public download for it, so budget for rebuilding it from the paper. If you pull from the APIs instead, remember that Kalshi's settlement sources sit on the Series object, not the Market object, while Polymarket's Gamma resolution fields are all nullable.

Conclusion

Acquisition is the easy part, and everyone underestimates the rest. Pulling candles is an afternoon; reconciling identifiers, polarities, time grids and two incompatible resolution regimes is the project. If you want a default: calibration work whose sample can end before May 2026 starts with Polymarket-v1, and anything past the V2 cutover or spanning Kalshi means running your own collector. Stream it either way instead of downloading, since Polymarket-v1 is about 49 GB and load_dataset("TimeSeventeen/Polymarket-v1", streaming=True) is enough to start poking at the schema. Read every licence before you redistribute anything, which is a legal question, and nothing here is legal or investment advice. If you are still picking a vendor, our roundup of the best prediction market APIs and SDKs is the faster way in.