Backtesting data

Historical Football Odds API

Backtest football models with stored opening and last-seen odds alongside match results, team stats, player data, and xG.

Bet365, Pinnacle, Paddy Power, Betfair Sportsbook, and Kambi coverage
1X2, BTTS, totals, corners, and Asian handicap markets
Opening and last-seen prices for supported matches
Related football data endpoints for fixtures, xG, teams, and players

Quick Answer

TheStatsAPI provides stored football odds for supported matches, including opening and last-seen values where odds were captured or stored. Use this with match results and stats to backtest prediction models.

  • Endpoint: /football/matches/{match_id}/odds
  • Best for: Backtesting, CLV, model validation.
  • Availability varies by match, competition, bookmaker, and market.

At a glance

Data type
Stored opening and last-seen prices
Best use
Backtesting, CLV, model validation
Context data
Scores, match stats, xG, teams, players
Availability
Supported matches where odds were captured or stored

Why historical odds matter

A model cannot be evaluated only against final scores. Historical odds show what the market believed before the match and how prices changed between opening and last-seen values. That makes them essential for realistic betting analytics.

  • Compare model probability to market probability
  • Measure whether picks beat the closing price
  • Separate predictive skill from lucky outcomes

Backtesting workflow

Pull finished matches, fetch their odds, convert odds to implied probabilities, then join that data with match results and statistics. This gives you a clean dataset for model evaluation.

  • Fetch matches by competition and season
  • Join odds by match_id
  • Calculate implied probability and CLV
Endpoint

Historical odds response

Odds responses stay focused on bookmaker prices. Match context comes from related football endpoints, so your app can join odds to fixtures, results, xG, team stats, and player data by match ID.

football odds history APIhistorical betting odds APIodds backtesting API
REST JSON
GET https://api.thestatsapi.com/api/football/matches/{match_id}/odds
Authorization: Bearer YOUR_API_KEY

{
  "data": {
    "match_id": "mt_14502",
    "bookmakers": [
      {
        "bookmaker": "Pinnacle",
        "markets": {
          "match_odds": {
            "home": { "opening": "2.150", "last_seen": "2.080" },
            "draw": { "opening": "3.400", "last_seen": "3.500" },
            "away": { "opening": "3.200", "last_seen": "3.300" }
          },
          "total_goals": {
            "over": { "opening": "1.890", "last_seen": "1.900" },
            "under": { "opening": "1.930", "last_seen": "1.920" }
          }
        }
      }
    ]
  }
}

Coverage, bookmakers & update frequency

Bookmakers

Bet365PinnaclePaddy PowerBetfair SportsbookKambi

Markets

1X2 / Match oddsOver/Under totalsBoth teams to scoreAsian handicapCornersDraw no bet

Live vs pre-match & latency

Pre-match oddsAvailable before kickoff
Live / in-play oddsRealtime where live_odds_available
Opening pricesStored where captured
Last-seen / closingLatest stored pre-kickoff price
Historical oddsSupported finished matches
Update frequencyIn-play updates on price change
FAQ

Frequently Asked Questions

Can I use TheStatsAPI for odds backtesting?

Yes. Stored opening and last-seen odds can be joined with match results and statistics for supported matches.

Does historical odds coverage vary?

Yes. Odds availability depends on the match, competition, bookmaker, and whether odds were captured or stored.

Do I need another API for match results?

No. TheStatsAPI also provides fixture, match result, match stats, player, team, and xG endpoints.

Pricing_Plans

Simple, Transparent Pricing

Odds across multiple sports — events, latest odds, and fair prices.

Starter

$50/month

For prototypes and early odds-driven products

Included in every odds plan:

  • Pre-match & live odds across multiple sports
  • Sports, leagues & events reference endpoints
  • Latest odds snapshots (moneyline, spread, totals)
  • 100,000 requests/month
  • 120 requests/min
  • Email & chat support
Most Popular

Growth

$129/month

For production apps consuming live odds

Everything in Starter, plus:

  • 500,000 requests/month
  • 300 requests/min
  • Full odds movement history (price timeline per match)
  • Priority support for production teams

Scale

$379/month

For high-volume, production-grade odds usage

Everything in Growth, upgraded to:

  • 5,000,000 requests/month
  • 1,000 requests/min
  • Dedicated support & SLA
Cancel anytime
7-day free trial on all plans

Build with football odds and match context in one API.

Start a 7-day free trial with odds, fixtures, match stats, player data, team data, and xG endpoints available on every plan.