This document aims to serve as an unofficial reference for the NHL APIs. Corrections and/or suggestions are welcome.
Please note that there appears to be two primary sources for official NHL APIs. (api-web.nhle.com and api.nhle.com/stats/rest). This document is broken into distinct sections detailing each API.
- Base URL
- Player Information
- Team Information
- League Schedule Information
- Game Information
- Playoff Information
- Season
- Draft
- Miscellaneous
This section provides documentation for the NHL Web API (https://api-web.nhle.com/).
All endpoints described in this section are relative to the following base URL:
https://api-web.nhle.com/
- Endpoint:
/v1/player/{player}/game-log/{season}/{game-type}
- Method: GET
- Description: Retrieve the game log for a specific player, season, and game type.
- Parameters:
player
(int) - Player IDseason
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.game-type
(int) - Game type (guessing 2 for regular season, 3 for playoffs)
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/player/8478402/game-log/20232024/2"
- Endpoint:
/v1/player/{player}/landing
- Method: GET
- Description: Retrieve information for a specific player.
- Parameters:
player
(int) - Player ID
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/player/8478402/landing"
- Endpoint:
/v1/player/{player}/game-log/now
- Method: GET
- Description: Retrieve the game log for a specific player as of the current moment.
- Parameters:
player
(int) - Player ID
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/player/8478402/game-log/now"
- Endpoint:
/v1/skater-stats-leaders/current
- Method: GET
- Description: Retrieve current skater stats leaders.
- Parameters:
categories
(query, string) - Optionallimit
(query, int) - Optional (Note: a limit of -1 will return all results)
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/skater-stats-leaders/current?categories=goals&limit=5"
- Endpoint:
/v1/skater-stats-leaders/{season}/{game-type}
- Method: GET
- Description: Retrieve skater stats leaders for a specific season and game type.
- Parameters:
season
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.game-type
(int) - Game type (guessing 2 for regular season, 3 for playoffs)
- Parameters:
categories
(query, string) - Optionallimit
(query, int) - Optional (Note: a limit of -1 will return all results)
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/skater-stats-leaders/20222023/2?categories=assists&limit=3"
- Endpoint:
/v1/goalie-stats-leaders/current
- Method: GET
- Description: Retrieve current goalie stats leaders.
- Request Parameters:
categories
(query, string) - Optionallimit
(query, int) - Optional (Note: a limit of -1 will return all results)
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/goalie-stats-leaders/current?categories=wins&limit=5"
- Endpoint:
/v1/goalie-stats-leaders/{season}/{game-type}
- Method: GET
- Description: Retrieve goalie stats leaders for a specific season and game type.
- Parameters:
season
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.game-type
(int) - Game type (guessing 2 for regular season, 3 for playoffs)
- Request Parameters:
categories
(query, string) - Optionallimit
(query, int) - Optional (Note: a limit of -1 will return all results)
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/goalie-stats-leaders/20232024/2?categories=wins&limit=3"
- Endpoint:
/v1/player-spotlight
- Method: GET
- Description: Retrieve information about players in the "spotlight".
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/player-spotlight"
- Endpoint:
/v1/standings/now
- Method: GET
- Description: Retrieve the standings as of the current moment.
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/standings/now"
- Endpoint:
/v1/standings/{date}
- Method: GET
- Description: Retrieve the standings for a specific date.
- Parameters:
date
(string) - Date in YYYY-MM-DD format
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/standings/2023-11-10"
- Endpoint:
/v1/standings-season
- Method: GET
- Description: Retrieves information for each season's standings
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/standings-season"
- Endpoint:
/v1/club-stats/{team}/now
- Method: GET
- Description: Retrieve current statistics for a specific club.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/club-stats/TOR/now"
- Endpoint:
/v1/club-stats-season/{team}
- Method: GET
- Description: Returns an overview of the stats for each season for a specific club. Seems to only indicate the gametypes played in each season.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/club-stats-season/TOR"
- Endpoint:
/v1/club-stats/{team}/{season}/{game-type}
- Method: GET
- Description: Retrieve the stats for a specific team, season, and game type.
- Parameters:
team
(string) - Three-letter team codeseason
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.game-type
(int) - Game type (guessing 2 for regular season, 3 for playoffs)
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/club-stats/TOR/20232024/2"
- Endpoint:
/v1/scoreboard/{team}/now
- Method: GET
- Description: Retrieve the scoreboard for a specific team as of the current moment.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/scoreboard/TOR/now"
- Endpoint:
/v1/roster/{team}/current
- Method: GET
- Description: Retrieve the roster for a specific team as of the current moment.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/roster/TOR/current"
- Endpoint:
/v1/roster/{team}/{season}
- Method: GET
- Description: Retrieve the roster for a specific team and season.
- Parameters:
team
(string) - Three-letter team codeseason
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/roster/TOR/20232024"
- Endpoint:
/v1/roster-season/{team}
- Method: GET
- Description: Seems to just return a list of all of the seasons that the team played.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/roster-season/TOR"
- Endpoint:
/v1/prospects/{team}
- Method: GET
- Description: Retrieve prospects for a specific team.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/prospects/TOR"
- Endpoint:
/v1/club-schedule-season/{team}/now
- Method: GET
- Description: Retrieve the season schedule for a specific team as of the current moment.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/club-schedule-season/TOR/now"
- Endpoint:
/v1/club-schedule-season/{team}/{season}
- Method: GET
- Description: Retrieve the season schedule for a specific team and season.
- Parameters:
team
(string) - Three-letter team codeseason
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/club-schedule-season/TOR/20232024"
- Endpoint:
/v1/club-schedule/{team}/month/now
- Method: GET
- Description: Retrieve the monthly schedule for a specific team as of the current moment.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/month/now"
- Endpoint:
/v1/club-schedule/{team}/month/{month}
- Method: GET
- Description: Retrieve the monthly schedule for a specific team and month.
- Parameters:
team
(string) - Three-letter team codemonth
(string) - Month in YYYY-MM format
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/month/2023-11"
- Endpoint:
/v1/club-schedule/{team}/week/{date}
- Method: GET
- Description: Retrieve the weekly schedule for a specific team and date.
- Parameters:
team
(string) - Three-letter team codedate
(string) - Date in YYYY-MM-DD format
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/week/2023-11-10"
- Endpoint:
/v1/club-schedule/{team}/week/now
- Method: GET
- Description: Retrieve the weekly schedule for a specific team as of the current moment.
- Parameters:
team
(string) - Three-letter team code
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/week/now"
- Endpoint:
/v1/schedule/now
- Method: GET
- Description: Retrieve the current schedule.
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/schedule/now"
- Endpoint:
/v1/schedule/{date}
- Method: GET
- Description: Retrieve the schedule for a specific date.
- Parameters:
date
(string) - Date format: YYYY-MM-DD
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/schedule/2023-11-10"
- Endpoint:
/v1/schedule-calendar/now
- Method: GET
- Description: Retrieve the schedule calendar as of the current moment.
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/schedule-calendar/now"
- Endpoint:
/v1/schedule-calendar/{date}
- Method: GET
- Description: Retrieve the schedule calendar for a specific date.
- Parameters:
date
(string) - Date in YYYY-MM-DD format
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/schedule-calendar/2023-11-10"
- Endpoint:
/v1/score/now
- Method: GET
- Description: Retrieve daily scores as of the current moment.
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/score/now"
- Endpoint:
/v1/score/{date}
- Method: GET
- Description: Retrieve daily scores for a specific date.
- Parameters:
date
(string) - Date format: YYYY-MM-DD
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/score/2023-11-10"
- Endpoint:
/v1/scoreboard/now
- Method: GET
- Description: Retrieve the overall scoreboard as of the current moment.
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/scoreboard/now"
- Endpoint:
/v1/where-to-watch
- Method: GET
- Description: Retrieve information about streaming options.
- Parameters:
include
(query, string) - Optional
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/where-to-watch"
- Endpoint:
/v1/gamecenter/{game-id}/play-by-play
- Method: GET
- Description: Retrieve play-by-play information for a specific game.
- Parameters:
game-id
(int) - Game ID
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/gamecenter/2023020204/play-by-play"
- Endpoint:
/v1/gamecenter/{game-id}/landing
- Method: GET
- Description: Retrieve landing information for a specific game.
- Parameters:
game-id
(int) - Game ID
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/gamecenter/2023020204/landing"
- Endpoint:
/v1/gamecenter/{game-id}/boxscore
- Method: GET
- Description: Retrieve boxscore information for a specific game.
- Parameters:
game-id
(int) - Game ID
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/gamecenter/2023020204/boxscore"
- Endpoint:
/v1/wsc/game-story/{game-id}
- Method: GET
- Description: Retrieve game story information for a specific game.
- Parameters:
game-id
(int) - Game ID
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/wsc/game-story/2023020204"
- Endpoint:
/v1/network/tv-schedule/{date}
- Method: GET
- Description: Retrieve the TV schedule for a specific date.
- Parameters:
date
(string) - Date in YYYY-MM-DD format
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/network/tv-schedule/2023-11-10"
- Endpoint:
/v1/network/tv-schedule/now
- Method: GET
- Description: Retrieve the current TV schedule.
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/network/tv-schedule/now"
- Endpoint:
/v1/partner-game/{country-code}/now
- Method: GET
- Description: Retrieve odds for games in a specific country as of the current moment.
- Parameters:
country-code
(string) - Country code
- Response: JSON format
curl -L -X GET "https://api-web.nhle.com/v1/partner-game/US/now"
- Endpoint:
/v1/playoff-series/carousel/{season}/
- Method: GET
- Description: Retrieve an overview of each playoff series.
- Parameters:
season
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/playoff-series/carousel/20232024/"
- Endpoint:
/v1/schedule/playoff-series/{season}/{series_letter}/
- Method: GET
- Description: Retrieve the schedule for a specific playoff series.
- Parameters:
season
(int) - Season in YYYYYYYY format, where the first four digits represent the start year of the season, and the last four digits represent the end year.series_letter
(string) - Single letter indicating which series to retrieve. Is sequential in alphabetical order.
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/schedule/playoff-series/20232024/a"
- Endpoint:
/v1/playoff-bracket/{year}
- Method: GET
- Description: Retrieve the current bracket for a specific year's playoffs.
- Parameters:
year
(int) - Year in YYYY format
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/playoff-bracket/2022"
- Endpoint:
/v1/season
- Method: GET
- Description: Retrieve a list of all season IDs past & present in the NHL.
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/season"
- Endpoint
/v1/draft/rankings/now
- Method: GET
- Description: Retrieve a list of all draft prospects by category of prospect as of the current moment.
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/draft/rankings/now"
- Endpoint
/v1/draft/rankings/{season}/{prospect_category}
- Method: GET
- Description: Retrieve a list of all draft prospects by category of prospect for a specific season.
- Parameters:
season
(int) - Season in YYYY formatprospect_category
(int) - Prospect Category (1 - North American Skater, 2 - International Skater, 3 - North American Goalie, 4 - International Goalie)
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/draft/rankings/2023/1"
- Endpoint:
/v1/meta
- Method: GET
- Description: Retrieve meta information.
- Request Parameters:
players
(query, string) - Optionalteams
(query, string) - OptionalseasonStates
(query, string) - Optional (Unsure what the options might be here)
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/meta?players=8478402&teams=EDM,TOR"
- Endpoint:
/v1/meta/game/{game-id}
- Method: GET
- Description: Retrieve information for a specific game.
- Parameters:
game-id
(int) - Game ID
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/meta/game/2023020204"
- Endpoint:
/v1/location
- Method: GET
- Description: Returns country code tha the webserver thinks the user is in.
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/location"
- Endpoint:
/model/v1/openapi.json
- Method: GET
- Description: Retrieve the OpenAPI specification. (Seems to return 404 currently)
- Response: JSON or YAML format
curl -X GET "https://api-web.nhle.com/model/v1/openapi.json"
For the full WADL with extended resources: WADL Link
This section provides documentation for the NHL Stats API (https://api.nhle.com/stats/rest).
All endpoints described in this section are relative to the following base URL:
https://api.nhle.com/stats/rest
- Endpoint:
/{lang}/players
- Method: GET
- Description: Retrieve player information. Currently seems to return a truncated list with a total.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/players"
- Endpoint:
/{lang}/leaders/skaters/{attribute}
- Method: GET
- Description: Retrieve skater leaders for a specific attribute.
- Parameters:
attribute
(string) - Skater attributelang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/leaders/skaters/points"
- Endpoint:
/{lang}/milestones/skaters
- Method: GET
- Description: Retrieve skater milestones.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/milestones/skaters"
- Endpoint:
/{lang}/skater
- Method: GET
- Description: Retrieve skater information.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/skater"
- Endpoint:
/{lang}/skater/{report}
- Method: GET
- Description: Retrieve skater stats for a specific report.
- Parameters:
report
(string) - Skater reportlang
(string) - Language code
- Request Parameters:
isAggregate
(query, boolean) - OptionalisGame
(query, boolean) - OptionalfactCayenneExp
(query, string) - Optionalinclude
(query, string) - Optionalexclude
(query, string) - OptionalcayenneExp
(query, string) - Requiredsort
(query, string) - Optionaldir
(query, string) - Optionalstart
(query, int) - Optionallimit
(query, int) - Optional (Note: a limit of -1 will return all results)
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/skater/summary?limit=72&start=17&sort=points&cayenneExp=seasonId=20232024"
- Endpoint:
/{lang}/leaders/goalies/{attribute}
- Method: GET
- Description: Retrieve goalie leaders for a specific attribute.
- Parameters:
attribute
(string) - Goalie attributelang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/leaders/goalies/gaa"
- Endpoint:
/{lang}/goalie/{report}
- Method: GET
- Description: Retrieve goalie stats for a specific report.
- Parameters:
report
(string) - Goalie reportlang
(string) - Language code
- Request Parameters:
isAggregate
(query, boolean) - OptionalisGame
(query, boolean) - OptionalfactCayenneExp
(query, string) - Optionalinclude
(query, string) - Optionalexclude
(query, string) - OptionalcayenneExp
(query, string) - Requiredsort
(query, string) - Optionaldir
(query, string) - Optionalstart
(query, int) - Optionallimit
(query, int) - Optional (Note: a limit of -1 will return all results)
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/goalie/summary?limit=72&start=15&sort=wins&cayenneExp=seasonId=20232024"
- Endpoint:
/{lang}/milestones/goalies
- Method: GET
- Description: Retrieve goalie milestones.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/milestones/goalies"
- Endpoint:
/{lang}/draft
- Method: GET
- Description: Retrieve draft information.
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/draft"
- Endpoint:
/{lang}/team
- Method: GET
- Description: Retrieve list of all teams.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/team"
- Endpoint:
/{lang}/team/{report}
- Method: GET
- Description: Retrieve team stats for a specific report.
- Parameters:
report
(string) - Team reportlang
(string) - Language code
- Request Parameters:
isAggregate
(query, boolean) - OptionalisGame
(query, boolean) - OptionalfactCayenneExp
(query, string) - Optionalinclude
(query, string) - Optionalexclude
(query, string) - OptionalcayenneExp
(query, string) - Optionalsort
(query, string) - Optionaldir
(query, string) - Optionalstart
(query, int) - Optionallimit
(query, int) - Optional (Note: a limit of -1 will return all results)
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/team/summary?sort=shotsForPerGame&cayenneExp=seasonId=20232024 and gameTypeId=2"
- Endpoint:
/{lang}/franchise
- Method: GET
- Description: Retrieve list of all franchises.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/franchise"
- Endpoint:
/{lang}/componentSeason
- Method: GET
- Description: Retrieve component season information.
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/componentSeason"
- Endpoint:
/{lang}/season
- Method: GET
- Description: Retrieve season information.
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/season"
- Endpoint:
/{lang}/game
- Method: GET
- Description: Retrieve game information.
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/game"
- Endpoint:
/{lang}/game/meta
- Method: GET
- Description: Retrieve metadata for game.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/game/meta"
- Endpoint:
/{lang}/config
- Method: GET
- Description: Retrieve configuration information.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/config"
- Endpoint:
/ping
- Method: GET
- Description: Ping the server to check connectivity.
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/ping"
- Endpoint:
/{lang}/country
- Method: GET
- Description: Retrieve country information. Returns list of all countries with a hockey presence(?)
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/country"
- Endpoint:
/{lang}/shiftcharts?cayenneExp=gameId={game_id}
- Method: GET
- Description: Retrieve shift charts for a specific game.
- Parameters:
lang
(string) - Language codegame-id
(int) - Game ID
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/shiftcharts?cayenneExp=gameId=2021020001"
- Endpoint:
/{lang}/glossary
- Method: GET
- Description: Retrieve the glossary for a specific language.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/glossary"
- Endpoint:
/{lang}/content/module
- Method: GET
- Description: Retrieve content module information. Not sure what this one is for. Example returns empty data.
- Parameters:
lang
(string) - Language code
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/en/content/module/overview"
- Endpoint:
/content/module/meta
- Method: GET
- Description: Retrieve metadata for content modules. Example returns 404
- Response: JSON format
curl -X GET "https://api.nhle.com/stats/rest/content/module/meta"
For the full WADL with extended resources: WADL Link