Game Odds API Documentation
Description
This endpoint returns all the available betting odds for a specific game, team, player, sportsbook or market. Including American odds, decimal & fractional.
You'll need a license key to use OpticOdds' API. You can get one by contacting us at www.opticodds.com.
API Endpoint
https://api.opticodds.com/api/v2/game-odds
Parameters
key (required)
Your OpticOdds API license key.
You can only pass in five or less game_id, player_id, or team_id per request.
A game_id, player_id, or team_id is required per request.
A sportsbook is required per request.
game_id
You can pass in multiple of this parameter.
The game_id you want to receive odds for (e.g. 13602-17233-23-06)
team_id
You can pass in multiple of this parameter.
The team_id you want to receive odds for (e.g. EDF03AD3C346)
player_id
You can pass in multiple of this parameter.
The player_id you want to receive odds for (e.g. E61E5ECAC811)
The OpticOdds game ID you want to receive odds for (e.g. 39341-78014-2022-01-17)
sportsbook (required)
You can pass in multiple of this parameter.
The sportsbook(s) you want to receive odds for. You must pass at least one sportsbook. We support the following:
10bet1XBet22bet5Dimes888sportAction 24/7Bally BetBarstoolBC.GAMEbet365BET99Bet AmericaBetanoBetAnySportsBetcrisBetDEXBetDSIBetfairBetfair ExchangeBetfredbetJACKBetlyBetMGMBetnacionalBetNowBetOnlineBetonUSABetOpenlybetPARXBetplaybetrBet RightBetRiversBetr PicksBetsafeBetssonBetstarBetUKBetUSBetVictorBetwaybetwhaleBetWildwoodBlueBetBodogBookMakerBookmakerBoomBetBoom FantasyBorgataBovadabwinCaesarsCasumoChalkboardCirca SportsCirca VegasClutchBetCodereComeOn!CoolbetCoralCrab SportsDabbleDafabetDAZN BetDesert DiamondDraftKingsDRFElite SportsbookESPN BETEverygameFanaticsFanDuelFireKeepersFliffFour WindsFOX BetGalera.betGambetDCGGBetGolden NuggetHard RockHeritageHotStreakIntertopsJazz SportsJock MKTJuiceBetKuttLadbrokesLeoVegasLooselinesLowVigMaximBetMise-o-jeuMojo FantasyMonkey Knife FightMr GreenMyBookieNedsNitrogenNo House AdvantageNorthStar BetsNovigOddsJam Algo OddsPaddy PowerPalmerbetParlayPlaypartypokerPicklebetPinnaclePinnyPlay AlbertaPlay EaglePlay MaverickPlayNowPlayUpPointsBetPowerPlayPrizePicksProlineProphet ExchangeProphet XRebetResortsResorts World BetRivalryRoyal PandaSaharaBetsSBKSISky BetSleeperSmarketsSpin SportsSportingbetSportsBattleSportsbetSportsbetting.agSportsBetting.comSports InteractionSportsQuackSporttradeStakeSTN SportsSugarHouseSuperbetSuperBookSuperDraftSuprabetsSX BetTABTABtouchtheScoreThrillzzThriveFantasyTipicoTonyBetTwinSpiresUnderdog FantasyUnderdog SportsbookUnibetVivid PicksWestgateWilliam HillWind CreekWynnBETXbetYouWager
To pass multiple sportsbooks, you pass it like this: &sportsbook=FanDuel&sportsbook=DraftKings
market_name
You can pass in multiple of this parameter.
The market you want to receive odds for (e.g. Moneyline)
is_main
Flag to filter for odds for main lines (supports values true, yes, t, 1). This parameter indicates whether a line is the "main" or "given" line for a market. For example, the +/- 6 Point Spread and the Over/Under 46.5 Total Points lines are the "main" lines for the DraftKings game below:

odds_format
The format of the odd price. Options are AMERICAN|PROBABILITY|DECIMAL. We default to american prices.
include_mobile_deep_link_url
Please contact us for access to deep link urls.
This will cause deep_link_url to be returned as:
deep_link_url: {"mobile": "...", "desktop": "..."}
include_team_ids
Whether or not to include the team_id field on the odds returned, if there is no matching team id, this will default to null.
include_grouping_keys
This is an optional field, and if it is set to true, it will add a grouping_key field to each odd that you can use to group odds across bet points. This is useful for cases when you have a spread market with these bet names: ["Home -1", "Away +1", "Home +1", "Away -1"], it is not straightforward how to know which home/away pair makeup the same market. The grouping_key will be unique for a given market and should faciliate this.
Example Response
{
"data": [
{
"id": "39506-40644-2023-08-13-09",
"start_date": "2023-08-13T12:05:00-04:00",
"home_team": "Boston Red Sox",
"away_team": "Detroit Tigers",
"is_live": false,
"is_popular": true,
"tournament": null,
"status": "unplayed",
"sport": "baseball",
"league": "MLB",
"odds": [
{
"id": "39506-40644-2023-08-13-09:draftkings:player_strikeouts:eduardo_rodriguez_over_5_5",
"sports_book_name": "DraftKings",
"name": "Eduardo Rodriguez Over 5.5",
"price": -135,
"timestamp": 1691932813.2485504,
"bet_points": 5.5,
"is_main": true,
"is_live": false,
"market_name": "Player Strikeouts",
"market": "player_strikeouts",
"home_rotation_number": null,
"away_rotation_number": null,
"deep_link_url": null,
"player_id": "1703DC89B0A0",
"selection": "Eduardo Rodriguez",
"normalized_selection": "eduardo_rodriguez",
"selection_line": "over",
"selection_points": 5.5
},
{
"id": "39506-40644-2023-08-13-09:draftkings:run_line:boston_red_sox_+1_5",
"sports_book_name": "DraftKings",
"name": "Boston Red Sox +1.5",
"price": -215,
"timestamp": 1691906920.9585743,
"bet_points": 1.5,
"is_main": false,
"is_live": false,
"market_name": "Run Line",
"market": "run_line",
"home_rotation_number": null,
"away_rotation_number": null,
"deep_link_url": null,
"player_id": null,
"selection": "Boston Red Sox",
"normalized_selection": "boston_red_sox",
"selection_line": null,
"selection_points": 1.5
},
{
"id": "39506-40644-2023-08-13-09:draftkings:run_line:boston_red_sox_-1_5",
"sports_book_name": "DraftKings",
"name": "Boston Red Sox -1.5",
"price": 154,
"timestamp": 1691899249.0454822,
"bet_points": -1.5,
"is_main": true,
"is_live": false,
"market_name": "Run Line",
"market": "run_line",
"home_rotation_number": null,
"away_rotation_number": null,
"deep_link_url": null,
"player_id": null,
"selection": "Boston Red Sox",
"normalized_selection": "boston_red_sox",
"selection_line": null,
"selection_points": -1.5
},
{
"id": "757CD7617965",
"sports_book_name": "Caesars",
"name": "Boston Red Sox",
"price": -130,
"timestamp": 1691929868.4992077,
"bet_points": null,
"is_main": true,
"is_live": false,
"market_name": "Moneyline",
"market": "moneyline",
"home_rotation_number": null,
"away_rotation_number": null,
"deep_link_url": null,
"player_id": null,
"selection": "Boston Red Sox",
"normalized_selection": "boston_red_sox",
"selection_line": null,
"selection_points": null
},
{
"id": "470BBEE6141F",
"sports_book_name": "Caesars",
"name": "Over 9.5",
"price": 100,
"timestamp": 1691932202.0163093,
"bet_points": 9.5,
"is_main": true,
"is_live": false,
"market_name": "Total Runs",
"market": "total_runs",
"home_rotation_number": null,
"away_rotation_number": null,
"deep_link_url": null,
"player_id": null,
"selection": "",
"normalized_selection": "",
"selection_line": "over",
"selection_points": 9.5
},
{
"id": "39506-40644-2023-08-13-09:fanduel:team_total:boston_red_sox_over_4_5",
"sports_book_name": "FanDuel",
"name": "Boston Red Sox Over 4.5",
"price": -128,
"timestamp": 1691932509.6268106,
"bet_points": 4.5,
"is_main": true,
"is_live": false,
"market_name": "Team Total",
"market": "team_total",
"home_rotation_number": null,
"away_rotation_number": null,
"deep_link_url": null,
"player_id": null,
"selection": "Boston Red Sox",
"normalized_selection": "boston_red_sox",
"selection_line": "over",
"selection_points": 4.5
},
...
]
}
]
}
Notes
id
The ID that we return for each odd object is not guaranteed to be of any specific format and is subject to change. Note that using this id will also not allow you to track line changes or historical movements because of the availability of alternate lines.
All Lines:
If you store and keep track of multiple sportsbooks for the same game / market combination, we would recommend constructing your own id using the following format:
<game_id>:<sportsbook>:<market>:<name>:<player_id>.
If you store and keep track of a single sportsbook for the same game / market combination, we would recommend constructing your own id using the following format:
<game_id>:<market>:<name>:<player_id>.
Main Lines Only:
If you want to track line changes for the main (is_main=True) lines of a market, we would recommend constructing your own id using the following format: <game_id>:<sportsbook>:<market>:<selection>:<selection_line>:<player_id>.
Some examples below:
- Moneyline:
39506-40644-2023-08-13-09:DraftKings:Moneyline:Boston Red Sox:null:null - Run Line:
39506-40644-2023-08-13-09:Caesars:Boston Red Sox:null:null - Total Runs:
39506-40644-2023-08-13-09:Caesars::over:null - Player Strikeouts:
39506-40644-2023-08-13-09:DraftKings:Player Strikeouts:Eduardo Rodriguez:over:AHF3454FEF - Team Total:
39506-40644-2023-08-13-09:Fanduel:Team Total:Boston Red Sox:over:null