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
| Action | What it does |
|---|---|
| Find the best odds | For each outcome in a league, the best price on offer and the bookmaker paying it. |
| Get odds | Get bookmaker odds for every upcoming and live game in a league: head to head, spreads, totals and outrights. |
| 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. |
| Get scores | Get live, upcoming and recently completed games with their scores, refreshed about every 30 seconds. |
| List a game's markets | List the markets each bookmaker is currently offering on one game. |
| List games | List a league's upcoming and in-play games with their ids, teams and start times: no odds, and no credits. |
| List sports | List every sport and league The Odds API covers, with the key each other action needs. |
| 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. |
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 league
sporttextRequired - Which league to price. Choose 'Upcoming' for live games plus the next eight starting across every sport, whichever sport they belong to.
- Betting market
markettext - 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 regions
regionstext - 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"]. - Bookmakers
bookmakerstext - 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 format
odds_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 from
commence_time_fromdate and time - Only games that start at or after this moment. Leave empty for all of them.
- Starting before
commence_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 games
event_idslist - Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.
Outputs
creditsobjectgame_countnumbergameslistmarkettextodds_formattextregionslistsporttext
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 league
sporttextRequired - Which league to price. Choose 'Upcoming' for live games plus the next eight starting across every sport, whichever sport they belong to.
- Bookmaker regions
regionstext - 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 markets
marketstext - 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 format
odds_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. - Bookmakers
bookmakerstext - 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 from
commence_time_fromdate and time - Only games that start at or after this moment. Leave empty for all of them.
- Starting before
commence_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 games
event_idslist - Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.
- Include bookmaker links
include_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 IDs
include_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 limits
include_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 numbers
include_rotation_numberstrue/false - Turn on to include the home and away rotation numbers, the ids used on Las Vegas betting boards.Default:
false.
Outputs
creditsobjectevent_countnumbereventslistmarketslistodds_formattextregionslistsporttext
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 league
sporttextRequired - Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
- Game ID
event_idtextRequired - The game to read, by its 32-character id. Take it from the 'id' field of 'List games' (that action is free).
- Bookmaker regions
regionstext - 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 markets
marketstext - 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 format
odds_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. - Bookmakers
bookmakerstext - 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 links
include_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 IDs
include_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 limits
include_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 multipliers
include_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 numbers
include_rotation_numberstrue/false - Turn on to include the home and away rotation numbers, the ids used on Las Vegas betting boards.Default:
false.
Outputs
creditsobjecteventobjectevent_idtextfoundtrue/falsemarketslistodds_formattextoutcome_countnumberregionslistsporttext
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 league
sporttextRequired - Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
- Days of finished games
days_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 games
event_idslist - Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.
Outputs
completed_countnumbercreditsobjectdays_fromnumbergame_countnumbergameslistlive_countnumbersporttext
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 league
sporttextRequired - Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
- Game ID
event_idtextRequired - The game to read, by its 32-character id. Take it from the 'id' field of 'List games' (that action is free).
- Bookmaker regions
regionstext - 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"]. - Bookmakers
bookmakerstext - 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
creditsobjecteventobjectevent_idtextfoundtrue/falsemarket_key_countnumbermarket_keyslistregionslistsporttext
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 league
sporttextRequired - Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
- Starting from
commence_time_fromdate and time - Only games that start at or after this moment. Leave empty for all of them.
- Starting before
commence_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 games
event_idslist - Narrow the answer to these game ids. Accepts a list or a comma-separated string. Leave empty for every game.
- Include rotation numbers
include_rotation_numberstrue/false - Turn on to include the home and away rotation numbers, the ids used on Las Vegas betting boards.Default:
false.
Outputs
creditsobjectevent_countnumberevent_idslisteventslistfirst_eventobjectsporttext
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 leagues
include_out_of_seasontrue/false - Turn on to list leagues that are between seasons as well as the ones running now.Default:
false.
Outputs
creditsobjectgroupslistinclude_out_of_seasontrue/falsesport_countnumbersportslist
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 league
sporttextRequired - Which league to read. The list is fetched from The Odds API, so it is always the leagues it currently covers.
Outputs
creditsobjectnameslistparticipant_countnumberparticipantslistsporttext
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"
}