Fastest prediction market data API, live freshness across venues
Per event delay between provider arrival and the venue gateway publish, measured every minute on the top markets by 24 hour volume across Polymarket and Kalshi.
TL;DR. As of , Polymarket leads freshness delta vs venue at 0.5 ms (p50, 24h) on Fastest prediction market data API, live freshness across venues. Source: OpenChainBench, https://openchainbench.com/benchmarks/pm-data-freshness.
Prediction markets generate the most time sensitive event stream in crypto. An election market settles in seconds, a sports book moves on every play. Builders that integrate Polymarket or Kalshi through a data provider rather than hitting each venue directly need to know how many milliseconds that provider adds between when the venue itself publishes a trade and when the provider relays the same trade to its WebSocket subscribers. This benchmark measures exactly that. The harness subscribes to the same basket of top volume markets on each venue's own canonical source (T0) and on Codex GraphQL subscriptions. Each trade is cross correlated across the streams, and the per provider lag versus the venue gateway publish time is recorded as a Prometheus histogram. The leaderboard sorts by p50 freshness delta in milliseconds, lower is better. Use the venue tab at the top of the page to switch between Polymarket and Kalshi.
Methodology
Three WebSocket subscribers ride the same rotating basket of ~20 top volume markets simultaneously on each venue. For every trade event published on the venue's own canonical WebSocket gateway (the T0), we record the moment it lands and the moment each provider relays the same trade. The signature used to match a trade across providers is a tuple based on the market identifier, price and size of the fill, and a small time bucket, which is robust against the minor clock skew between gateways. Providers that fail to relay a trade within 90 seconds are not counted toward their p50, only toward their receive total, so a provider can look fresh on the leaderboard while silently dropping events. The success rate column flags that. Coverage today: Codex on Polymarket and Kalshi.
Frequently asked
Which prediction market data API has the lowest latency right now?
Polymarket currently leads at 0.5 ms (p50 over the last 24h) measured as time from the venue's own canonical WebSocket publish to provider relay. The leaderboard re sorts every minute on fresh Prometheus samples, so the answer reflects the actual measured lag on the active market basket, not a marketing claim. Switch the venue tab at the top to see Polymarket vs Kalshi independently.
What does 'freshness delta' mean for a prediction market API?
We connect to the venue's own canonical WebSocket and to the provider's WebSocket simultaneously, subscribe to the same markets, and for every trade event we record how many milliseconds the provider takes to relay the event after the venue itself publishes it. Lower is better. The venue's own gateway publish time is the canonical T0 because by construction nothing downstream can be faster than the source.
Why don't you include Polymarket REST polling on this benchmark?
When the Polymarket tab is selected, freshness is a WebSocket question. REST polling at 1s would have a floor freshness around 500ms (poll interval / 2) plus RTT, dominated by how often you poll. The Polymarket gateway WebSocket exists for exactly this reason, to avoid that floor. Adding REST as a row would make the leaderboard noisy without changing the conclusion: WebSocket beats polling by definition for real time data.
What does the Kalshi T0 source measure?
Kalshi's own public WebSocket at `wss://external-api-ws.kalshi.com/trade-api/ws/v2`, channel `trade`. The harness reads the `msg.ts_ms` field of each fill as the canonical publish timestamp and uses it as T0 for every Kalshi side comparison. Just like Polymarket's CLOB WebSocket on the Polymarket tab, it is the source against which provider latency is measured.
Are these numbers comparable to Kalshi or Limitless?
Kalshi is now its own tab on this page, click the Venue selector at the top to switch. Each venue uses its own canonical WebSocket as T0, so the absolute numbers are not directly comparable across tabs (different gateways, different network paths), but the relative provider ordering within each tab is honest. Limitless is not yet covered, we will add a tab if and when meaningful provider coverage exists for it.
How does OpenChainBench measure freshness?
Three WebSocket clients run in parallel inside the harness, all subscribed to the same basket of top volume markets on the active venue. Every 5 minutes we refresh the basket from the venue's own markets API. For each trade event, we compute a signature based on market id, price, size and a 5 second time bucket, and record the wall clock receive time on each provider. The freshness delta is `recv_provider - recv_venue` for the same signature. We export the histogram to Prometheus, the leaderboard reads the 24h p50.
Source code github.com/ChainBench/OpenChainBench/tree/main/harnesses/pm-freshness-bench