NHL odds API
NHL prices, markets and identifiers through one REST API.
The NHL has the league key nhl in the SockOdds API. It is an ice hockey league based in the United States (sport key ice_hockey). Its events have a home and an away team.
Request NHL odds
Current prices for the next NHL game, one market, from every bookmaker your plan includes:
curl -sS "https://api.sockodds.com/v1/odds?league=nhl&markets=winner&limit=1&starts_after=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-H "Authorization: Bearer $SOCKODDS_API_KEY"const response = await fetch(`https://api.sockodds.com/v1/odds?league=nhl&markets=winner&limit=1&starts_after=${new Date().toISOString().slice(0, 19)}Z`, {
headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));import json, os, urllib.request
from datetime import datetime, timezone
request = urllib.request.Request(
f"https://api.sockodds.com/v1/odds?league=nhl&markets=winner&limit=1&starts_after={datetime.now(timezone.utc):%Y-%m-%dT%H:%M:%SZ}",
headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
print(json.dumps(json.load(response), indent=2))Response from a local copy of the API with invented test prices
{
"data": [
{
"id": "ev_000ckk0w9ynj",
"name": "Anaheim Ducks v Boston Bruins",
"league": {
"key": "nhl",
"name": "NHL"
},
"scheduled_start": "2026-10-16T21:00:00.000Z",
"status": "scheduled",
"participants": [
{
"role": "away",
"identity": {
"key": "boston_bruins",
"name": "Boston Bruins"
}
},
{
"role": "home",
"identity": {
"key": "anaheim_ducks",
"name": "Anaheim Ducks"
}
}
],
"markets": [
{
"id": "mk_bg0b5yy8a507qx5c",
"key": "winner",
"name": "Winner",
"period": "full",
"subject": null,
"alternate": false,
"outcomes": [
{
"id": "oc_0kr7xvzpdedf8erj",
"name": "Anaheim Ducks",
"side": "home",
"line": null,
"prices": [
{
"bookmaker": "betopenly",
"decimal_odds": 1.81,
"implied_probability": 0.552486,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "pointsbet",
"decimal_odds": 1.77,
"implied_probability": 0.564972,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "tab",
"decimal_odds": 1.72,
"implied_probability": 0.581395,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "unibet",
"decimal_odds": 1.69,
"implied_probability": 0.591716,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
},
{
"id": "oc_7syjxnk9xmcawrmp",
"name": "Boston Bruins",
"side": "away",
"line": null,
"prices": [
{
"bookmaker": "betopenly",
"decimal_odds": 2.23,
"implied_probability": 0.44843,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "pointsbet",
"decimal_odds": 2.18,
"implied_probability": 0.458716,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "tab",
"decimal_odds": 2.12,
"implied_probability": 0.471698,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "unibet",
"decimal_odds": 2.08,
"implied_probability": 0.480769,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
}
]
}
]
}
],
"meta": {
"count": 1,
"cursor": null
},
"links": {
"next": null
}
}Prices are decimal and exactly as each bookmaker showed them, with the time we saw them. A price older than ten minutes is withheld rather than shown as current.
Bookmakers
22 bookmakers deliver NHL prices through v1 as of 30 October 2026: TAB, PointsBet, Unibet, Betfair Exchange, Pinnacle, Dabble, DraftKings, FanDuel, BetMGM, Kalshi, Polymarket, Matchbook, Bally Bet, BetOpenly, BetRivers, Fanatics Markets, Hard Rock Bet, LightningBet, Mintbet, Novig, ProphetX and Star Sports.
NHL markets
19 market types are defined for the NHL. Ask for any of them with markets=; a bookmaker quotes the markets it offers for each game.
Game markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Either of two results | result_pair | home_or_draw, away_or_draw, either_team | No | full, regulation |
| Total goals odd/even | total_goals_odd_even | odd, even | No | full, regulation, period_1, period_2, period_3 |
| Exact score | result_exact_score | Each exact score | No | full, regulation, period_1, period_2, period_3 |
| Winner | winner | home, away, competitor_1, competitor_2 | No | full, period_1, period_2, period_3 |
| Result (with the draw) | result | home, draw, away | No | full, regulation, period_1, period_2, period_3 |
| Result (draw no bet) | result_draw_no_bet | home, away | No | full, period_1, period_2, period_3 |
| Handicap | handicap | home, away, competitor_1, competitor_2 | Yes | full, period_1, period_2, period_3 |
| Total goals | total_goals | over, under | Yes | full, regulation, period_1, period_2, period_3 |
Team markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Team goals over/under | team_goals_over_under | over, under | Yes | full, regulation, period_1, period_2, period_3 |
| Team shots on goal over/under | team_shots_on_goal_over_under | over, under | Yes | full |
Player markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Anytime goal scorer | player_goals_anytime | yes | No | full |
| First goal scorer | player_goals_first | Each competitor | No | full |
| Last goal scorer | player_goals_last | Each competitor | No | full |
| Player goals over/under | player_goals_over_under | over, under | Yes | full |
| Player points over/under | player_points_over_under | over, under | Yes | full |
| Player assists over/under | player_assists_over_under | over, under | Yes | full |
| Player saves over/under | player_saves_over_under | over, under | Yes | full |
| Player shots on goal over/under | player_shots_on_goal_over_under | over, under | Yes | full |
| Player blocked shots over/under | player_blocked_shots_over_under | over, under | Yes | full |
Periods
full (Full match), regulation (Regulation time), period_1 (First period), period_2 (Second period) and period_3 (Third period).
Plans
The NHL is included on Rookie and Pro. Pro adds recorded price history, from 23 February 2026. See pricing.