Polymarket WebSocket latency, live connection and update speed from 3 regions
Polymarket leads ws connect to snapshot at 2.02 s (p50, 24h) on Polymarket WebSocket latency, live connection and update speed from 3 regions. Time from WebSocket dial to first market snapshot plus inter-message update rate on the Polymarket CLOB feed, probed from three regions 24 hours a day.
TL;DR. As of , Polymarket leads ws connect to snapshot at 2.02 s (p50, 24h) on Polymarket WebSocket latency, live connection and update speed from 3 regions. Source: OpenChainBench, https://openchainbench.com/benchmarks/pm-ws-latency.
Read this carefully
Connect-to-snapshot includes Cloudflare edge latency and routing from each probe region. Numbers vary with network conditions and market activity. This bench measures observed end-to-end startup time, not venue-side processing time alone.
REST polling tells you how fast a venue answers one request. WebSocket latency tells you how fast live market data reaches your process after you connect, which is the number that matters for bots watching fills, dashboards streaming odds and arbitrage strategies reacting to price changes. Polymarket is the only major prediction market venue with a public, no-auth WebSocket feed on its CLOB. This bench connects from three regions, measures how long the dial-to-first-snapshot takes, and records how often the feed delivers updates so you know both the startup cost and the steady-state data velocity. The other venues in the cohort are REST-only by design or require authentication not viable for a public benchmark, noted in the per-venue section below.
Methodology
A persistent WebSocket client runs in each of three Railway regions (us-east, eu-west, sgp) against the Polymarket CLOB feed at wss://ws-subscriptions-clob.polymarket.com/ws/market. The client subscribes to a pinned high-volume market, sends a literal PING every 10 seconds for keepalive, and records two histograms: the time from dial start to receiving the first non-PONG data frame (connect-to-snapshot), and the time between consecutive data frames once the feed is streaming (inter-arrival). A PING keepalive goroutine detects stale connections and reconnects, so the process also records disconnect counts. All three histograms export to Prometheus every scrape interval. The headline metric is connect-to-snapshot p50 across all three regions, which is the startup latency a new subscriber pays to go from nothing to live market data.
Frequently asked
How fast does the Polymarket WebSocket connect?
The harness currently records 2.02 s p50 connect-to-snapshot (24h, all regions). This is the time from dial start to receiving the first data frame on the market subscription, covering TCP connection, TLS handshake, the HTTP upgrade to WebSocket and the venue delivering the initial snapshot. It is the startup cost a new subscriber pays before live data starts arriving.
Does Kalshi have a public WebSocket?
Kalshi has a WebSocket API at wss://api.elections.kalshi.com/trade-api/ws/v2 that requires RSA-PSS-SHA256 signed authentication headers from a US KYC-verified account. The us-east probe node connects with a keyed account and is measured on this bench. The eu-west and sgp probe nodes return 403 even with valid credentials, so Kalshi's rank matrix entry reflects us-east latency only, not a three-region average. If you are building a US-hosted system with Kalshi credentials, the connection and subscription pattern uses standard JSON framing after the auth headers are computed.
Why is Limitless not on this benchmark?
Limitless uses socket.io over HTTP long-polling rather than a standard WebSocket. Socket.io uses a custom framing protocol on top of the transport and is not directly comparable to a native WebSocket connection. It is excluded here to keep the comparison honest. Limitless REST latency is measured in pm-api-latency.
What is inter-arrival time and why does it matter?
Inter-arrival is the time between consecutive data frames on an active WebSocket session. A short inter-arrival (say, 200ms) means the feed pushes an update roughly 5 times per second on an active market. A long inter-arrival (2s) means updates are sparse and your subscriber will lag behind price moves if it relies on the feed alone. The inter-arrival panel below shows the live p50 and p90 so you can see both the typical case and the tail.
How often does the Polymarket WebSocket disconnect?
The harness tracks disconnects per region. Under normal conditions the feed is stable and reconnects are rare. The disconnect counter panel below shows any spikes. When a disconnect happens, the harness reconnects immediately with exponential backoff (5s initial, capped at 30s), so brief interruptions are recovered automatically.
Source code github.com/ChainBench/OpenChainBench/tree/main/harnesses/pm-rate-limits