Skip to content

Odditt API Review 2026

A look at Odditt's historical odds data: pre-match and in-play prices joined to score and clock, from multiple books across five sports, sold as a custom backfill with free samples on request.

Odditt at a Glance

Odditt Logo
Odditt
Custom quote
Paid Only
Live Scores Play-by-Play Box Scores Stats Schedules Standings Rosters Historical Websocket MCP Discord

Green = available · amber = unverified or varies by plan · crossed out = not available. Pricing: 💲 ≈ $20/mo up to 💲💲💲💲💲 = $1,000+/mo. From our directory research.

What Odditt Is

Odditt is a sports data company with a historical odds product built for modeling. You get pre-match and in-play odds as a time series, and each snapshot carries the score, period and clock at that moment. The price and the game situation arrive already joined, and that join is the slow part of building your own archive.

Depth is the headline. Odditt's historical odds page lists up to 10 years of odds, with basketball back to 2016, and stats and results since 2000 in all five sports. The same page names Amelco, a trading and sportsbook technology supplier, as a buyer of the data for model testing.

Historical odds is one product in a wider business API. The platform also serves upcoming odds, statistical trends, hosted widgets and parlay content to sportsbooks, prediction markets and daily fantasy platforms. This review sticks to the historical data, because that's what a developer or a quant team comes here to buy.

Coverage: Sports, Leagues and Books

The league coverage page listed 129 active leagues across five sports when we checked in November 2026:

  • Soccer: 69 leagues, including the Premier League, La Liga, Serie A, Ligue 1 and MLS.
  • Basketball: 46 leagues, including the NBA, WNBA, NCAA men's and women's, and the EuroLeague.
  • Ice hockey: 8 leagues, including the NHL, KHL and SHL.
  • Baseball: MLB, NPB and KBO.
  • American football: the NFL, NCAAF and CFL.

Odds are multi-book on all five sports, pre-match and in-play, and synced to game state. Depth varies by sport. Odditt gives rough counts of 25+ books in basketball, 20+ in soccer, 10+ in MLB and the NHL, and about 8 in the NFL and college football.

The mix runs across sharp, Asian, European and UK regulated, offshore and some US regulated books, plus exchanges on some sports. The book list itself isn't public. If your model depends on one specific book, ask before you commit to a backfill.

Price and Game State in One Record

A record gives you four things, so you can model against it without stitching feeds together:

  • The lines: moneyline, spread and totals, for the full game and for periods such as halves, quarters and sets.
  • The game state: score, period and clock on each snapshot.
  • The full path: pre-match lines, the closing line before tip-off and the in-play sequence, so you see far more than open and close.
  • The source: each line carries a tag for the book it came from.

Delivery is plain. GET /v1/historical/events finds event IDs, with filters for sport, league, team and date range. Then one call per event returns the history, and the path extension picks the format: GET /v1/historical/odds/{event_id}.csv or .json. Responses carry an ETag, so a repeat pull of an unchanged game ends in a 304, and Range requests let you resume a large file.

Odditt tells us that a one-game NBA sample runs to about 3,000 rows across 18 books, which gives a feel for the size of a single game. Flags for the sharp book and the widest-coverage book in each league sit outside the standard schema. Odditt sets those up through custom schemas for some clients, so raise it early if you want them.

Odditt Pricing and Free Samples

Odditt quotes each buyer on the coverage they want, so there's no public price list. A deal has two parts: a one-time backfill priced to the sports, leagues and depth you take, and an optional monthly subscription that keeps the series current, as often as daily. You can start with one sport and add the rest later.

There's no free tier and no trial key. Odditt shares free sample files on request instead, and for a dataset that's the better test. A CSV you load into your own pipeline shows coverage gaps faster than a week of test calls would.

Historical odds is licensed apart from the core API. If a historical endpoint returns 403, your plan doesn't include it yet, and your Odditt contact can add it.

Getting an API Key

There's no self-serve sign-up. The Odditt team issues keys at onboarding, and you start by asking for a sample or a demo through the demo form. It asks for your name, email, company and company type (checked November 2026). Odditt says provisioning completes within a business day in most cases, once it has what it needs from you.

Keys show once at issuance, so store yours when it arrives. You get a production key, plus a sandbox key where your onboarding includes one. Send the key in the X-API-Key header on each request. For production, the docs also describe swapping it for a short-lived JWT at POST /v1/auth/login, or logging in with OAuth client credentials, so the key travels less often.

A First Request in Python

This sample lists sports with GET /v1/references/sports on api.odditt.com, from the docs, checked November 2026. We haven't run it, because we don't hold a key.

import os

import requests

resp = requests.get(
    "https://api.odditt.com/v1/references/sports",
    headers={"X-API-Key": os.environ["ODDITT_API_KEY"]},
    timeout=30,
)
resp.raise_for_status()

for sport in resp.json()["records"]:
    print(sport["id"], sport["name"], sport["external_key"])

The response is a paginated list in records, and each sport has id, name, external_key and is_active. Those IDs feed the sport_id filter on GET /v1/historical/events. From there, one call to GET /v1/historical/odds/{event_id}.csv pulls a game's history.

Rate Limits, Docs and SDKs

The default limits are 60 requests a minute, 1,000 an hour and 10,000 a day, counted per client. Your account tier can change them. Go over any window and you get HTTP 429 with {"error": "rate limit exceeded"}. List endpoints take page and page_size, and GET /v1/historical/events returns up to 100 events a page.

The developer docs are public, with an OpenAPI definition on each reference page and a plain-text index at llms.txt. Official MIT-licensed clients cover TypeScript, Python, Go, Java, Kotlin, Swift, Dart, Ruby, PHP, Rust and Elixir, under Odditt-Betflow on GitHub. We didn't find a public changelog or status page. Support runs through the contact Odditt assigns you at onboarding.

Who Odditt Is For

The buyers here want a dataset to learn from, and a few jobs fit it well:

  • Quant and modeling teams training on price, game state and outcome in one table.
  • In-play modelers calibrating live pricing against score and clock.
  • Closing line value researchers measuring how lines move from open to close and where books disagree.
  • Operators and trading teams standing up a new sport or league on data they can test first.

Custom quotes and an onboarding step point at company buyers. If you're a solo developer who wants a key today, start with a free plan from the directory and come back when your model needs this depth. Our historical odds guide covers what to compare.

What It Does Not Cover

The historical product looks backward, so it pairs well with a live feed if you run models in production. The realtime WebSocket in the docs belongs to the hosted widget, and the public API reference documents no stream for developers. Our live odds guide covers that side.

The stats and results history isn't in the public API reference either, so ask how it ships when you scope a deal. Esports sits outside the five sports. If you need that, look at the esports odds guide.

Verdict

Most odds archives stop at prices. Odditt ties each price to the score and clock, and for in-play modeling that's the part you'd otherwise build yourself. Ten years of basketball history and a CSV that loads straight into a warehouse make it a serious option for teams that train on data.

We wrote this review from the public docs and from Odditt's answers to our questions. We haven't tested a key or loaded a sample file yet. Ask for a sample in your sport, check the book depth and the snapshot frequency, and then talk price.

Last updated: · How providers get listed

Frequently Asked Questions

No. Odditt has no free plan and no trial key, and pricing is a custom quote. It shares free sample files on request, so you can load real data before you talk price.
Odditt lists up to 10 years of pre-match and in-play odds, with basketball back to 2016. Its site also lists stats and results since 2000 in all five sports.
Odditt doesn't publish its book list. It describes multi-book coverage, pre-match and in-play, synced to game state, with rough counts of 25+ books in basketball, 20+ in soccer, 10+ in MLB and the NHL, and about 8 in the NFL and college football. The mix includes sharp, Asian, European and UK regulated, offshore and some US regulated books.
JSON or CSV by API. One call per event returns the history, and the path extension picks the format. Each snapshot carries the score, period and clock at that moment.
Odditt prices each deal to scope: a one-time backfill for the sports, leagues and depth you take, plus an optional monthly subscription that refreshes the data as often as daily. It publishes no price list.
Its historical product covers past in-play odds. The public API reference documents an upcoming odds endpoint and no stream for developers, and the realtime feed in the docs belongs to the hosted widget. Ask Odditt if you need in-play prices in production.
Ask through the demo form on the Odditt site. There's no self-serve sign-up, and the team issues keys at onboarding. Keys show once, so store yours when it arrives, then send it in the X-API-Key header. Historical odds is licensed apart from the core API.
The defaults are 60 requests a minute, 1,000 an hour and 10,000 a day, counted per client, and your account tier can change them. Over any window, the API returns HTTP 429 with the error "rate limit exceeded".

Odditt Alternatives

Similar providers from the directory worth shortlisting alongside Odditt.

Want to see the data first?

Odditt shares free sample files on request. Ask for your sport, load the file, and check it against your model before you talk about a backfill.

Are You the Team Behind Odditt?

Show developers you're independently listed on SportsAPIs.dev. Copy this badge onto your site. It links straight back to this profile.

Each of these works best on a reviews or "As cited on SportsAPIs.dev" page that your homepage links to, or in a testimonial strip on the homepage.

Badge

Odditt is listed on SportsAPIs.dev
<a href="https://sportsapis.dev/apis/odditt" title="Odditt on SportsAPIs.dev">
  <img src="https://sportsapis.dev/assets/images/badges/listed-on-sportsapis.svg"
       alt="Odditt is listed on SportsAPIs.dev" width="220" height="48">
</a>

Text link

<a href="https://sportsapis.dev/apis/odditt">Read the Odditt review on SportsAPIs.dev</a>

Review quote

<blockquote>
  Up to 10 years of pre-match and in-play odds, joined to score and clock.
</blockquote>
<p><a href="https://sportsapis.dev/apis/odditt">SportsAPIs.dev review</a></p>

Want a Featured Partner spot or to update your listing? Partner with us →