{"slug":"pm-rate-limits","title":"Prediction market API rate limits, tested with a daily ramp","subtitle":"Warm latency on book, price and list endpoints of eight prediction market venue APIs, plus a daily rate limit ramp that records added latency and throttle onset per request tier.","category":"Trading","metric":"Warm book latency","unit":"ms","status":"live","higherIsBetter":false,"filters":null,"value":94.6517,"leader":{"name":"Limitless","slug":"limitless","value":94.6517},"rankings":[{"name":"Limitless","slug":"limitless","ms":{"p50":94.6517,"p90":361.678,"p99":595.825,"mean":187.551},"successRate":99.9981,"sampleSize":51838},{"name":"Polymarket","slug":"polymarket","ms":{"p50":200.356,"p90":240.64,"p99":249.704,"mean":179.455},"successRate":99.9981,"sampleSize":51831.4},{"name":"Kalshi","slug":"kalshi","ms":{"p50":288.176,"p90":381.067,"p99":494.785,"mean":258.268},"successRate":99.9826,"sampleSize":51834},{"name":"Myriad","slug":"myriad","ms":{"p50":495.998,"p90":1199.41,"p99":3025.77,"mean":619.221},"successRate":99.27040000000001,"sampleSize":51684.9},{"name":"Manifold","slug":"manifold","ms":{"p50":800.013,"p90":2100.01,"p99":2460,"mean":863.505},"successRate":100,"sampleSize":37022.2}],"sparkline":[94.7143,94.8158,94.6682,94.4634,94.4495,94.4669,94.3575,94.1506,94.0556,94.0468,94.0198,93.9661,94.0691,94.169,94.178,94.0556,93.8552,93.6331,93.6632,93.8024,94.137,94.2328,94.1098,94.0691,93.9883,94.0421,94.0018,94.1643,94.1506,94.3019,93.8817,94.0152,94.5545,94.8578,94.9167,94.3157,94.0691,94.1234,94.3714,94.7412,94.5545,94.2742,94.0018,94.1643,94.2742,94.6978,94.6546,94.6402,94.4274,94.4134,94.6259,94.7412,94.8725,94.5973,94.7267,94.6259,94.8432,94.6116,94.4696,94.4978,94.7848,95.1707,95.6509,96.4756,97.7282,98.7312,98.7522,97.4249,96.666,96.0223,95.9567,95.4312,95.0461],"sampleSize":261490.59999999998,"asOf":"2026-08-14T16:30:17.367Z","headline":"Limitless leads warm book latency at 95 ms (p50, 24h) on Prediction market API rate limits, tested with a daily ramp.","quote":"Limitless leads warm book latency at 95 ms (p50, 24h) on Prediction market API rate limits, tested with a daily ramp. Source: OpenChainBench (https://openchainbench.com/benchmarks/pm-rate-limits).","cite":{"plain":"OpenChainBench. \"Prediction market API rate limits, tested with a daily ramp\". Retrieved 2026-08-14. https://openchainbench.com/benchmarks/pm-rate-limits","bibtex":"@misc{ocb_pm_rate_limits,\n  author = {OpenChainBench},\n  title  = {Prediction market API rate limits, tested with a daily ramp},\n  year   = {2026},\n  url    = {https://openchainbench.com/benchmarks/pm-rate-limits},\n  note   = {Retrieved 2026-08-14}\n}","apa":"OpenChainBench. (2026). Prediction market API rate limits, tested with a daily ramp. Retrieved August 14, 2026, from https://openchainbench.com/benchmarks/pm-rate-limits","ris":"TY  - GEN\r\nAU  - OpenChainBench\r\nTI  - Prediction market API rate limits, tested with a daily ramp\r\nPY  - 2026\r\nUR  - https://openchainbench.com/benchmarks/pm-rate-limits\r\nY2  - 2026-08-14\r\nER  - \r\n"},"pageUrl":"https://openchainbench.com/benchmarks/pm-rate-limits","ogImage":"https://openchainbench.com/api/og/pm-rate-limits","source":"https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/pm-rate-limits","methodology":["Endpoint classes per venue. Polymarket: CLOB `/book`, `/midpoint`, Gamma `/markets`. Kalshi: `/markets/{ticker}/orderbook`, `/markets/{ticker}`, `/markets`. Limitless: `/markets/{slug}/orderbook`, `/markets/{slug}`, `/markets/active`. Manifold: `/v0/bets`, `/v0/market/{id}`, `/v0/markets`. Myriad, PredictIt, Metaculus: price and list only (no order book). Smarkets: `/v3/markets/{id}/quotes/`, `/v3/markets/{id}/`, `/v3/events/`.","Pinned market per venue: most liquid, near the money (price between 0.15 and 0.85), expiring more than 24h out. Re pinned daily at 00:00 UTC and immediately on probe_invalid. A degenerate 0.99 book has a latency profile that does not represent real usage.","Warm probes every 5s (7s on Manifold, whose entire API sits behind max-age=5 plus stale-while-revalidate=10; tighter spacing would only measure the cache). Cold connect probe once per minute with keep alives disabled, TCP plus TLS handshake recorded separately.","Every sample records a cache flag from cf-cache-status, x-cache and age headers. Kalshi's market list is served from CloudFront with max-age=15, so its list latency measures the edge, not the API. Edge served samples (cache=hit) are excluded from every latency aggregate and reported through the cache label, so no venue ranks on its CDN.","Outcome classification: ok, timeout (8s), http_4xx, http_5xx, throttled (429), probe_invalid, net_error. Latency aggregates include successful requests only; failures count toward the success rate. probe_invalid covers stale pins, e.g. Limitless serves a CDN cached 400 for four hours once a market expires. Those are our fault, never the venue's.","Daily ramp: 60s per tier at rising requests per 10s window against the book endpoint, one venue at a time, one region at a time on disjoint UTC hours (02:00 us-east, 04:00 eu-west, 06:00 sgp).","Ramp tiers: Polymarket + Kalshi 25/50/100 per 10s, Manifold 15/30/60, Limitless 10/20/40, Smarkets 10/25/50, Metaculus 5/10/20. Kalshi stops at first 429 (documented token bucket). Myriad excluded (keyless budget 30/10s). PredictIt excluded (5 req/min published limit).","Ramp abort guard: the run stops the moment throttled plus 5xx responses exceed 1 percent of any 10 second window. The headline ramp metric is p50 latency during the tier minus the warm baseline p50 of the previous hour in the same region, because venues behind Cloudflare queue bursts without ever returning 429, and added latency is the only honest throttle signal there.","WebSocket panel covers venues with a public market WebSocket, which today means Polymarket only. Kalshi requires authentication for WS, Manifold and Myriad have none, Limitless uses socket.io. Absence is shown, not penalized.","Myriad's origin is a single region US East deployment behind Heroku. Latency from eu-west and sgp is geography, reported as measured.","All probes hit documented public developer APIs with the identifying User-Agent `OpenChainBench/1.0 (+https://openchainbench.com/methodology; contact@openchainbench.com)`. We publish latency measurements only, never order book contents or prices, in line with venue data redistribution terms (Kalshi's in particular, applied to all venues equally).","Regions: us-east, eu-west, sgp (Railway). Histogram buckets 25ms to 10s."],"license":"CC-BY-4.0"}