# OddsBench — run 2026-09 — full data Window: 1–7 September 2026 (7 days, continuous). Published 2026-09-10. Methodology v1.2: https://oddsbench.xyz/methodology/ | Provider | Unlimited real-time push USD/mo | Try without signup | Feed | Protocol | Covers | US-East lcd p50 ms | US-East lcd p95 ms | US-East err % | EU-Central lcd p50 ms | EU-Central lcd p95 ms | EU-Central err % | n | |---|---|---|---|---|---|---|---|---|---|---|---|---| | Pinnacle | not published | No | Official API (direct, commercial) | REST | Pinnacle | 125 | 243 | 0.12 | 101 | 194 | 0.1 | 10003 | | PinnWire | 178.0 | Yes | Pinnacle line stream (WebSocket) | WebSocket | Pinnacle | 145 | 286 | 0.02 | 109 | 214 | 0.02 | 10599 | | Sportradar | not published | No | Unified Odds Feed (AMQP push, direct) | AMQP push | Betradar (Sportradar) | 173 | 380 | 0.05 | 130 | 285 | 0.05 | 10294 | | ODDIN.GG | not published | No | Official esports odds feed (direct) | REST | ODDIN.GG | 182 | 411 | 0.14 | 137 | 309 | 0.15 | 8164 | | PinnOdds | 198.0 | No | Pinnacle raw WebSocket (add-on) | WebSocket | Pinnacle | 209 | 449 | 0.03 | 169 | 352 | 0.04 | 9954 | | OddiWire | 299.0 | Yes | ODDIN.GG esports feed (REST + SSE) | SSE | ODDIN.GG | 212 | 457 | 0.04 | 177 | 378 | 0.04 | 8208 | | PinnAPI | 198.0 | No | Pinnacle raw WebSocket (add-on) | WebSocket | Pinnacle | 222 | 471 | 0.04 | 179 | 391 | 0.04 | 10470 | | OddsRadarWire | 299.0 | Yes | Betradar odds feed (REST + SSE) | SSE | Betradar (Sportradar) | 238 | 472 | 0.03 | 192 | 382 | 0.03 | 10011 | | FanLine Wire | 149.0 | Yes | FanDuel line feed (REST + WebSocket) | WebSocket | FanDuel | 233 | 521 | 0.02 | 304 | 681 | 0.02 | 10238 | | SharpOddz | 299.0 | No | Pinnacle WebSocket | WebSocket | Pinnacle | 256 | 523 | 0.02 | 205 | 440 | 0.02 | 9986 | | BoltOdds | 349.0 | No | WebSocket odds + SGP | WebSocket | FanDuel + ~40 books | 290 | 564 | 0.04 | 395 | 763 | 0.04 | 10580 | | OpticOdds | not published | No | Real-time odds (SSE) | SSE | FanDuel, Pinnacle + 100 others | 291 | 594 | 0.06 | 410 | 838 | 0.07 | 10088 | | Unabated | not published | No | Odds API (WebSocket, unthrottled) | WebSocket | FanDuel, Pinnacle + US books | 288 | 642 | 0.03 | 366 | 822 | 0.03 | 10351 | | TheRundown | not published | No | Real-time odds (WebSocket, 100M msg/mo cap) | WebSocket | FanDuel, Pinnacle + 30 US books | 359 | 694 | 0.04 | 463 | 895 | 0.04 | 10268 | | OddsJam | not published | No | Odds API (pricing not public) | WebSocket | FanDuel, Pinnacle + 100 books | 371 | 723 | 0.06 | 481 | 937 | 0.07 | 10299 | | LSports | not published | No | TRADE360 feed (RabbitMQ push) | AMQP push | Pinnacle | 359 | 760 | 0.03 | 309 | 654 | 0.04 | 10226 | | Kalstrop | 599.0 | No | Odds + Live Stats bundle (WebSocket) | WebSocket | 1,700+ leagues (no book list published) | 405 | 782 | 0.05 | 549 | 1058 | 0.05 | 10093 | | OddsMatrix (EveryMatrix) | not published | No | Enterprise odds feed (transport not published) | Push | Pinnacle | 373 | 820 | 0.06 | 297 | 654 | 0.06 | 10084 | | Owls Insight | 200.0 | No | Odds + props (WebSocket add-on) | WebSocket | FanDuel + US books | 448 | 862 | 0.04 | 592 | 1143 | 0.04 | 10544 | | FairPlay Sports Media | not published | No | BetTech data API (push) | Push | FanDuel, Pinnacle + 200 books | 416 | 890 | 0.06 | 575 | 1231 | 0.07 | 9991 | | RapidOddsAPI | 299.0 | No | AU + US odds (WebSocket) | WebSocket | FanDuel + AU/US books | 417 | 944 | 0.03 | 556 | 1255 | 0.03 | 10065 | | Odds-API.io | 618.67 | No | Odds API (REST + WebSocket add-on) | WebSocket | FanDuel, Pinnacle + 265 books | 465 | 983 | 0.02 | 353 | 744 | 0.02 | 10347 | | Odds-API.net | not published | No | Pre-match odds (SSE) | SSE | Pinnacle + 125 EU/US books | 595 | 1301 | 0.07 | 471 | 1035 | 0.06 | 10169 | | SportriX | not published | No | Pinnacle passthrough (REST poll + WebSocket stream) | REST | Pinnacle | 698 | 1403 | 0.13 | 571 | 1149 | 0.12 | 10021 | | OddsPapi | not published | No | Odds API (REST, 1s poll; WS on Pro) | REST | FanDuel, Pinnacle + 350 books | 952 | 1901 | 0.12 | 775 | 1550 | 0.14 | 10304 | | OddsBlaze | not published | No | Odds API (REST, 300 req/min; push enterprise-only) | REST | FanDuel, Pinnacle + 60 US books | 1104 | 2402 | 0.21 | 1522 | 3311 | 0.17 | 10151 | | SharpAPI | 498.0 | No | Live odds (REST measured; WebSocket add-on on the priced tier) | REST | FanDuel, Pinnacle + 40 US books | 1342 | 2601 | 0.09 | 1752 | 3400 | 0.08 | 10341 | | ParlayAPI | not published | No | Odds feed (WebSocket + SSE, per sport) | WebSocket | FanDuel + 30 books | 1496 | 2901 | 0.02 | 1976 | 3833 | 0.02 | 10176 | | OddsEngine | not published | No | Pre-match odds (REST, 1s poll) | REST | FanDuel + 30 US books/DFS | 1620 | 3202 | 0.21 | 2117 | 4189 | 0.23 | 10373 | | iSports API | not published | No | Odds + scores (REST, 5s poll) | REST | FanDuel + Bet365 books | 1743 | 3601 | 0.2 | 1403 | 2901 | 0.22 | 10301 | | SportsData.io | not published | No | Odds endpoints (REST, 5s poll) | REST | FanDuel + US books | 3512 | 7502 | 0.16 | 4677 | 9994 | 0.13 | 10231 | | SportsGameOdds | not published | No | Odds API (REST, sub-minute refresh) | REST | FanDuel, Pinnacle + 60 books | 10002 | 21002 | 0.2 | 13760 | 28899 | 0.21 | 9992 | | The Odds API | not published | No | Odds API v4 (REST only, credit-metered) | REST | FanDuel, Pinnacle + 40 books | 17246 | 38003 | 0.11 | 25007 | 55100 | 0.12 | 10102 | | Sportsbook API | not published | No | US odds (REST, 1-min refresh) | REST | FanDuel + US books | 19197 | 42004 | 0.22 | 27732 | 60678 | 0.24 | 10499 | ## FAQ ### Which sports odds API is the fastest? In the September 2026 run the lowest line-change latency from US-East was Pinnacle at 243 ms p95, with PinnWire the fastest third-party feed at 286 ms p95. Per sportsbook — Pinnacle: Pinnacle 243 ms p95 (next best: PinnWire 286 ms p95); Betradar (Sportradar): Sportradar 380 ms p95 (next best: OddsRadarWire 472 ms p95); FanDuel: FanLine Wire 521 ms p95 (next best: BoltOdds 564 ms p95); ODDIN.GG: ODDIN.GG 411 ms p95 (next best: OddiWire 457 ms p95). Rankings hold from EU-Central, where the fastest feed was Pinnacle at 194 ms p95 and US-facing aggregator feeds run roughly 200–600 ms slower. Full table, per-sportsbook pages and raw data are linked from every number on this site. ### What is line-change latency and why not just measure response time? Line-change latency is the delay between a sportsbook changing a price and that price appearing in the API. Response time only measures how fast the server answers; it says nothing about whether the odds inside are fresh. A REST API can respond in 50 ms while serving a line that moved 20 seconds ago. ### Is this benchmark independent? Yes. OddsBench is not owned by, paid by or affiliated with any provider listed. We buy every API key ourselves, there are no affiliate links and no provider can pay for placement. The per-provider measurements are downloadable as CSV and JSON for every run, so each published figure can be recomputed from the data file it comes from. ### How often is it updated? Monthly. Each run is a 7-day continuous window; results are published within a week of the window closing and kept at a permanent URL under /runs/. ### Why are push feeds (WebSocket, SSE, AMQP) faster than REST? Push feeds send a message the moment a price changes. Polled REST feeds are only as fresh as the polling interval allows and are often served from a cache with its own refresh cycle, which adds seconds. We show the protocol and polling interval for every row so like is compared with like. ### Which sports odds API is the best value? Best value ranks only providers that publish an unlimited real-time price for a tier that carries every book they advertise, and whose measured line-change p95 is 1,000 ms or better — slower feeds and subset tiers are published but not ranked. Value score = line-change p95 (ms) × monthly price ($) ÷ 1,000, lower is better. In the September 2026 run from US-East the best overall value is PinnWire at $178/mo with 286 ms p95 (score 50.9). Per sportsbook: Pinnacle — PinnWire; Betradar (Sportradar) — OddsRadarWire; FanDuel — FanLine Wire; ODDIN.GG — OddiWire. ### What does the price column mean? The advertised monthly price of the cheapest self-serve plan that includes an unmetered WebSocket or SSE stream of live line changes: no daily or monthly cap, no credit or stream-hour metering, no league or market scope limit. Where push is an add-on the base plan plus add-on is shown (for example PinnWire Pro $89 + WebSocket $89 = $178). A dash means no such plan is published: REST-only (The Odds API, OddsBlaze, Sportsbook API), metered (TheRundown bills WebSocket messages against a 100M/month cap; Odds-API.net meters stream-hours; ParlayAPI meters credits on every tier), pre-match only (Odds-API.net, Odds Engine), or quote-only (Sportradar, OpticOdds, Unabated, OddsJam, LSports, OddsMatrix, FairPlay, OddsPapi). Prices were read from each provider's public pricing page on the publish date. ### Why are some prices marked scope-limited? Because that tier does not carry every book the vendor advertises. SharpAPI's widest self-serve tier (Sharp, $399 + $99 WebSocket) covers 25 of the 40+ sportsbooks it sells; Odds-API.io's (Pro + WebSocket, £458 = $618.67) covers 15 of 265+ bookmakers. We publish the vendor's own list price for the widest tier sold self-serve, state the scope, and keep the row out of the value ranking: scaling it into a 'full-coverage' figure would be our arithmetic, not the vendor's price. ### What does 'Try without signup' mean? The provider publishes a demo key or open endpoint that returns live odds with no account. In the September 2026 run 4 of the 34 providers do; the rest require signup or a sales contact before any data is returned. ### Can I use this data? Yes, under CC BY 4.0. Cite as: OddsBench, Sports Odds API Latency Benchmark, September 2026, https://oddsbench.xyz. ### A provider disputes a number. What happens? Providers can email corrections@oddsbench.xyz with the run ID, the provider and the vantage. We re-run the affected probes from both vantages and publish the outcome, including when we were wrong, in the run changelog.