{"slug":"pm-data-freshness","title":"Fastest prediction market data API, live freshness across venues","subtitle":"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.","category":"Aggregators","metric":"Freshness delta vs venue","unit":"ms","status":"live","higherIsBetter":false,"value":0.5,"leader":{"name":"Polymarket","slug":"polymarket","value":0.5},"rankings":[{"name":"Polymarket","slug":"polymarket","ms":{"p50":0.5,"p90":0.5,"p99":0.5,"mean":0.5},"successRate":97.4265,"sampleSize":68524.9},{"name":"Kalshi","slug":"kalshi","ms":{"p50":0.5,"p90":0.5,"p99":0.5,"mean":0.5},"successRate":100,"sampleSize":4160240},{"name":"Mobula","slug":"mobula","ms":{"p50":28.3338,"p90":118.77,"p99":1436.69,"mean":73.8824},"successRate":50.7977,"sampleSize":34809},{"name":"Codex","slug":"codex","ms":{"p50":974.357,"p90":2433.82,"p99":6018.17,"mean":1115.48},"successRate":100,"sampleSize":920978}],"sparkline":[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0,0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5],"sampleSize":5184551.9,"asOf":"2026-07-01T17:58:10.121Z","headline":"Polymarket leads freshness delta vs venue at 1 ms (p50, 24h) on Fastest prediction market data API, live freshness across venues.","quote":"Polymarket leads freshness delta vs venue at 1 ms (p50, 24h) on Fastest prediction market data API, live freshness across venues. Source: OpenChainBench (https://openchainbench.com/benchmarks/pm-data-freshness).","cite":{"plain":"OpenChainBench. \"Fastest prediction market data API, live freshness across venues\". Retrieved 2026-07-01. https://openchainbench.com/benchmarks/pm-data-freshness","bibtex":"@misc{ocb_pm_data_freshness,\n  author = {OpenChainBench},\n  title  = {Fastest prediction market data API, live freshness across venues},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/pm-data-freshness},\n  note   = {Retrieved 2026-07-01}\n}","apa":"OpenChainBench. (2026). Fastest prediction market data API, live freshness across venues. Retrieved July 1, 2026, from https://openchainbench.com/benchmarks/pm-data-freshness"},"pageUrl":"https://openchainbench.com/benchmarks/pm-data-freshness","ogImage":"https://openchainbench.com/api/og/pm-data-freshness","source":"https://github.com/MobulaFi/mobula-monorepo/tree/main/miniapps/pm-freshness-bench","methodology":["Polymarket T0. `wss://ws-subscriptions-clob.polymarket.com/ws/market` is public, no auth, sub 50ms gateway publish latency from EU West. Cross correlation uses (conditionId, priceUSD rounded to 3 decimals, sizeUSD micros, 5s time bucket).","Kalshi T0. `https://api.elections.kalshi.com/v1/social/trades` (REST), polled every 5s with cursor pagination. Every trade carries `create_date` at microsecond precision; that timestamp is the canonical T0. Poll cadence affects only correlation timing, not the freshness number. The official Kalshi WebSocket needs RSA PSS signed headers from a US KYC account and 403s from non US IPs, not viable for a public benchmark.","Mobula PM WebSocket. `wss://pm-api-prod-eu.mobula.io`. Auth via API key in the subscribe payload. Cloudflare on the gateway requires a browser User Agent on the upgrade request, default Go HTTP UA is silently filtered. Covers Polymarket today, Kalshi coverage is not yet shipped.","Codex GraphQL subscriptions. `wss://graph.codex.io/graphql` with the `graphql-transport-ws` subprotocol. Firehose `onPredictionTradesCreated` subscription filtered client side to the venue's marketIds. Covers both Polymarket and Kalshi.","Basket. Top 20 active markets by 24h volume per venue, refreshed every 5 minutes. Polymarket pulls from `gamma-api.polymarket.com`, Kalshi pulls from `api.elections.kalshi.com/trade-api/v2/markets`.","Histogram buckets: 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 30000, 60000 ms. The venue's own arrivals always land in the smallest bucket because by construction we measure other providers against it.","Region. `eu-west` (Railway europe-west4). Both venue gateways are geographically distributed; deltas reflect EU client to EU gateway latency.","Venue clock asymmetry. Polymarket CLOB trades carry no venue timestamp so T0 is when our harness receives the WS event; the Polymarket-to-harness RTT cancels inside the Codex delta. Kalshi's REST `create_date` is venue-side so the Codex Kalshi delta includes a Codex-to-harness RTT (50 to 100 ms) the Polymarket math cancels out. Kalshi rows are slightly stricter for the same provider, not more favorable; the gap is small versus the multi-second deltas the chart highlights."],"license":"CC-BY-4.0"}