Skip to content

get_odds

10 creditsMulti-tablePOST /v1/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_odds itself. Point any MCP client at https://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

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

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

Try it

500 free credits every month: 50 calls to get_odds, and no card.