NewConnect Claude, Gemini, ChatGPT, and other AI agents to API Ninjas via our MCP server →

NHL API

A hockey API for the NHL: get the schedule, live scores with the period and clock on paid plans, final scores by period with overtime and shootout results, standings with points and wild-card positions, and every team's roster. The free plan covers the current season's schedule, final scores, standings and rosters.

The NHL is served by the Hockey API (league=nhl is the default, so no league parameter is needed). The same API key works for every sports API.

NHL data at a glance

Season valueseason=2026 is the 2026-27 season
ScoringGoals by period in period_scores, with each overtime period
Overtime and shootoutsdecided_in is regulation, overtime or shootout. A shootout win counts in the final score but not in any period
Live gamesOn paid plans: score, period, clock and intermission breaks
RostersForwards, defensemen and goalies with position, sweater number, shoots or catches, height, weight and birthplace
Former teamsThe Atlanta Thrashers and Arizona Coyotes appear in past seasons (active=false in /v1/hockeyteams); earlier seasons show the Phoenix Coyotes and Utah Hockey Club names

NHL standings fields

points, point_pct, wins, losses, ot_losses, regulation_wins, goals_for, goals_against, streak, last_10, home and road records, wildcard_rank and clinched.

4 endpoints

https://api.api-ninjas.com/v1/hockeygames

Returns schedules, live scores and final scores. Ask for one day, a team's season or one game; with no parameters you get today's games. Paid plans see games in progress with the score, period and clock updated throughout the game; the free plan sees their status and the final score once they end. The free plan covers the current season. Developer plans add the three previous seasons, and the Business tier and above gets the full season archive.

Full parameter and response reference: /v1/hockeygames.

Live Demo

Live demo · no API key required
Query parameters
league
date
team
season
season_type
status
game_id
limit
offset

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/hockeygames
Sample response
[
{
"game_id": "nhl-20261020-sjs-mtl",
"league": "nhl",
"sport": "ice_hockey",
"season": 2026,
"season_label": "2026-27",
"season_type": "regular",
"date": "2026-10-20",
"start_time": "2026-10-20T23:00:00Z",
"status": "final",
"status_detail": null,
"period": 4,
"clock": null,
"home_team": {
"team_id": "nhl-mtl",
"name": "Montreal Canadiens",
"abbreviation": "MTL"
},
"away_team": {
"team_id": "nhl-sjs",
"name": "San Jose Sharks",
"abbreviation": "SJS"
},
"home_score": 3,
"away_score": 4,
"period_scores": {
"home": [
1,
2,
0,
0
],
"away": [
1,
0,
2,
1
]
},
"decided_in": "overtime",
"winner": "nhl-sjs",
"venue": {
"name": "Bell Centre",
"city": "Montreal",
"state": "QC",
"country": "CA"
},
"neutral_site": false,
"original_date": null,
"updated_at": "2026-10-23T03:18:35Z"
}
]

Code Examples

curl -X GET "https://api.api-ninjas.com/v1/hockeygames" \ -H "X-Api-Key: YOUR_API_KEY"

https://api.api-ninjas.com/v1/hockeystandings

Returns the league table for a season, ordered by league rank, or by conference or division rank when you filter. Tables update throughout the season, shortly after each game ends. The free plan covers the current season. Developer plans add the three previous seasons, and the Business tier and above gets the full season archive.

Full parameter and response reference: /v1/hockeystandings.

Live Demo

Live demo · no API key required
Query parameters
league
season
conference
division

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/hockeystandings
Sample response
[
{
"league": "nhl",
"sport": "ice_hockey",
"season": 2026,
"season_label": "2026-27",
"team": {
"team_id": "nhl-car",
"name": "Carolina Hurricanes",
"abbreviation": "CAR"
},
"conference": "Eastern",
"division": "Metropolitan",
"games_played": 14,
"wins": 10,
"losses": 2,
"ot_losses": 2,
"points": 22,
"point_pct": 0.786,
"regulation_wins": 9,
"goals_for": 53,
"goals_against": 34,
"goal_differential": 19,
"streak": "W2",
"home_record": "3-1-1",
"away_record": "7-1-1",
"last_10": "8-1-1",
"league_rank": 1,
"conference_rank": 1,
"division_rank": 1,
"final": false
}
]

Code Examples

curl -X GET "https://api.api-ninjas.com/v1/hockeystandings" \ -H "X-Api-Key: YOUR_API_KEY"

https://api.api-ninjas.com/v1/hockeyteams

Lists teams with their league, conference, division and home venue. Available on every plan.

Full parameter and response reference: /v1/hockeyteams.

Live Demo

Live demo · no API key required
Query parameters
league
team
conference
division
active

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/hockeyteams
Sample response
[
{
"team_id": "nhl-tor",
"league": "nhl",
"sport": "ice_hockey",
"abbreviation": "TOR",
"name": "Toronto Maple Leafs",
"nickname": "Maple Leafs",
"city": "Toronto",
"conference": "Eastern",
"division": "Atlantic",
"venue": {
"name": "Scotiabank Arena",
"city": "Toronto",
"state": "ON",
"country": "CA"
},
"active": true
}
]

Code Examples

curl -X GET "https://api.api-ninjas.com/v1/hockeyteams" \ -H "X-Api-Key: YOUR_API_KEY"

https://api.api-ninjas.com/v1/hockeyplayers

Returns current rosters and player profiles, by team or by name. Rosters refresh every day. Available on every plan.

Full parameter and response reference: /v1/hockeyplayers.

Live Demo

Live demo · no API key required
Query parameters
league
team
name
player_id
position
limit
offset

Get a free API key to get started — no credit card required.

Headers
X-Api-KeyLog in or sign up to get your API key
GET
https://api.api-ninjas.com/v1/hockeyplayers?team=TOR
Sample response
[
{
"player_id": "nhl-p-4f1caed20d",
"league": "nhl",
"team": {
"team_id": "nhl-tor",
"name": "Toronto Maple Leafs",
"abbreviation": "TOR"
},
"name": "Auston Matthews",
"first_name": "Auston",
"last_name": "Matthews",
"position": "C",
"jersey_number": "34",
"height_in": 75,
"height_cm": 190,
"weight_lb": 214,
"weight_kg": 97,
"birth_date": "1997-09-17",
"birth_place": {
"city": "San Ramon",
"state": "CA",
"country": "US"
},
"roster_status": "active",
"shoots_catches": "L"
}
]

Code Examples

curl -X GET "https://api.api-ninjas.com/v1/hockeyplayers?team=TOR" \ -H "X-Api-Key: YOUR_API_KEY"

Frequently Asked Questions

  • Yes, but you must have a premium subscription. Commercial use of the NHL API is not permitted on the free tier. See our pricing page to choose a plan that fits your needs.
  • Sign up for a free account to instantly get your API key, then pass it in the X-Api-Key header on every request. The documentation above includes ready-to-run examples in cURL, Python, JavaScript, Node.js, and more.
  • Your API requests will simply be denied once you hit your monthly quota — you will never be charged more than the plan you signed up for. To increase your quota, you can upgrade your plan any time on our pricing page.
  • The API responds with a standard HTTP status code and a JSON error message describing the problem. See our error codes reference for the full list of codes and how to resolve each one, or contact support if you need help.
  • The NHL does not publish a documented, supported API for developers. The API Ninjas Hockey API provides NHL schedules, live and final scores, standings and rosters with league=nhl. API Ninjas is not affiliated with or endorsed by the NHL.
  • Final games have decided_in set to regulation, overtime or shootout. period_scores lists goals for each period played, including overtime. Shootout goals are not period goals, so a shootout win shows in the final score but not in any period.
  • Yes: points, point_pct, regulation_wins, ot_losses, wildcard_rank and the league's clinched indicator, plus division, conference and league ranks.
  • Call /v1/hockeygames?team=nhl-tor (or league=nhl&team=TOR) for the team's current season, with scores for the games already played. Results come 50 games per page; add offset=50 for the rest, or use limit on paid plans.

API Ninjas is not affiliated with or endorsed by the NFL, the NBA, the NHL, the NCAA or any other league, conference, competition, school or team. League, competition and team names are trademarks of their owners and are used only to identify them.