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
https://api-web.nhle.com/v1/draft/picks/{season}/{round} - Method: GET
- Description: Retrieve a list of draft picks for a specific season.
- Parameters:
season(int) - Season in YYYY formatround(string) - Selectable round (1-7, 1 for round 1 etc.) orallfor all selectable rounds
- Response: JSON format
curl -X GET "https://api-web.nhle.com/v1/draft/picks/2023/all"- 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%20and%20gameTypeId=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