Skip to content
Multi-table10 credits

get_odds

Odds for one game, or a whole season of closing lines in one call, with bookmaker and snapshot filters.

When to use it

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

NameTypeRequiredDescription
game_idstringnoGame ID (e.g. "2025020887"). Omit and pass season for a whole season.
seasonstringnoSeason for a whole season of lines, e.g. "2025-26"
teamstringnoWith season: one team's games (e.g. "BUF")
bookmakerstringnoFilter by bookmaker (e.g. "draftkings")
snapshot_typestringno"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_booksbooleannoWith season: every book held (60+ from 2025-26) instead of DraftKings, FanDuel, BetMGM and ESPN BET
limitintegernoWith season: games per page (default 100, max 500)
offsetintegernoWith season: next_offset from the previous page
estimate_onlybooleannoReturn the credit cost of this call without charging or running it

Request

bash
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"
}'

Over MCP, ask for it in plain English and the client calls get_odds itself. Point any MCP client at https://mcp.puckapi.com/mcp?key=YOUR_API_KEY.

Response

json
{
  "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

FieldTypeDescription
game_idstringGame ID
home_teamstringHome team abbreviation
away_teamstringAway team abbreviation
odds[].bookmakerstringBookmaker name
odds[].snapshotTypestringopening or closing
odds[].mlHomeintegerHome moneyline
odds[].mlAwayintegerAway moneyline
odds[].mlHomeProbnumberImplied home win probability
odds[].mlAwayProbnumberImplied away win probability
odds[].spreadHomenumberHome puck line
odds[].spreadHomeOddsintegerHome spread price
odds[].spreadAwaynumberAway puck line
odds[].spreadAwayOddsintegerAway spread price
odds[].totalnumberOver/under total
odds[].totalOverOddsintegerOver price
odds[].totalUnderOddsintegerUnder price
odds[].capturedAtstringTimestamp of snapshot
bookmaker_countintegerNumber of bookmakers returned
games[] (season)arraySeason mode: each game with date, teams, final score and books
games[].books (season)objectSeason mode: bookmaker -> line array in the order of columns
columns (season)arrayml_home, ml_away, spread_home, spread_home_odds, spread_away_odds, total, over_odds, under_odds
next_offset (season)integerOffset for the next page, or null on the last

Related endpoints

Try it

500 credits free on signup — 50 calls to get_odds — and no card.