get_odds
Data refreshed · changelog
Odds for one game, or a whole season of closing lines in one call, billed per game returned (estimate_only prices it first), with bookmaker and snapshot filters.
Use it when you want betting lines. Pass game_id for one game (10 credits). Pass season, optionally with team, for a season of closing lines with final scores in one call at 10 credits per game returned (a full season is about 13,700 credits, one team's season about 820); pages are 100 games by default, up to 500. Set estimate_only to see the price first without being charged.
Parameters
game_idstringoptional- Game ID (e.g. "2025020887"). Omit and pass season for a whole season.
seasonstringoptional- Season for a whole season of lines, e.g. "2025-26"
teamstringoptional- With season: one team's games (e.g. "BUF")
bookmakerstringoptional- Filter by bookmaker (e.g. "draftkings")
snapshot_typestringoptional- "opening" (game-day morning; for a game not yet played, the latest morning line) or "closing" (final pre-game). Single game: default both. Season: default closing.
all_booksbooleanoptional- With season: every book held (more than 60 on about 300 games in 2025-26) instead of DraftKings, FanDuel, BetMGM and ESPN BET
limitintegeroptional- With season: games per page (default 100, max 500)
offsetintegeroptional- With season: next_offset from the previous page
estimate_onlybooleanoptional- Return the credit cost of this call without charging or running it
Notes
- Over MCP, ask for it in plain English and the client calls
get_oddsitself. Point any MCP client athttps://mcp.puckapi.com/mcp?key=YOUR_API_KEY. - Each call costs 10 credits, taken before it runs and refunded if the server errors.
- Not the call you need? Find the right call by what you are trying to answer.
Request
curl -X POST https://mcp.puckapi.com/v1/get_odds \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"game_id": "2025020887",
"bookmaker": "draftkings"
}'Response
{
"game_id": "2025020887",
"home_team": "BUF",
"away_team": "TOR",
"game_date": "2026-03-15",
"odds": [
{
"bookmaker": "draftkings",
"snapshotType": "opening",
"mlHome": -115,
"mlAway": -105,
"mlHomeProb": 0.535,
"mlAwayProb": 0.512,
"spreadHome": -1.5,
"spreadHomeOdds": 170,
"spreadAway": 1.5,
"spreadAwayOdds": -200,
"total": 6,
"totalOverOdds": -110,
"totalUnderOdds": -110,
"capturedAt": "2026-03-14T12:00:00Z"
},
{
"bookmaker": "draftkings",
"snapshotType": "closing",
"mlHome": -125,
"mlAway": 105,
"mlHomeProb": 0.556,
"mlAwayProb": 0.488,
"spreadHome": -1.5,
"spreadHomeOdds": 165,
"spreadAway": 1.5,
"spreadAwayOdds": -195,
"total": 6.5,
"totalOverOdds": -110,
"totalUnderOdds": -110,
"capturedAt": "2026-03-15T18:50:00Z"
}
],
"bookmaker_count": 1
}Response fields
game_idstring- Game ID
home_teamstring- Home team abbreviation
away_teamstring- Away team abbreviation
odds[].bookmakerstring- Bookmaker name
odds[].snapshotTypestring- opening, closing, first (each book's first posted line, from October 2026) or a time-of-day snapshot
odds[].mlHomeinteger- Home moneyline
odds[].mlAwayinteger- Away moneyline
odds[].mlHomeProbnumber- Implied home win probability
odds[].mlAwayProbnumber- Implied away win probability
odds[].spreadHomenumber- Home puck line
odds[].spreadHomeOddsinteger- Home spread price
odds[].spreadAwaynumber- Away puck line
odds[].spreadAwayOddsinteger- Away spread price
odds[].totalnumber- Over/under total
odds[].totalOverOddsinteger- Over price
odds[].totalUnderOddsinteger- Under price
odds[].capturedAtstring- Timestamp of snapshot
bookmaker_countinteger- Number of bookmakers returned
games[] (season)array- Season mode: each game with date, teams, final score and books
games[].books (season)object- Season mode: bookmaker -> line array in the order of columns
columns (season)array- ml_home, ml_away, spread_home, spread_home_odds, spread_away_odds, total, over_odds, under_odds
next_offset (season)integer- Offset for the next page, or null on the last
Related endpoints
Takes the game_id this one returns.
What the market thinks of a game: average implied and fair probability for the moneyline, puck lines and totals
Takes the game_id this one returns.
Full game detail including odds snapshots and the goalies who started, with time on ice.
Returns the team this one takes.
All 32 active NHL teams with divisions, conferences, and arenas.
Returns the game_id this one takes.
Paid plans only. The model's projected goals, assists, points and shots for each skater and saves for each goalie in tonight's NHL games, with a low-to-high range and over probabilities.
Try it
500 free credits every month: 50 calls to get_odds, and no card.