get_odds
Odds for a specific game with optional bookmaker and snapshot type filters.
When to use it
You have a game ID and want the betting lines -- moneyline, spread, and total from specific bookmakers. Filter by opening or closing lines to see how the market priced the game.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| game_id | string | yes | Game ID (e.g. "2025020887") |
| bookmaker | string | no | Filter by bookmaker (e.g. "draftkings") |
| snapshot_type | string | no | "opening" (game-day morning) or "closing" (final pre-game). Default returns both. |
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"
}'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
{
"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
| Field | Type | Description |
|---|---|---|
| game_id | string | Game ID |
| home_team | string | Home team abbreviation |
| away_team | string | Away team abbreviation |
| odds[].bookmaker | string | Bookmaker name |
| odds[].snapshotType | string | opening or closing |
| odds[].mlHome | integer | Home moneyline |
| odds[].mlAway | integer | Away moneyline |
| odds[].mlHomeProb | number | Implied home win probability |
| odds[].mlAwayProb | number | Implied away win probability |
| odds[].spreadHome | number | Home puck line |
| odds[].spreadHomeOdds | integer | Home spread price |
| odds[].spreadAway | number | Away puck line |
| odds[].spreadAwayOdds | integer | Away spread price |
| odds[].total | number | Over/under total |
| odds[].totalOverOdds | integer | Over price |
| odds[].totalUnderOdds | integer | Under price |
| odds[].capturedAt | string | Timestamp of snapshot |
| bookmaker_count | integer | Number of bookmakers returned |
Related endpoints
Returns the game_id this one takes.
Upcoming games for the next N days. Defaults to 7 days.
Returns the game_id this one takes.
Query games by date range, team, season, game state, or type.
Takes the game_id this one returns.
Full game detail including odds snapshots and the goalies who started, with time on ice.
Takes the game_id this one returns.
Time-series odds snapshots grouped by bookmaker. Shows how lines moved from open to close.
Try it
500 credits free on signup — 50 calls to get_odds — and no card.