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

NHL API

Get the NHL 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 Sports API with league=nhl. The same key and fields work for the other leagues.

Available endpoints:

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/sportsteams); 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/sportsgames

Returns schedules, live scores and final scores. Ask for one day, a team's season or one game; with only league 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 every stored season.

Full parameter and response reference: /v1/sportsgames.

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/sportsgames?league=nhl
Sample response
[
{
"game_id": "nhl-20261020-sjs-mtl",
"league": "nhl",
"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/sportsgames?league=nhl" \ -H "X-Api-Key: YOUR_API_KEY"

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

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 every stored season.

Full parameter and response reference: /v1/sportsstandings.

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/sportsstandings?league=nhl
Sample response
[
{
"league": "nhl",
"season": 2026,
"season_label": "2026-27",
"team": {
"team_id": "nhl-bos",
"name": "Boston Bruins",
"abbreviation": "BOS"
},
"conference": "Eastern",
"division": "Atlantic",
"games_played": 11,
"wins": 8,
"losses": 2,
"ot_losses": 1,
"points": 17,
"point_pct": 0.773,
"regulation_wins": 7,
"goals_for": 42,
"goals_against": 22,
"goal_differential": 20,
"streak": "W1",
"home_record": "4-1-0",
"away_record": "4-1-1",
"last_10": "7-2-1",
"league_rank": 1,
"conference_rank": 1,
"division_rank": 1,
"final": false
}
]

Code Examples

curl -X GET "https://api.api-ninjas.com/v1/sportsstandings?league=nhl" \ -H "X-Api-Key: YOUR_API_KEY"

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

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

Full parameter and response reference: /v1/sportsteams.

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/sportsteams?league=nhl
Sample response
[
{
"team_id": "nhl-tor",
"league": "nhl",
"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/sportsteams?league=nhl" \ -H "X-Api-Key: YOUR_API_KEY"

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

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/sportsplayers.

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/sportsplayers?league=nhl&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/sportsplayers?league=nhl&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 Sports 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/sportsgames?team=nhl-tor (or league=nhl&team=TOR) for every game of the team's current season, with scores for the games already played.

API Ninjas is not affiliated with or endorsed by the NFL, the NBA, the NHL or any team. League and team names are trademarks of their owners and are used only to identify them. If a result differs from the league's official record, the official record prevails.