Data API — use OddsBench in your site or AI agent
Machine-readable, free, no key, no signup. Licensed CC BY 4.0 — attribution required.
The one URL:
Always the newest published run. Same file every month, same shape. Historical runs keep their own files:
https://oddsbench.xyz/data/latest.jsonAlways the newest published run. Same file every month, same shape. Historical runs keep their own files:
/data/2026-09.json, /data/2026-08.json, /data/2026-07.json (+ .csv each). A machine-readable summary of every page is also at /llms.txt.
Give this to your AI builder
The fastest way to wire it up: paste this brief into whatever agent builds your site. It contains everything — endpoint, field meanings, layout, caching, license notice.
Add a live "OddsBench" section to my website that always shows the current benchmark data without me updating anything.
1. Fetch JSON from this URL: https://oddsbench.xyz/data/latest.json (no key needed; works from any site; the file always points at the newest published run).
2. The file has a "providers" array. Each provider has: "vendor" (name), "product", "protocol", "sportsbook" (which book it covers), "us_east.lcd_ms" (array [p50, p95] = line-change latency in ms), "us_east.err_pct" (error %), "unlimited_realtime_push_usd_month" (USD/month, null if not published), "value_score_us_east" (lower = better), "try_without_signup" (true/false). EU figures use the same shape under "eu_central".
3. Display a table sorted by "value_score_us_east" ascending, columns: Rank, Vendor, Product, Covers, p95 latency (ms), Price (USD/mo or "\u2014"). Title it "Fastest & best-value odds APIs (OddsBench, <run field> run)". Link the title to https://oddsbench.xyz/ and credit: "Data: OddsBench (CC BY 4.0)" — that credit is required by the license.
4. Fetch it server-side once every 24 hours, cache the result, and render the cached copy. If the fetch fails, keep showing the last successful data.
5. Don't hardcode any numbers — everything comes from the JSON.
Archive: every frozen run is at https://oddsbench.xyz/data/<run>.json and <run>.csv (one per month; the runs changelist lives at https://oddsbench.xyz/runs/). Schema notes and caveats: https://oddsbench.xyz/methodology/.
Fields you'll use
| Field | Where | Meaning |
|---|---|---|
provider | vendor, product, protocol, sportsbook | who and what |
latency | us_east.lcd_ms = [p50, p95] (ms), also eu_central.lcd_ms | line-change latency — lower is better |
errors | us_east.err_pct | timeouts + 5xx + malformed + missed, % |
price | unlimited_realtime_push_usd_month | USD/month for the cheapest self-serve unlimited real-time plan; null = none published |
value | value_score_us_east (also ..._eu_central) | p95 x price / 1000 — lower is better; null when no price |
signup | try_without_signup | true = returns live odds from a public demo key, no account |
Rules
- Attribution is mandatory. Cite: "OddsBench, Sports Odds API Latency Benchmark, September 2026, https://oddsbench.xyz — CC BY 4.0", as a link near the data.
- Don't cache harder than daily. The benchmark is monthly, so hourly polls gain nothing; a 24 h server-side cache with stale-on-error is the integration we guarantee to keep working.
- Null means something. A null price means the vendor publishes no compliant unlimited real-time plan — show "—" and don't substitute a guess. Value scores are null for the same rows.
- Skip, don't render, rows whose numbers you don't need — the file covers every measured provider and isn't sized for one use case.
- Don't scrape HTML pages. The JSON is the stable contract; page layouts can change.
Stability
Field names in latest.json are the API. Additions are possible; breaking removals or renames will be announced in the runs changelog at https://oddsbench.xyz/runs/ one month before they land. If your integration needs a hard guarantee, write [email protected].