The Odds API

App · Sports · 8 actions

Read live sports betting odds from around 95 bookmakers, exchanges and daily-fantasy sites across nine regions. List the leagues and their fixtures, price a whole league or a single game in any market from moneylines to player props, find which bookmaker is paying the most on each outcome, and follow live scores and final results. Every action reports what it cost and how many usage credits are left, and every action works on the free plan.

Actions

ActionWhat it does
Find the best oddsFor each outcome in a league, the best price on offer and the bookmaker paying it.
Get oddsGet bookmaker odds for every upcoming and live game in a league: head to head, spreads, totals and outrights.
Get odds for one gameGet odds for a single game in any market The Odds API supports: player props, alternate lines, quarters, halves and periods included.
Get scoresGet live, upcoming and recently completed games with their scores, refreshed about every 30 seconds.
List a game's marketsList the markets each bookmaker is currently offering on one game.
List gamesList a league's upcoming and in-play games with their ids, teams and start times: no odds, and no credits.
List sportsList every sport and league The Odds API covers, with the key each other action needs.
List teams and playersList every participant in a league: the teams in a team sport, the players in an individual one such as tennis or golf.

Find the best odds

For each outcome in a league, the best price on offer and the bookmaker paying it. Compares American and decimal prices correctly, so the answer is the one that actually pays most. Costs the same as 'Get odds'.

Inputs

Sport or leaguesporttextRequired
Which league to price. Choose 'Upcoming' for live games plus the next eight starting across every sport, whichever sport they belong to.
Betting marketmarkettext
Which market to shop. Defaults to head to head.One of: h2h (Head to head / moneyline), spreads (Points spread / handicap), totals (Totals / over-under), outrights (Outrights / futures), h2h_lay (Lay head to head (exchanges only)), outrights_lay (Lay outrights (exchanges only)). Default: h2h.
Bookmaker regionsregionstext
Which regions' bookmakers to price. Each region costs one credit per market, so pick only the ones you need. Defaults to the United States when neither regions nor bookmakers are given.One or more of: us (United States (us)), us2 (United States (additional books) (us2)), us_dfs (United States daily fantasy (PrizePicks, Underdog, ...) (us_dfs)), us_ex (United States exchanges (Kalshi, Novig, Polymarket, ...) (us_ex)), uk (United Kingdom (uk)), eu (Europe (eu)), au (Australia (au)), fr (France (fr)), se (Sweden (se)). Default: ["us"].
Bookmakersbookmakerstext
Price only these bookmakers, from any region. Takes precedence over the regions above. Every group of ten costs as much as one region.One or more of: betonlineag (BetOnline.ag (us/eu)), betmgm (BetMGM (us)), betrivers (BetRivers (us)), betus (BetUS (us)), bovada (Bovada (us)), williamhill_us (Caesars (us)), draftkings (DraftKings (us)), fanatics (Fanatics (us)), fanduel (FanDuel (us)), lowvig (LowVig.ag (us)), and 85 more.
Odds formatodds_formattext
How prices are written. Defaults to decimal.One of: decimal (Decimal - 2.40 (the payout per unit staked)), american (American - +240 / -303). Default: decimal.
Starting fromcommence_time_fromdate and time
Only games that start at or after this moment. Leave empty for all of them.
Starting beforecommence_time_todate and time
Only games that start at or before this moment; pair it with 'Starting from' to read a single day's card.
Only these gamesevent_idslist
Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.

Outputs

creditsobject
game_countnumber
gameslist
markettext
odds_formattext
regionslist
sporttext
Example output
{
  "credits": {
    "last_call_cost": 1,
    "remaining": 496,
    "used": 4
  },
  "game_count": 1,
  "games": [
    {
      "away_team": "Dallas Cowboys",
      "best_odds": [
        {
          "bookmaker": "fanduel",
          "bookmaker_title": "FanDuel",
          "decimal_price": 3.55,
          "description": null,
          "label": "Dallas Cowboys",
          "last_update": "2026-09-09T10:46:09Z",
          "outcome": "Dallas Cowboys",
          "point": null,
          "price": 3.55
        },
        {
          "bookmaker": "draftkings",
          "bookmaker_title": "DraftKings",
          "decimal_price": 1.33,
          "description": null,
          "label": "Tampa Bay Buccaneers",
          "last_update": "2026-09-09T10:46:09Z",
          "outcome": "Tampa Bay Buccaneers",
          "point": null,
          "price": 1.33
        }
      ],
      "bookmaker_count": 2,
      "commence_time": "2026-09-10T00:20:00Z",
      "home_team": "Tampa Bay Buccaneers",
      "id": "bda33adca828c09dc3cac3a856aef176",
      "matchup": "Dallas Cowboys @ Tampa Bay Buccaneers",
      "selection_count": 2,
      "sport_key": "americanfootball_nfl",
      "sport_title": "NFL",
      "status": "upcoming"
    }
  ],
  "market": "h2h",
  "odds_format": "decimal",
  "regions": [
    "us"
  ],
  "sport": "americanfootball_nfl"
}

Get odds

Get bookmaker odds for every upcoming and live game in a league: head to head, spreads, totals and outrights. Costs 1 credit per market per region.

Inputs

Sport or leaguesporttextRequired
Which league to price. Choose 'Upcoming' for live games plus the next eight starting across every sport, whichever sport they belong to.
Bookmaker regionsregionstext
Which regions' bookmakers to price. Each region costs one credit per market, so pick only the ones you need. Defaults to the United States when neither regions nor bookmakers are given.One or more of: us (United States (us)), us2 (United States (additional books) (us2)), us_dfs (United States daily fantasy (PrizePicks, Underdog, ...) (us_dfs)), us_ex (United States exchanges (Kalshi, Novig, Polymarket, ...) (us_ex)), uk (United Kingdom (uk)), eu (Europe (eu)), au (Australia (au)), fr (France (fr)), se (Sweden (se)). Default: ["us"].
Betting marketsmarketstext
Which markets to price. Each one costs a credit per region. Leave empty for head to head. Player props, alternate lines and period markets live on the single-game actions.One or more of: h2h (Head to head / moneyline), spreads (Points spread / handicap), totals (Totals / over-under), outrights (Outrights / futures), h2h_lay (Lay head to head (exchanges only)), outrights_lay (Lay outrights (exchanges only)).
Odds formatodds_formattext
How prices are written. Defaults to decimal.One of: decimal (Decimal - 2.40 (the payout per unit staked)), american (American - +240 / -303). Default: decimal.
Bookmakersbookmakerstext
Price only these bookmakers, from any region. Takes precedence over the regions above. Every group of ten costs as much as one region.One or more of: betonlineag (BetOnline.ag (us/eu)), betmgm (BetMGM (us)), betrivers (BetRivers (us)), betus (BetUS (us)), bovada (Bovada (us)), williamhill_us (Caesars (us)), draftkings (DraftKings (us)), fanatics (Fanatics (us)), fanduel (FanDuel (us)), lowvig (LowVig.ag (us)), and 85 more.
Starting fromcommence_time_fromdate and time
Only games that start at or after this moment. Leave empty for all of them.
Starting beforecommence_time_todate and time
Only games that start at or before this moment; pair it with 'Starting from' to read a single day's card.
Only these gamesevent_idslist
Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.
Include bookmaker linksinclude_linkstrue/false
Turn on to include each bookmaker's links to the game, the market and the bet slip, where they publish them.Default: false.
Include bookmaker IDsinclude_sidstrue/false
Turn on to include each bookmaker's own ids for the game, market and selection (useful for building your own links).Default: false.
Include bet limitsinclude_bet_limitstrue/false
Turn on to include how much can be staked on each selection. Mainly published by the betting exchanges.Default: false.
Include rotation numbersinclude_rotation_numberstrue/false
Turn on to include the home and away rotation numbers, the ids used on Las Vegas betting boards.Default: false.

Outputs

creditsobject
event_countnumber
eventslist
marketslist
odds_formattext
regionslist
sporttext
Example output
{
  "credits": {
    "last_call_cost": 1,
    "remaining": 496,
    "used": 4
  },
  "event_count": 1,
  "events": [
    {
      "away_rotation_number": null,
      "away_team": "Dallas Cowboys",
      "bookmaker_count": 2,
      "bookmakers": [
        {
          "key": "draftkings",
          "last_update": "2026-09-09T10:46:09Z",
          "link": null,
          "market_count": 1,
          "markets": [
            {
              "key": "h2h",
              "last_update": null,
              "link": null,
              "outcome_count": 2,
              "outcomes": [
                {
                  "bet_limit": null,
                  "description": null,
                  "link": null,
                  "name": "Dallas Cowboys",
                  "point": null,
                  "price": 3.4,
                  "sid": null
                },
                {
                  "bet_limit": null,
                  "description": null,
                  "link": null,
                  "name": "Tampa Bay Buccaneers",
                  "point": null,
                  "price": 1.33,
                  "sid": null
                }
              ],
              "sid": null
            }
          ],
          "sid": null,
          "title": "DraftKings"
        },
        {
          "key": "fanduel",
          "last_update": "2026-09-09T10:46:09Z",
          "link": null,
          "market_count": 1,
          "markets": [
            {
              "key": "h2h",
              "last_update": null,
              "link": null,
              "outcome_count": 2,
              "outcomes": [
                {
                  "bet_limit": null,
                  "description": null,
                  "link": null,
                  "name": "Dallas Cowboys",
                  "point": null,
                  "price": 3.55,
                  "sid": null
                },
                {
                  "bet_limit": null,
                  "description": null,
                  "link": null,
                  "name": "Tampa Bay Buccaneers",
                  "point": null,
                  "price": 1.3,
                  "sid": null
                }
              ],
              "sid": null
            }
          ],
          "sid": null,
          "title": "FanDuel"
        }
      ],
      "commence_time": "2026-09-10T00:20:00Z",
      "home_rotation_number": null,
      "home_team": "Tampa Bay Buccaneers",
      "id": "bda33adca828c09dc3cac3a856aef176",
      "market_keys": [
        "h2h"
      ],
      "matchup": "Dallas Cowboys @ Tampa Bay Buccaneers",
      "minutes_until_start": 1440,
      "sport_key": "americanfootball_nfl",
      "sport_title": "NFL",
      "status": "upcoming"
    }
  ],
  "markets": [
    "h2h"
  ],
  "odds_format": "decimal",
  "regions": [
    "us"
  ],
  "sport": "americanfootball_nfl"
}

Get odds for one game

Get odds for a single game in any market The Odds API supports: player props, alternate lines, quarters, halves and periods included. Costs 1 credit per market per region.

Inputs

Sport or leaguesporttextRequired
Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
Game IDevent_idtextRequired
The game to read, by its 32-character id. Take it from the 'id' field of 'List games' (that action is free).
Bookmaker regionsregionstext
Which regions' bookmakers to price. Each region costs one credit per market, so pick only the ones you need. Defaults to the United States when neither regions nor bookmakers are given.One or more of: us (United States (us)), us2 (United States (additional books) (us2)), us_dfs (United States daily fantasy (PrizePicks, Underdog, ...) (us_dfs)), us_ex (United States exchanges (Kalshi, Novig, Polymarket, ...) (us_ex)), uk (United Kingdom (uk)), eu (Europe (eu)), au (Australia (au)), fr (France (fr)), se (Sweden (se)). Default: ["us"].
Betting marketsmarketstext
Which markets to price: every market The Odds API supports, player props and alternate lines included. Each one costs a credit per region, and 'List a game's markets' shows which ones this game actually has. Leave empty for head to head.One or more of: h2h (Featured - Head to head, Moneyline), spreads (Featured - Points spread, Handicap), totals (Featured - Total points/goals, Over/Under), outrights (Featured - Outrights, Futures), h2h_lay (Featured - Lay head to head (exchanges only)), outrights_lay (Featured - Lay outrights (exchanges only)), alternate_spreads (Additional - Alternate Spreads (handicap)), alternate_totals (Additional - Alternate Totals (Over/Under)), btts (Additional/Soccer - Both Teams to Score), draw_no_bet (Additional - Draw No Bet), and 281 more.
Odds formatodds_formattext
How prices are written. Defaults to decimal.One of: decimal (Decimal - 2.40 (the payout per unit staked)), american (American - +240 / -303). Default: decimal.
Bookmakersbookmakerstext
Price only these bookmakers, from any region. Takes precedence over the regions above. Every group of ten costs as much as one region.One or more of: betonlineag (BetOnline.ag (us/eu)), betmgm (BetMGM (us)), betrivers (BetRivers (us)), betus (BetUS (us)), bovada (Bovada (us)), williamhill_us (Caesars (us)), draftkings (DraftKings (us)), fanatics (Fanatics (us)), fanduel (FanDuel (us)), lowvig (LowVig.ag (us)), and 85 more.
Include bookmaker linksinclude_linkstrue/false
Turn on to include each bookmaker's links to the game, the market and the bet slip, where they publish them.Default: false.
Include bookmaker IDsinclude_sidstrue/false
Turn on to include each bookmaker's own ids for the game, market and selection (useful for building your own links).Default: false.
Include bet limitsinclude_bet_limitstrue/false
Turn on to include how much can be staked on each selection. Mainly published by the betting exchanges.Default: false.
Include DFS multipliersinclude_multiplierstrue/false
Turn on to include the payout multiplier on each selection at the US daily fantasy sites (PrizePicks, Underdog and the rest).Default: false.
Include rotation numbersinclude_rotation_numberstrue/false
Turn on to include the home and away rotation numbers, the ids used on Las Vegas betting boards.Default: false.

Outputs

creditsobject
eventobject
event_idtext
foundtrue/false
marketslist
odds_formattext
outcome_countnumber
regionslist
sporttext
Example output
{
  "credits": {
    "last_call_cost": 1,
    "remaining": 496,
    "used": 4
  },
  "event": {
    "away_rotation_number": null,
    "away_team": "Arizona Cardinals",
    "bookmaker_count": 1,
    "bookmakers": [
      {
        "key": "draftkings",
        "last_update": null,
        "link": null,
        "market_count": 1,
        "markets": [
          {
            "key": "player_pass_tds",
            "last_update": "2026-09-09T05:31:29Z",
            "link": null,
            "outcome_count": 2,
            "outcomes": [
              {
                "bet_limit": null,
                "description": "Desmond Ridder",
                "link": null,
                "name": "Over",
                "point": 0.5,
                "price": 1.37,
                "sid": null
              },
              {
                "bet_limit": null,
                "description": "Desmond Ridder",
                "link": null,
                "name": "Under",
                "point": 0.5,
                "price": 2.95,
                "sid": null
              }
            ],
            "sid": null
          }
        ],
        "sid": null,
        "title": "DraftKings"
      }
    ],
    "commence_time": "2026-09-10T18:00:00Z",
    "home_rotation_number": null,
    "home_team": "Atlanta Falcons",
    "id": "a512a48a58c4329048174217b2cc7ce0",
    "market_keys": [
      "player_pass_tds"
    ],
    "matchup": "Arizona Cardinals @ Atlanta Falcons",
    "minutes_until_start": 2500,
    "sport_key": "americanfootball_nfl",
    "sport_title": "NFL",
    "status": "upcoming"
  },
  "event_id": "a512a48a58c4329048174217b2cc7ce0",
  "found": true,
  "markets": [
    "player_pass_tds"
  ],
  "odds_format": "decimal",
  "outcome_count": 2,
  "regions": [
    "us"
  ],
  "sport": "americanfootball_nfl"
}

Get scores

Get live, upcoming and recently completed games with their scores, refreshed about every 30 seconds. Each game carries the home and away score as numbers and the winner once it is final. Costs 1 credit, or 2 when finished games are included.

Inputs

Sport or leaguesporttextRequired
Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
Days of finished gamesdays_fromnumber
How many days back to include finished games, 1 to 3. Leave empty for live and upcoming games only; that also keeps the call at 1 credit instead of 2.From 1 to 3.
Only these gamesevent_idslist
Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.

Outputs

completed_countnumber
creditsobject
days_fromnumber
game_countnumber
gameslist
live_countnumber
sporttext
Example output
{
  "completed_count": 1,
  "credits": {
    "last_call_cost": 2,
    "remaining": 495,
    "used": 5
  },
  "days_from": 1,
  "game_count": 1,
  "games": [
    {
      "away_rotation_number": null,
      "away_score": 103,
      "away_team": "Oklahoma City Thunder",
      "commence_time": "2026-02-06T03:10:38Z",
      "completed": true,
      "home_rotation_number": null,
      "home_score": 113,
      "home_team": "Sacramento Kings",
      "id": "572d984e132eddaac3da93e5db332e7e",
      "last_update": "2026-02-06T05:18:19Z",
      "matchup": "Oklahoma City Thunder @ Sacramento Kings",
      "minutes_until_start": -120,
      "scores": [
        {
          "name": "Sacramento Kings",
          "score": 113
        },
        {
          "name": "Oklahoma City Thunder",
          "score": 103
        }
      ],
      "sport_key": "basketball_nba",
      "sport_title": "NBA",
      "status": "completed",
      "winner": "Sacramento Kings"
    }
  ],
  "live_count": 0,
  "sport": "basketball_nba"
}

List a game's markets

List the markets each bookmaker is currently offering on one game. Run it before 'Get odds for one game' to ask only for markets that exist rather than paying a credit to find out they don't. Costs 1 credit.

Inputs

Sport or leaguesporttextRequired
Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
Game IDevent_idtextRequired
The game to read, by its 32-character id. Take it from the 'id' field of 'List games' (that action is free).
Bookmaker regionsregionstext
Which regions' bookmakers to price. Each region costs one credit per market, so pick only the ones you need. Defaults to the United States when neither regions nor bookmakers are given.One or more of: us (United States (us)), us2 (United States (additional books) (us2)), us_dfs (United States daily fantasy (PrizePicks, Underdog, ...) (us_dfs)), us_ex (United States exchanges (Kalshi, Novig, Polymarket, ...) (us_ex)), uk (United Kingdom (uk)), eu (Europe (eu)), au (Australia (au)), fr (France (fr)), se (Sweden (se)). Default: ["us"].
Bookmakersbookmakerstext
Price only these bookmakers, from any region. Takes precedence over the regions above. Every group of ten costs as much as one region.One or more of: betonlineag (BetOnline.ag (us/eu)), betmgm (BetMGM (us)), betrivers (BetRivers (us)), betus (BetUS (us)), bovada (Bovada (us)), williamhill_us (Caesars (us)), draftkings (DraftKings (us)), fanatics (Fanatics (us)), fanduel (FanDuel (us)), lowvig (LowVig.ag (us)), and 85 more.

Outputs

creditsobject
eventobject
event_idtext
foundtrue/false
market_key_countnumber
market_keyslist
regionslist
sporttext
Example output
{
  "credits": {
    "last_call_cost": 1,
    "remaining": 496,
    "used": 4
  },
  "event": {
    "away_rotation_number": null,
    "away_team": "Arizona Cardinals",
    "bookmaker_count": 1,
    "bookmakers": [
      {
        "key": "draftkings",
        "last_update": null,
        "link": null,
        "market_count": 1,
        "markets": [
          {
            "key": "player_pass_tds",
            "last_update": "2026-09-09T05:31:29Z",
            "link": null,
            "outcome_count": 2,
            "outcomes": [
              {
                "bet_limit": null,
                "description": "Desmond Ridder",
                "link": null,
                "name": "Over",
                "point": 0.5,
                "price": 1.37,
                "sid": null
              },
              {
                "bet_limit": null,
                "description": "Desmond Ridder",
                "link": null,
                "name": "Under",
                "point": 0.5,
                "price": 2.95,
                "sid": null
              }
            ],
            "sid": null
          }
        ],
        "sid": null,
        "title": "DraftKings"
      }
    ],
    "commence_time": "2026-09-10T18:00:00Z",
    "home_rotation_number": null,
    "home_team": "Atlanta Falcons",
    "id": "a512a48a58c4329048174217b2cc7ce0",
    "market_keys": [
      "player_pass_tds"
    ],
    "matchup": "Arizona Cardinals @ Atlanta Falcons",
    "minutes_until_start": 2500,
    "sport_key": "americanfootball_nfl",
    "sport_title": "NFL",
    "status": "upcoming"
  },
  "event_id": "a512a48a58c4329048174217b2cc7ce0",
  "found": true,
  "market_key_count": 1,
  "market_keys": [
    "player_pass_tds"
  ],
  "regions": [
    "us"
  ],
  "sport": "americanfootball_nfl"
}

List games

List a league's upcoming and in-play games with their ids, teams and start times: no odds, and no credits. This is where the game id the single-game actions need comes from.

Inputs

Sport or leaguesporttextRequired
Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
Starting fromcommence_time_fromdate and time
Only games that start at or after this moment. Leave empty for all of them.
Starting beforecommence_time_todate and time
Only games that start at or before this moment; pair it with 'Starting from' to read a single day's card.
Only these gamesevent_idslist
Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.
Include rotation numbersinclude_rotation_numberstrue/false
Turn on to include the home and away rotation numbers, the ids used on Las Vegas betting boards.Default: false.

Outputs

creditsobject
event_countnumber
event_idslist
eventslist
first_eventobject
sporttext
Example output
{
  "credits": {
    "last_call_cost": 0,
    "remaining": 500,
    "used": 0
  },
  "event_count": 1,
  "event_ids": [
    "bda33adca828c09dc3cac3a856aef176"
  ],
  "events": [
    {
      "away_rotation_number": null,
      "away_team": "Dallas Cowboys",
      "commence_time": "2026-09-10T00:20:00Z",
      "home_rotation_number": null,
      "home_team": "Tampa Bay Buccaneers",
      "id": "bda33adca828c09dc3cac3a856aef176",
      "matchup": "Dallas Cowboys @ Tampa Bay Buccaneers",
      "minutes_until_start": 1440,
      "sport_key": "americanfootball_nfl",
      "sport_title": "NFL",
      "status": "upcoming"
    }
  ],
  "first_event": {
    "away_rotation_number": null,
    "away_team": "Dallas Cowboys",
    "commence_time": "2026-09-10T00:20:00Z",
    "home_rotation_number": null,
    "home_team": "Tampa Bay Buccaneers",
    "id": "bda33adca828c09dc3cac3a856aef176",
    "matchup": "Dallas Cowboys @ Tampa Bay Buccaneers",
    "minutes_until_start": 1440,
    "sport_key": "americanfootball_nfl",
    "sport_title": "NFL",
    "status": "upcoming"
  },
  "sport": "americanfootball_nfl"
}

List sports

List every sport and league The Odds API covers, with the key each other action needs. Free; it does not use any credits.

Inputs

Include out-of-season leaguesinclude_out_of_seasontrue/false
Turn on to list leagues that are between seasons as well as the ones running now.Default: false.

Outputs

creditsobject
groupslist
include_out_of_seasontrue/false
sport_countnumber
sportslist
Example output
{
  "credits": {
    "last_call_cost": 0,
    "remaining": 500,
    "used": 0
  },
  "groups": [
    "American Football"
  ],
  "include_out_of_season": false,
  "sport_count": 1,
  "sports": [
    {
      "active": true,
      "description": "US Football",
      "group": "American Football",
      "has_outrights": false,
      "key": "americanfootball_nfl",
      "title": "NFL"
    }
  ]
}

List teams and players

List every participant in a league: the teams in a team sport, the players in an individual one such as tennis or golf. Costs 1 credit.

Inputs

Sport or leaguesporttextRequired
Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.

Outputs

creditsobject
nameslist
participant_countnumber
participantslist
sporttext
Example output
{
  "credits": {
    "last_call_cost": 1,
    "remaining": 496,
    "used": 4
  },
  "names": [
    "Arizona Cardinals"
  ],
  "participant_count": 1,
  "participants": [
    {
      "full_name": "Arizona Cardinals",
      "id": "par_01hqmkr1xsfxmrj5pdq0f23asx"
    }
  ],
  "sport": "americanfootball_nfl"
}

On this page