MLB odds API
Every MLB game from 46 books in one JSON shape, with alternate run lines and totals, first 5 innings, team totals, player props and in-play.
Ask the odds route for mlb and you get each game with every book's price side by side. Each game has one stable id, with a suffix on the second game of a doubleheader, so you never match team names across books.
Baseball has its own slices. You get the first 5 innings and the 1st inning next to the full game, the full run line and total ladders, and team totals. Player props cover batters and pitchers, and live odds are included from the Growth plan.
curl -H "X-API-Key: $ODDSLINK_KEY" \
"https://oddslink.app/v1/sports/mlb/odds?markets=h2h,spreads,totals"import os, requests
r = requests.get(
"https://oddslink.app/v1/sports/mlb/odds",
params={"markets": "h2h,spreads,totals"},
headers={"X-API-Key": os.environ["ODDSLINK_KEY"]},
)
r.raise_for_status()
for game in r.json():
print(game["away_team"], "at", game["home_team"])[
{
"id": "mlb:losangelesdodgers-milwaukeebrewers:2026-10-12",
"sport_key": "mlb",
"sport_title": "MLB",
"commence_time": "2026-10-12T00:00:00.000Z",
"is_live": false,
"status": "scheduled",
"home_team": "Milwaukee Brewers",
"away_team": "Los Angeles Dodgers",
"bookmakers": [
{
"key": "pinnacle",
"title": "Pinnacle",
"last_update": "2026-10-11T05:26:31.878Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-10-11T05:26:31.878Z",
"outcomes": [
{
"name": "Los Angeles Dodgers",
"price": -103
},
{
"name": "Milwaukee Brewers",
"price": -107
}
]
},
{
"key": "spreads",
"last_update": "2026-10-11T05:26:31.878Z",
"outcomes": [
{
"name": "Los Angeles Dodgers",
"price": 136,
"point": -1,
"size": {
"kind": "posted_limit",
"amount": 5000
}
},
{
"name": "Milwaukee Brewers",
"price": -161,
"point": 1,
"size": {
"kind": "posted_limit",
"amount": 5000
}
}
]
},
{
"key": "totals",
"last_update": "2026-10-11T05:26:31.878Z",
"outcomes": [
{
"name": "Over",
"price": -195,
"point": 5,
"size": {
"kind": "posted_limit",
"amount": 3000
}
},
{
"name": "Under",
"price": 163,
"point": 5,
"size": {
"kind": "posted_limit",
"amount": 3000
}
}
]
}
]
},
{
"key": "draftkings",
"title": "Draftkings",
"last_update": "2026-10-11T05:26:32.829Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-10-11T05:26:32.829Z",
"outcomes": [
{
"name": "Los Angeles Dodgers",
"price": -108
},
{
"name": "Milwaukee Brewers",
"price": -114
}
]
},
{
"key": "spreads",
"last_update": "2026-10-11T05:26:32.829Z",
"outcomes": [
{
"name": "Los Angeles Dodgers",
"price": 166,
"point": -1.5
},
{
"name": "Milwaukee Brewers",
"price": -204,
"point": 1.5
}
]
},
{
"key": "totals",
"last_update": "2026-10-11T05:26:32.829Z",
"outcomes": [
{
"name": "Over",
"price": -112,
"point": 6
},
{
"name": "Under",
"price": -109,
"point": 6
}
]
}
]
}
],
"unmatched_bookmakers": []
}
]A real MLB response from 11 Oct 2026, trimmed.
More than the main line
Moneyline, run line, total
The main MLB lines from 46 books, in the same fields for every book.
Alternate lines
Ask for spreads or totals and get the whole ladder, main line first.
First 5 innings
Moneyline, run line and total for the first 5 innings, with team totals.
1st inning
Moneyline and total for the 1st inning.
Player props
Hits, home runs, total bases, RBIs, strikeouts, outs recorded and more, on Growth and up.
In-play
Yes. Live MLB prices while the game is on, from the Growth plan and up.
Markets
| Market | Periods |
|---|---|
| Moneyline | Full game, first 5 innings, 1st inning |
| Run line, with alternate lines | Full game, first 5 innings |
| Total, with alternate lines | Full game, first 5 innings, 1st inning |
| Team totals, with alternate lines | Full game, first 5 innings |
| Player props: batters and pitchers | None |
Books for MLB
Every book on every plan
| Plan | Per month | Requests a month | In-play and props | History |
|---|---|---|---|---|
| Free | $0 | 1,000 | No | No |
| Starter | $24 | 20,000 | No | No |
| Growth | $49 | 100,000 | Yes | No |
| Scale | $99 | 500,000 | Yes | 2 years |
| Business | $199 | 5,000,000 | Yes | All of it |
Questions
What is the MLB sport key?
mlb. Our sport keys are short and lowercase, for example mlb, nba and nhl.
Which books carry MLB?
All 46 books. A book shows up on a game once it prices it. Use the bookmakers filter to choose some, or leave it off to get every book.
How do I get first 5 innings lines?
Add periods=f5 to the request. The 1st inning is periods=1i. Each market comes back with its own period field.
Are MLB player props included?
Yes, on Growth and up. Props have their own route and you name the markets, such as batter_hits, batter_home_runs or pitcher_strikeouts.
Is in-play included?
Yes. Live MLB prices are on the Growth plan and up, and so are player props.
Can I get MLB opening and closing lines?
Yes, for finished games. Openers and closing prices for the full-game moneyline, spread and total are on Scale (the last 2 years) and Business (everything recorded).