├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Zach M 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NHL API Documentation 2 | 3 | This document aims to serve as an unofficial reference for the NHL APIs. Corrections and/or suggestions are welcome. 4 | 5 | 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. 6 | 7 | ## Table of Contents 8 | ### [api-web.nhle.com](#nhl-web-api-documentation) 9 | 1. [Base URL](#base-url) 10 | 2. [Player Information](#player-information) 11 | 1. [Players](#players) 12 | 1. [Get Game Log](#get-game-log) 13 | 2. [Get Specific Player Info](#get-specific-player-info) 14 | 3. [Get Game Log As of Now](#get-game-log-as-of-now) 15 | 2. [Skaters](#skaters) 16 | 1. [Get Current Skater Stats Leaders](#get-current-skater-stats-leaders) 17 | 2. [Get Skater Stats Leaders for a Specific Season and Game Type](#get-skater-stats-leaders-for-a-specific-season-and-game-type) 18 | 3. [Goalies](#goalies) 19 | 1. [Get Current Goalie Stats Leaders](#get-current-goalie-stats-leaders) 20 | 2. [Get Goalie Stats Leaders by Season](#get-goalie-stats-leaders-by-season) 21 | 4. [Player Spotlight](#player-spotlight) 22 | 1. [Get Players](#get-players) 23 | 3. [Team Information](#team-information) 24 | 1. [Standings](#standings) 25 | 1. [Get Standings](#get-standings) 26 | 2. [Get Standings by Date](#get-standings-by-date) 27 | 3. [Get Standings information for each Season](#get-standings-information-for-each-season) 28 | 2. [Stats](#stats) 29 | 1. [Get Club Stats Now](#get-club-stats-now) 30 | 2. [Get Club Stats for the Season for a Team](#get-club-stats-for-the-season-for-a-team) 31 | 3. [Get Club Stats by Season and Game Type](#get-club-stats-by-season-and-game-type) 32 | 4. [Get Team Scoreboard](#get-team-scoreboard) 33 | 3. [Roster](#roster) 34 | 1. [Get Team Roster As of Now](#get-team-roster-as-of-now) 35 | 2. [Get Team Roster by Season](#get-team-roster-by-season) 36 | 3. [Get Roster Season for Team](#get-roster-season-for-team) 37 | 4. [Get Team Prospects](#get-team-prospects) 38 | 4. [Schedule](#schedule) 39 | 1. [Get Team Season Schedule As of Now](#get-team-season-schedule-as-of-now) 40 | 2. [Get Team Season Schedule](#get-team-season-schedule) 41 | 3. [Get Month Schedule As of Now](#get-month-schedule-as-of-now) 42 | 4. [Get Month Schedule](#get-month-schedule) 43 | 5. [Get Week Schedule](#get-week-schedule) 44 | 6. [Get Week Schedule As of Now](#get-week-schedule-as-of-now) 45 | 4. [League Schedule Information](#league-schedule-information) 46 | 1. [Schedule](#schedule-1) 47 | 1. [Get Current Schedule](#get-current-schedule) 48 | 2. [Get Schedule by Date](#get-schedule-by-date) 49 | 2. [Schedule Calendar](#schedule-calendar) 50 | 1. [Get Schedule Calendar As of Now](#get-schedule-calendar-as-of-now) 51 | 2. [Get Schedule Calendar for a Specific Date](#get-schedule-calendar-for-a-specific-date) 52 | 5. [Game Information](#game-information) 53 | 1. [Daily Scores](#daily-scores) 54 | 1. [Get Daily Scores As of Now](#get-daily-scores-as-of-now) 55 | 2. [Get Daily Scores by Date](#get-daily-scores-by-date) 56 | 3. [Get Scoreboard](#get-scoreboard) 57 | 2. [Where to Watch](#where-to-watch) 58 | 1. [Get Streams](#get-streams) 59 | 3. [Game Events](#game-events) 60 | 1. [Get Play By Play](#get-play-by-play) 61 | 2. [Get Landing](#get-landing) 62 | 3. [Get Boxscore](#get-boxscore) 63 | 4. [Get Game Story](#get-game-story) 64 | 4. [Network](#network) 65 | 1. [Get TV Schedule for a Specific Date](#get-tv-schedule-for-a-specific-date) 66 | 2. [Get Current TV Schedule](#get-current-tv-schedule) 67 | 5. [Odds](#odds) 68 | 1. [Get Partner Game Odds](#get-partner-game-odds) 69 | 6. [Playoff Information](#playoff-information) 70 | 1. [Overview](#overview) 71 | 1. [Playoff Series Carousel](#playoff-series-carousel) 72 | 2. [Schedule](#schedule-2) 73 | 1. [Get Playoff Series Schedule](#get-playoff-series-schedule) 74 | 3. [Bracket](#bracket) 75 | 1. [Get Playoff Bracket](#get-playoff-bracket) 76 | 7. [Season](#season) 77 | 1. [Get Seasons](#get-seasons) 78 | 8. [Draft](#draft) 79 | 1. [Get Draft Rankings](#get-draft-rankings) 80 | 2. [Get Draft Rankings by Date](#get-draft-rankings-by-date) 81 | 3. [Get Draft Tracker Now](#get-draft-tracker-now) 82 | 4. [Get Draft Picks Now](#get-draft-picks-now) 83 | 5. [Get Draft Picks](#get-draft-picks) 84 | 9. [Miscellaneous](#miscellaneous) 85 | 1. [Meta](#meta) 86 | 1. [Get Meta Information](#get-meta-information) 87 | 2. [Get Game Information](#get-game-information) 88 | 3. [Get Location](#get-location) 89 | 4. [Get Playoff Series Metadata](#get-playoff-series-metadata) 90 | 2. [Postal Lookup](#postal-lookup) 91 | 1. [Get Postal Code Information](#get-postal-code-information) 92 | 3. [Game Replays](#game-replays) 93 | 1. [Get Goal Replay](#get-goal-replay) 94 | 2. [Get Play Replay](#get-play-replay) 95 | 4. [Additional Game Content](#additional-game-content) 96 | 1. [Get Game Right Rail Content](#get-game-right-rail-content) 97 | 2. [Get WSC Play By Play](#get-wsc-play-by-play) 98 | 5. [OpenAPI Specification](#openapi-specification) 99 | 1. [Get OpenAPI Specification](#get-openapi-specification) 100 | 10. [NHL Edge Data](#NHL Edge Data) 101 | 1. [Team Data](#Team Data) 102 | 1. [Team Details](#Team Details) 103 | 2. [Team Landing](#Team Landing) 104 | 3. [Team Comparison](#Team Comparison) 105 | 4. [Team Skating Distance - Top 10](#Team Skating Distance - Top 10) 106 | 5. [Team Skating Distance - Detail](#Team Skating Distance - Detail) 107 | 6. [Team Skating Speed - Top 10](#Team Skating Speed - Top 10) 108 | 7. [Team Skating Speed - Detail](#Team Skating Speed - Detail) 109 | 8. [Team Zone Time - Top 10](#Team Zone Time - Top 10) 110 | 9. [Team Zone Time - Details](#Team Zone Time - Details) 111 | 10. [Team Shot Speed - Top 10](#Team Shot Speed - Top 10) 112 | 11. [Team Shot Speed - Detail](#Team Shot Speed - Detail) 113 | 12. [Team Shot Location - Top 10](#Team Shot Location - Top 10) 114 | 13. [Team Shot Location - Detail](#Team Shot Location - Detail) 115 | 2. [Skater Data](#Skater Data) 116 | 1. [Skater Detail](#Skater Detail) 117 | 2. [Skater Landing](#Skater Landing) 118 | 3. [Skater Comparison](#Skater Comparison) 119 | 4. [Skater Distance - Top 10](#Skater Distance - Top 10) 120 | 5. [Skater Distance - Detail](#Skater Distance - Detail) 121 | 6. [Skater Speed - Top 10](#Skater Speed - Top 10) 122 | 7. [Skater Speed - Detail](#Skater Speed - Detail) 123 | 8. [Skater Zone Time - Top 10](#Skater Zone Time - Top 10) 124 | 9. [Skater Zone Time - Detail](#Skater Zone Time - Detail) 125 | 10. [Skater Shot Speed - Top 10](#Skater Shot Speed - Top 10) 126 | 11. [Skater Shot Speed - Detail](#Skater Shot Speed - Detail) 127 | 12. [Skater Shot Location - Top 10](#Skater Shot Location - Top 10) 128 | 13. [Skater Shot Location - Detail](#Skater Shot Location - Detail) 129 | 14. [CAT - Skater Detail](#CAT - Skater Detail) 130 | 3. [Goalie Data](#Goalie Data) 131 | 1. [Goalie Detail](#Goalie Detail) 132 | 2. [Goalie Landing](#Goalie Landing) 133 | 3. [Goalie Comparison](#Goalie Comparison) 134 | 4. [Goalie 5v5 - Top 10](#Goalie 5v5 - Top 10) 135 | 5. [Goalie 5v5 - Detail](#Goalie 5v5 - Detail) 136 | 6. [Goalie Shot Location - Top 10](#Goalie Shot Location - Top 10) 137 | 7. [Goalie Shot Location - Detail](#Goalie Shot Location - Detail) 138 | 8. [Goalie Save Percentage - Top 10](#Goalie Save Percentage - Top 10) 139 | 9. [Goalie Save Percentage - Detail](#Goalie Save Percentage - Detail) 140 | 10. [CAT - Goalie Detail](#CAT - Goalie Detail) 141 | --- 142 | ### [api.nhle.com/stats/rest](#nhl-stats-api-documentation) 143 | 1. [Base URL](#base-url-1) 144 | 2. [Players](#players-1) 145 | 1. [Players](#players-2) 146 | 1. [Get Player Information](#get-player-information) 147 | 2. [Skaters](#skaters) 148 | 1. [Get Skater Leaders](#get-skater-leaders) 149 | 2. [Get Skater Milestones](#get-skater-milestones) 150 | 3. [Get Skater Information](#get-skater-information) 151 | 4. [Get Skater Stats](#get-skater-stats) 152 | 3. [Goalies](#goalies) 153 | 1. [Get Goalie Leaders](#get-goalie-leaders) 154 | 2. [Get Goalie Stats](#get-goalie-stats) 155 | 3. [Get Goalie Milestones](#get-goalie-milestones) 156 | 4. [Draft](#draft) 157 | 1. [Get Draft Information](#get-draft-information) 158 | 4. [Teams](#teams) 159 | 1. [Get Team Information](#get-team-information) 160 | 2. [Get Team By ID](#get-team-by-id) 161 | 3. [Get Team Stats](#get-team-stats) 162 | 4. [Get Franchise Information](#get-franchise-information) 163 | 5. [Season](#season) 164 | 1. [Get Component Season](#get-component-season) 165 | 2. [Get Season](#get-season) 166 | 6. [Game](#game) 167 | 1. [Get Game Information](#get-game-information-1) 168 | 2. [Get Game Metadata](#get-game-metadata) 169 | 7. [Miscellaneous](#miscellaneous-1) 170 | 1. [Configuration](#configuration) 171 | 1. [Get Configuration](#get-configuration) 172 | 2. [Ping the Server](#ping-the-server) 173 | 3. [Get Country Information](#get-country-information) 174 | 4. [Get Shift Charts](#get-shift-charts) 175 | 5. [Glossary](#glossary) 176 | 1. [Get Glossary](#get-glossary) 177 | 6. [Content Module](#content-module) 178 | 1. [Get Content Module](#get-content-module) 179 | 180 | 181 | --- 182 | 183 | 184 | # NHL Web API Documentation 185 | 186 | This section provides documentation for the NHL Web API (https://api-web.nhle.com/). 187 | 188 | 189 | ## Base URL 190 | 191 | All endpoints described in this section are relative to the following base URL: 192 | 193 | ``` 194 | https://api-web.nhle.com/ 195 | ``` 196 | 197 | 198 | 199 | ## Player Information 200 | 201 | ### Players 202 | 203 | #### Get Game Log 204 | - **Endpoint**: `/v1/player/{player}/game-log/{season}/{game-type}` 205 | - **Method**: GET 206 | - **Description**: Retrieve the game log for a specific player, season, and game type. 207 | - **Parameters**: 208 | - `player` (int) - Player ID 209 | - `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. 210 | - `game-type` (int) - Game type (guessing 2 for regular season, 3 for playoffs) 211 | - **Response**: JSON format 212 | 213 | ###### Example using cURL: 214 | 215 | ```bash 216 | curl -X GET "https://api-web.nhle.com/v1/player/8478402/game-log/20232024/2" 217 | ``` 218 | 219 | #### Get Specific Player Info 220 | - **Endpoint**: `/v1/player/{player}/landing` 221 | - **Method**: GET 222 | - **Description**: Retrieve information for a specific player. 223 | - **Parameters**: 224 | - `player` (int) - Player ID 225 | - **Response**: JSON format 226 | 227 | ###### Example using cURL: 228 | 229 | ```bash 230 | curl -X GET "https://api-web.nhle.com/v1/player/8478402/landing" 231 | ``` 232 | 233 | #### Get Game Log As of Now 234 | - **Endpoint**: `/v1/player/{player}/game-log/now` 235 | - **Method**: GET 236 | - **Description**: Retrieve the game log for a specific player as of the current moment. 237 | - **Parameters**: 238 | - `player` (int) - Player ID 239 | - **Response**: JSON format 240 | 241 | ###### Example using cURL: 242 | 243 | ```bash 244 | curl -L -X GET "https://api-web.nhle.com/v1/player/8478402/game-log/now" 245 | ``` 246 | ### Skaters 247 | 248 | #### Get Current Skater Stats Leaders 249 | - **Endpoint**: `/v1/skater-stats-leaders/current` 250 | - **Method**: GET 251 | - **Description**: Retrieve current skater stats leaders. 252 | - **Parameters**: 253 | - `categories` (query, string) - Optional 254 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 255 | - **Response**: JSON format 256 | 257 | ###### Example using cURL: 258 | 259 | ```bash 260 | curl -L -X GET "https://api-web.nhle.com/v1/skater-stats-leaders/current?categories=goals&limit=5" 261 | ``` 262 | 263 | #### Get Skater Stats Leaders for a Specific Season and Game Type 264 | - **Endpoint**: `/v1/skater-stats-leaders/{season}/{game-type}` 265 | - **Method**: GET 266 | - **Description**: Retrieve skater stats leaders for a specific season and game type. 267 | - **Parameters**: 268 | - `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. 269 | - `game-type` (int) - Game type (guessing 2 for regular season, 3 for playoffs) 270 | - **Parameters**: 271 | - `categories` (query, string) - Optional 272 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 273 | - **Response**: JSON format 274 | 275 | ###### Example using cURL: 276 | 277 | ```bash 278 | curl -X GET "https://api-web.nhle.com/v1/skater-stats-leaders/20222023/2?categories=assists&limit=3" 279 | ``` 280 | 281 | ### Goalies 282 | 283 | #### Get Current Goalie Stats Leaders 284 | - **Endpoint**: `/v1/goalie-stats-leaders/current` 285 | - **Method**: GET 286 | - **Description**: Retrieve current goalie stats leaders. 287 | - **Request Parameters**: 288 | - `categories` (query, string) - Optional 289 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 290 | - **Response**: JSON format 291 | 292 | ###### Example using cURL: 293 | 294 | ```bash 295 | curl -L -X GET "https://api-web.nhle.com/v1/goalie-stats-leaders/current?categories=wins&limit=5" 296 | ``` 297 | 298 | #### Get Goalie Stats Leaders by Season 299 | - **Endpoint**: `/v1/goalie-stats-leaders/{season}/{game-type}` 300 | - **Method**: GET 301 | - **Description**: Retrieve goalie stats leaders for a specific season and game type. 302 | - **Parameters**: 303 | - `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. 304 | - `game-type` (int) - Game type (guessing 2 for regular season, 3 for playoffs) 305 | - **Request Parameters**: 306 | - `categories` (query, string) - Optional 307 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 308 | - **Response**: JSON format 309 | 310 | ###### Example using cURL: 311 | 312 | ```bash 313 | curl -X GET "https://api-web.nhle.com/v1/goalie-stats-leaders/20232024/2?categories=wins&limit=3" 314 | ``` 315 | 316 | ### Player Spotlight 317 | 318 | #### Get Players 319 | - **Endpoint**: `/v1/player-spotlight` 320 | - **Method**: GET 321 | - **Description**: Retrieve information about players in the "spotlight". 322 | - **Response**: JSON format 323 | 324 | ###### Example using cURL: 325 | 326 | ```bash 327 | curl -X GET "https://api-web.nhle.com/v1/player-spotlight" 328 | ``` 329 | 330 | 331 | 332 | ## Team Information 333 | 334 | ### Standings 335 | 336 | #### Get Standings 337 | - **Endpoint**: `/v1/standings/now` 338 | - **Method**: GET 339 | - **Description**: Retrieve the standings as of the current moment. 340 | - **Response**: JSON format 341 | 342 | ###### Example using cURL: 343 | 344 | ```bash 345 | curl -L -X GET "https://api-web.nhle.com/v1/standings/now" 346 | ``` 347 | 348 | #### Get Standings by Date 349 | - **Endpoint**: `/v1/standings/{date}` 350 | - **Method**: GET 351 | - **Description**: Retrieve the standings for a specific date. 352 | - **Parameters**: 353 | - `date` (string) - Date in YYYY-MM-DD format 354 | - **Response**: JSON format 355 | 356 | ###### Example using cURL: 357 | 358 | ```bash 359 | curl -X GET "https://api-web.nhle.com/v1/standings/2023-11-10" 360 | ``` 361 | 362 | #### Get Standings information for each Season 363 | - **Endpoint**: `/v1/standings-season` 364 | - **Method**: GET 365 | - **Description**: Retrieves information for each season's standings 366 | - **Response**: JSON format 367 | 368 | ###### Example using cURL: 369 | 370 | ```bash 371 | curl -X GET "https://api-web.nhle.com/v1/standings-season" 372 | ``` 373 | 374 | ### Stats 375 | 376 | #### Get Club Stats Now 377 | - **Endpoint**: `/v1/club-stats/{team}/now` 378 | - **Method**: GET 379 | - **Description**: Retrieve current statistics for a specific club. 380 | - **Parameters**: 381 | - `team` (string) - Three-letter team code 382 | - **Response**: JSON format 383 | 384 | ###### Example using cURL: 385 | 386 | ```bash 387 | curl -L -X GET "https://api-web.nhle.com/v1/club-stats/TOR/now" 388 | ``` 389 | 390 | #### Get Club Stats for the Season for a Team 391 | - **Endpoint**: `/v1/club-stats-season/{team}` 392 | - **Method**: GET 393 | - **Description**: Returns an overview of the stats for each season for a specific club. Seems to only indicate the gametypes played in each season. 394 | - **Parameters**: 395 | - `team` (string) - Three-letter team code 396 | - **Response**: JSON format 397 | 398 | ###### Example using cURL: 399 | 400 | ```bash 401 | curl -X GET "https://api-web.nhle.com/v1/club-stats-season/TOR" 402 | ``` 403 | 404 | #### Get Club Stats by Season and Game Type 405 | - **Endpoint**: `/v1/club-stats/{team}/{season}/{game-type}` 406 | - **Method**: GET 407 | - **Description**: Retrieve the stats for a specific team, season, and game type. 408 | - **Parameters**: 409 | - `team` (string) - Three-letter team code 410 | - `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. 411 | - `game-type` (int) - Game type (guessing 2 for regular season, 3 for playoffs) 412 | - **Response**: JSON format 413 | 414 | ###### Example using cURL: 415 | 416 | ```bash 417 | curl -X GET "https://api-web.nhle.com/v1/club-stats/TOR/20232024/2" 418 | ``` 419 | 420 | 421 | #### Get Team Scoreboard 422 | - **Endpoint**: `/v1/scoreboard/{team}/now` 423 | - **Method**: GET 424 | - **Description**: Retrieve the scoreboard for a specific team as of the current moment. 425 | - **Parameters**: 426 | - `team` (string) - Three-letter team code 427 | - **Response**: JSON format 428 | 429 | ###### Example using cURL: 430 | 431 | ```bash 432 | curl -L -X GET "https://api-web.nhle.com/v1/scoreboard/TOR/now" 433 | ``` 434 | 435 | ### Roster 436 | 437 | #### Get Team Roster As of Now 438 | - **Endpoint**: `/v1/roster/{team}/current` 439 | - **Method**: GET 440 | - **Description**: Retrieve the roster for a specific team as of the current moment. 441 | - **Parameters**: 442 | - `team` (string) - Three-letter team code 443 | - **Response**: JSON format 444 | 445 | ###### Example using cURL: 446 | 447 | ```bash 448 | curl -L -X GET "https://api-web.nhle.com/v1/roster/TOR/current" 449 | ``` 450 | 451 | #### Get Team Roster by Season 452 | - **Endpoint**: `/v1/roster/{team}/{season}` 453 | - **Method**: GET 454 | - **Description**: Retrieve the roster for a specific team and season. 455 | - **Parameters**: 456 | - `team` (string) - Three-letter team code 457 | - `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. 458 | - **Response**: JSON format 459 | 460 | ###### Example using cURL: 461 | 462 | ```bash 463 | curl -X GET "https://api-web.nhle.com/v1/roster/TOR/20232024" 464 | ``` 465 | 466 | #### Get Roster Season for Team 467 | - **Endpoint**: `/v1/roster-season/{team}` 468 | - **Method**: GET 469 | - **Description**: Seems to just return a list of all of the seasons that the team played. 470 | - **Parameters**: 471 | - `team` (string) - Three-letter team code 472 | - **Response**: JSON format 473 | 474 | ###### Example using cURL: 475 | 476 | ```bash 477 | curl -X GET "https://api-web.nhle.com/v1/roster-season/TOR" 478 | ``` 479 | 480 | #### Get Team Prospects 481 | - **Endpoint**: `/v1/prospects/{team}` 482 | - **Method**: GET 483 | - **Description**: Retrieve prospects for a specific team. 484 | - **Parameters**: 485 | - `team` (string) - Three-letter team code 486 | - **Response**: JSON format 487 | 488 | ###### Example using cURL: 489 | 490 | ```bash 491 | curl -X GET "https://api-web.nhle.com/v1/prospects/TOR" 492 | ``` 493 | 494 | ### Schedule 495 | 496 | #### Get Team Season Schedule As of Now 497 | - **Endpoint**: `/v1/club-schedule-season/{team}/now` 498 | - **Method**: GET 499 | - **Description**: Retrieve the season schedule for a specific team as of the current moment. 500 | - **Parameters**: 501 | - `team` (string) - Three-letter team code 502 | - **Response**: JSON format 503 | 504 | ###### Example using cURL: 505 | 506 | ```bash 507 | curl -L -X GET "https://api-web.nhle.com/v1/club-schedule-season/TOR/now" 508 | ``` 509 | 510 | #### Get Team Season Schedule 511 | - **Endpoint**: `/v1/club-schedule-season/{team}/{season}` 512 | - **Method**: GET 513 | - **Description**: Retrieve the season schedule for a specific team and season. 514 | - **Parameters**: 515 | - `team` (string) - Three-letter team code 516 | - `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. 517 | - **Response**: JSON format 518 | 519 | ###### Example using cURL: 520 | 521 | ```bash 522 | curl -X GET "https://api-web.nhle.com/v1/club-schedule-season/TOR/20232024" 523 | ``` 524 | 525 | #### Get Month Schedule As of Now 526 | - **Endpoint**: `/v1/club-schedule/{team}/month/now` 527 | - **Method**: GET 528 | - **Description**: Retrieve the monthly schedule for a specific team as of the current moment. 529 | - **Parameters**: 530 | - `team` (string) - Three-letter team code 531 | - **Response**: JSON format 532 | 533 | ###### Example using cURL: 534 | 535 | ```bash 536 | curl -L -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/month/now" 537 | ``` 538 | 539 | #### Get Month Schedule 540 | - **Endpoint**: `/v1/club-schedule/{team}/month/{month}` 541 | - **Method**: GET 542 | - **Description**: Retrieve the monthly schedule for a specific team and month. 543 | - **Parameters**: 544 | - `team` (string) - Three-letter team code 545 | - `month` (string) - Month in YYYY-MM format 546 | - **Response**: JSON format 547 | 548 | ###### Example using cURL: 549 | 550 | ```bash 551 | curl -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/month/2023-11" 552 | ``` 553 | 554 | #### Get Week Schedule 555 | - **Endpoint**: `/v1/club-schedule/{team}/week/{date}` 556 | - **Method**: GET 557 | - **Description**: Retrieve the weekly schedule for a specific team and date. 558 | - **Parameters**: 559 | - `team` (string) - Three-letter team code 560 | - `date` (string) - Date in YYYY-MM-DD format 561 | - **Response**: JSON format 562 | 563 | ###### Example using cURL: 564 | 565 | ```bash 566 | curl -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/week/2023-11-10" 567 | ``` 568 | 569 | #### Get Week Schedule As of Now 570 | - **Endpoint**: `/v1/club-schedule/{team}/week/now` 571 | - **Method**: GET 572 | - **Description**: Retrieve the weekly schedule for a specific team as of the current moment. 573 | - **Parameters**: 574 | - `team` (string) - Three-letter team code 575 | - **Response**: JSON format 576 | 577 | ###### Example using cURL: 578 | 579 | ```bash 580 | curl -L -X GET "https://api-web.nhle.com/v1/club-schedule/TOR/week/now" 581 | ``` 582 | 583 | 584 | 585 | 586 | ## League Schedule Information 587 | 588 | ### Schedule 589 | 590 | #### Get Current Schedule 591 | - **Endpoint**: `/v1/schedule/now` 592 | - **Method**: GET 593 | - **Description**: Retrieve the current schedule. 594 | - **Response**: JSON format 595 | 596 | ###### Example using cURL: 597 | 598 | ```bash 599 | curl -L -X GET "https://api-web.nhle.com/v1/schedule/now" 600 | ``` 601 | 602 | #### Get Schedule by Date 603 | - **Endpoint**: `/v1/schedule/{date}` 604 | - **Method**: GET 605 | - **Description**: Retrieve the schedule for a specific date. 606 | - **Parameters**: 607 | - `date` (string) - Date format: YYYY-MM-DD 608 | - **Response**: JSON format 609 | 610 | ###### Example using cURL: 611 | 612 | ```bash 613 | curl -X GET "https://api-web.nhle.com/v1/schedule/2023-11-10" 614 | ``` 615 | 616 | ### Schedule Calendar 617 | 618 | #### Get Schedule Calendar As of Now 619 | - **Endpoint**: `/v1/schedule-calendar/now` 620 | - **Method**: GET 621 | - **Description**: Retrieve the schedule calendar as of the current moment. 622 | - **Response**: JSON format 623 | 624 | ###### Example using cURL: 625 | 626 | ```bash 627 | curl -L -X GET "https://api-web.nhle.com/v1/schedule-calendar/now" 628 | ``` 629 | 630 | #### Get Schedule Calendar for a Specific Date 631 | - **Endpoint**: `/v1/schedule-calendar/{date}` 632 | - **Method**: GET 633 | - **Description**: Retrieve the schedule calendar for a specific date. 634 | - **Parameters**: 635 | - `date` (string) - Date in YYYY-MM-DD format 636 | - **Response**: JSON format 637 | 638 | ###### Example using cURL: 639 | 640 | ```bash 641 | curl -X GET "https://api-web.nhle.com/v1/schedule-calendar/2023-11-10" 642 | ``` 643 | 644 | 645 | 646 | ## Game Information 647 | 648 | ### Daily Scores 649 | 650 | #### Get Daily Scores As of Now 651 | - **Endpoint**: `/v1/score/now` 652 | - **Method**: GET 653 | - **Description**: Retrieve daily scores as of the current moment. 654 | - **Response**: JSON format 655 | 656 | ###### Example using cURL: 657 | 658 | ```bash 659 | curl -L -X GET "https://api-web.nhle.com/v1/score/now" 660 | ``` 661 | 662 | #### Get Daily Scores by Date 663 | - **Endpoint**: `/v1/score/{date}` 664 | - **Method**: GET 665 | - **Description**: Retrieve daily scores for a specific date. 666 | - **Parameters**: 667 | - `date` (string) - Date format: YYYY-MM-DD 668 | - **Response**: JSON format 669 | 670 | ###### Example using cURL: 671 | 672 | ```bash 673 | curl -X GET "https://api-web.nhle.com/v1/score/2023-11-10" 674 | ``` 675 | 676 | #### Get Scoreboard 677 | - **Endpoint**: `/v1/scoreboard/now` 678 | - **Method**: GET 679 | - **Description**: Retrieve the overall scoreboard as of the current moment. 680 | - **Response**: JSON format 681 | 682 | ###### Example using cURL: 683 | 684 | ```bash 685 | curl -L -X GET "https://api-web.nhle.com/v1/scoreboard/now" 686 | ``` 687 | 688 | ### Where to Watch 689 | #### Get Streams 690 | - **Endpoint**: `/v1/where-to-watch` 691 | - **Method**: GET 692 | - **Description**: Retrieve information about streaming options. 693 | - **Parameters**: 694 | - `include` (query, string) - Optional 695 | - **Response**: JSON format 696 | 697 | ###### Example using cURL: 698 | 699 | ```bash 700 | curl -X GET "https://api-web.nhle.com/v1/where-to-watch" 701 | ``` 702 | 703 | ### Game Events 704 | #### Get Play By Play 705 | - **Endpoint**: `/v1/gamecenter/{game-id}/play-by-play` 706 | - **Method**: GET 707 | - **Description**: Retrieve play-by-play information for a specific game. 708 | - **Parameters**: 709 | - `game-id` (int) - Game ID 710 | - **Response**: JSON format 711 | 712 | ###### Example using cURL: 713 | 714 | ```bash 715 | curl -X GET "https://api-web.nhle.com/v1/gamecenter/2023020204/play-by-play" 716 | ``` 717 | 718 | #### Get Landing 719 | - **Endpoint**: `/v1/gamecenter/{game-id}/landing` 720 | - **Method**: GET 721 | - **Description**: Retrieve landing information for a specific game. 722 | - **Parameters**: 723 | - `game-id` (int) - Game ID 724 | - **Response**: JSON format 725 | 726 | ###### Example using cURL: 727 | 728 | ```bash 729 | curl -X GET "https://api-web.nhle.com/v1/gamecenter/2023020204/landing" 730 | ``` 731 | 732 | #### Get Boxscore 733 | - **Endpoint**: `/v1/gamecenter/{game-id}/boxscore` 734 | - **Method**: GET 735 | - **Description**: Retrieve boxscore information for a specific game. 736 | - **Parameters**: 737 | - `game-id` (int) - Game ID 738 | - **Response**: JSON format 739 | 740 | ###### Example using cURL: 741 | 742 | ```bash 743 | curl -X GET "https://api-web.nhle.com/v1/gamecenter/2023020204/boxscore" 744 | ``` 745 | 746 | #### Get Game Story 747 | - **Endpoint**: `/v1/wsc/game-story/{game-id}` 748 | - **Method**: GET 749 | - **Description**: Retrieve game story information for a specific game. 750 | - **Parameters**: 751 | - `game-id` (int) - Game ID 752 | - **Response**: JSON format 753 | 754 | ###### Example using cURL: 755 | 756 | ```bash 757 | curl -X GET "https://api-web.nhle.com/v1/wsc/game-story/2023020204" 758 | ``` 759 | 760 | ### Network 761 | 762 | #### Get TV Schedule for a Specific Date 763 | - **Endpoint**: `/v1/network/tv-schedule/{date}` 764 | - **Method**: GET 765 | - **Description**: Retrieve the TV schedule for a specific date. 766 | - **Parameters**: 767 | - `date` (string) - Date in YYYY-MM-DD format 768 | - **Response**: JSON format 769 | 770 | ###### Example using cURL: 771 | 772 | ```bash 773 | curl -X GET "https://api-web.nhle.com/v1/network/tv-schedule/2023-11-10" 774 | ``` 775 | 776 | #### Get Current TV Schedule 777 | - **Endpoint**: `/v1/network/tv-schedule/now` 778 | - **Method**: GET 779 | - **Description**: Retrieve the current TV schedule. 780 | - **Response**: JSON format 781 | 782 | ###### Example using cURL: 783 | 784 | ```bash 785 | curl -L -X GET "https://api-web.nhle.com/v1/network/tv-schedule/now" 786 | ``` 787 | 788 | ### Odds 789 | #### Get Partner Game Odds 790 | - **Endpoint**: `/v1/partner-game/{country-code}/now` 791 | - **Method**: GET 792 | - **Description**: Retrieve odds for games in a specific country as of the current moment. 793 | - **Parameters**: 794 | - `country-code` (string) - Country code 795 | - **Response**: JSON format 796 | 797 | ###### Example using cURL: 798 | 799 | ```bash 800 | curl -L -X GET "https://api-web.nhle.com/v1/partner-game/US/now" 801 | ``` 802 | 803 | 804 | 805 | ## Playoff Information 806 | 807 | ### Overview 808 | 809 | #### Playoff Series Carousel 810 | - **Endpoint**: `/v1/playoff-series/carousel/{season}/` 811 | - **Method**: GET 812 | - **Description**: Retrieve an overview of each playoff series. 813 | - **Parameters**: 814 | - `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. 815 | - **Response**: JSON format 816 | 817 | ###### Example using cURL: 818 | 819 | ```bash 820 | curl -X GET "https://api-web.nhle.com/v1/playoff-series/carousel/20232024/" 821 | ``` 822 | 823 | ### Schedule 824 | 825 | #### Get Playoff Series Schedule 826 | - **Endpoint**: `/v1/schedule/playoff-series/{season}/{series_letter}/` 827 | - **Method**: GET 828 | - **Description**: Retrieve the schedule for a specific playoff series. 829 | - **Parameters**: 830 | - `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. 831 | - `series_letter` (string) - Single letter indicating which series to retrieve. Is sequential in alphabetical order. 832 | - **Response**: JSON format 833 | 834 | ###### Example using cURL: 835 | 836 | ```bash 837 | curl -X GET "https://api-web.nhle.com/v1/schedule/playoff-series/20232024/a" 838 | ``` 839 | 840 | ### Bracket 841 | 842 | #### Get Playoff Bracket 843 | - **Endpoint**: `/v1/playoff-bracket/{year}` 844 | - **Method**: GET 845 | - **Description**: Retrieve the current bracket for a specific year's playoffs. 846 | - **Parameters**: 847 | - `year` (int) - Year in YYYY format 848 | - **Response**: JSON format 849 | 850 | ###### Example using cURL: 851 | 852 | ```bash 853 | curl -X GET "https://api-web.nhle.com/v1/playoff-bracket/2022" 854 | ``` 855 | 856 | 857 | 858 | ## Season 859 | 860 | #### Get Seasons 861 | - **Endpoint**: `/v1/season` 862 | - **Method**: GET 863 | - **Description**: Retrieve a list of all season IDs past & present in the NHL. 864 | - **Response**: JSON format 865 | 866 | ###### Example using cURL: 867 | 868 | ```bash 869 | curl -X GET "https://api-web.nhle.com/v1/season" 870 | ``` 871 | 872 | ## Draft 873 | 874 | #### Get Draft Rankings 875 | - **Endpoint** `/v1/draft/rankings/now` 876 | - **Method**: GET 877 | - **Description**: Retrieve a list of all draft prospects by category of prospect as of the current moment. 878 | - **Response**: JSON format 879 | 880 | ###### Example using cURL: 881 | 882 | ```bash 883 | curl -X GET "https://api-web.nhle.com/v1/draft/rankings/now" 884 | ``` 885 | 886 | #### Get Draft Rankings by Date 887 | - **Endpoint** `/v1/draft/rankings/{season}/{prospect_category}` 888 | - **Method**: GET 889 | - **Description**: Retrieve a list of all draft prospects by category of prospect for a specific season. 890 | - **Parameters**: 891 | - `season` (int) - Season in YYYY format 892 | - `prospect_category` (int) - Prospect Category (1 - North American Skater, 2 - International Skater, 3 - North American Goalie, 4 - International Goalie) 893 | - **Response**: JSON format 894 | 895 | ###### Example using cURL: 896 | 897 | ```bash 898 | curl -X GET "https://api-web.nhle.com/v1/draft/rankings/2023/1" 899 | ``` 900 | 901 | #### Get Draft Tracker Now 902 | - **Endpoint**: `/v1/draft-tracker/picks/now` 903 | - **Method**: GET 904 | - **Description**: Retrieve current draft tracker information with the most recent draft picks. 905 | - **Response**: JSON format 906 | 907 | ###### Example using cURL: 908 | 909 | ```bash 910 | curl -X GET "https://api-web.nhle.com/v1/draft-tracker/picks/now" 911 | ``` 912 | 913 | #### Get Draft Picks Now 914 | - **Endpoint**: `/v1/draft/picks/now` 915 | - **Method**: GET 916 | - **Description**: Retrieve the most recent draft picks information. 917 | - **Response**: JSON format 918 | 919 | ###### Example using cURL: 920 | 921 | ```bash 922 | curl -X GET "https://api-web.nhle.com/v1/draft/picks/now" 923 | ``` 924 | 925 | #### Get Draft Picks 926 | - **Endpoint** `https://api-web.nhle.com/v1/draft/picks/{season}/{round}` 927 | - **Method**: GET 928 | - **Description**: Retrieve a list of draft picks for a specific season. 929 | - **Parameters**: 930 | - `season` (int) - Season in YYYY format 931 | - `round` (string) - Selectable round (1-7, 1 for round 1 etc.) or `all` for all selectable rounds 932 | - **Response**: JSON format 933 | 934 | ###### Example using cURL: 935 | ```bash 936 | curl -X GET "https://api-web.nhle.com/v1/draft/picks/2023/all" 937 | ``` 938 | 939 | 940 | ## Miscellaneous 941 | 942 | ### Meta 943 | 944 | #### Get Meta Information 945 | - **Endpoint**: `/v1/meta` 946 | - **Method**: GET 947 | - **Description**: Retrieve meta information. 948 | - **Request Parameters**: 949 | - `players` (query, string) - Optional 950 | - `teams` (query, string) - Optional 951 | - `seasonStates` (query, string) - Optional (Unsure what the options might be here) 952 | - **Response**: JSON format 953 | 954 | ###### Example using cURL: 955 | 956 | ```bash 957 | curl -X GET "https://api-web.nhle.com/v1/meta?players=8478402&teams=EDM,TOR" 958 | ``` 959 | 960 | #### Get Game Information 961 | - **Endpoint**: `/v1/meta/game/{game-id}` 962 | - **Method**: GET 963 | - **Description**: Retrieve information for a specific game. 964 | - **Parameters**: 965 | - `game-id` (int) - Game ID 966 | - **Response**: JSON format 967 | 968 | ###### Example using cURL: 969 | 970 | ```bash 971 | curl -X GET "https://api-web.nhle.com/v1/meta/game/2023020204" 972 | ``` 973 | 974 | #### Get Location 975 | - **Endpoint**: `/v1/location` 976 | - **Method**: GET 977 | - **Description**: Returns country code that the webserver thinks the user is in. 978 | - **Response**: JSON format 979 | 980 | ###### Example using cURL: 981 | 982 | ```bash 983 | curl -X GET "https://api-web.nhle.com/v1/location" 984 | ``` 985 | 986 | #### Get Playoff Series Metadata 987 | - **Endpoint**: `/v1/meta/playoff-series/{year}/{series_letter}` 988 | - **Method**: GET 989 | - **Description**: Retrieve metadata for a specific playoff series. 990 | - **Parameters**: 991 | - `year` (int) - Year in YYYY format 992 | - `series_letter` (string) - Single letter identifying the playoff series 993 | - **Response**: JSON format 994 | 995 | ###### Example using cURL: 996 | 997 | ```bash 998 | curl -X GET "https://api-web.nhle.com/v1/meta/playoff-series/2023/a" 999 | ``` 1000 | 1001 | ### Postal Lookup 1002 | 1003 | #### Get Postal Code Information 1004 | - **Endpoint**: `/v1/postal-lookup/{postalCode}` 1005 | - **Method**: GET 1006 | - **Description**: Retrieves information based on a postal code. 1007 | - **Parameters**: 1008 | - `postalCode` (string) - Postal (or zip) code to look up 1009 | - **Response**: JSON format 1010 | 1011 | ###### Example using cURL: 1012 | 1013 | ```bash 1014 | curl -X GET "https://api-web.nhle.com/v1/postal-lookup/90210" 1015 | ``` 1016 | 1017 | ### Game Replays 1018 | 1019 | #### Get Goal Replay 1020 | - **Endpoint**: `/v1/ppt-replay/goal/{game-id}/{event-number}` 1021 | - **Method**: GET 1022 | - **Description**: Retrieves goal replay information for a specific game and event. 1023 | - **Parameters**: 1024 | - `game-id` (int) - Game ID 1025 | - `event-number` (int) - Event number within the game 1026 | - **Response**: JSON format 1027 | 1028 | ###### Example using cURL: 1029 | 1030 | ```bash 1031 | curl -X GET "https://api-web.nhle.com/v1/ppt-replay/goal/2023020204/12" 1032 | ``` 1033 | 1034 | #### Get Play Replay 1035 | - **Endpoint**: `/v1/ppt-replay/{game-id}/{event-number}` 1036 | - **Method**: GET 1037 | - **Description**: Retrieves replay information for a specific game and event. 1038 | - **Parameters**: 1039 | - `game-id` (int) - Game ID 1040 | - `event-number` (int) - Event number within the game 1041 | - **Response**: JSON format 1042 | 1043 | ###### Example using cURL: 1044 | 1045 | ```bash 1046 | curl -X GET "https://api-web.nhle.com/v1/ppt-replay/2023020204/12" 1047 | ``` 1048 | 1049 | ### Additional Game Content 1050 | 1051 | #### Get Game Right Rail Content 1052 | - **Endpoint**: `/v1/gamecenter/{game-id}/right-rail` 1053 | - **Method**: GET 1054 | - **Description**: Retrieves sidebar content for the game center view. 1055 | - **Parameters**: 1056 | - `game-id` (int) - Game ID 1057 | - **Response**: JSON format 1058 | 1059 | ###### Example using cURL: 1060 | 1061 | ```bash 1062 | curl -X GET "https://api-web.nhle.com/v1/gamecenter/2023020204/right-rail" 1063 | ``` 1064 | 1065 | #### Get WSC Play By Play 1066 | - **Endpoint**: `/v1/wsc/play-by-play/{game-id}` 1067 | - **Method**: GET 1068 | - **Description**: Retrieves WSC (World Showcase) play-by-play information for a specific game. 1069 | - **Parameters**: 1070 | - `game-id` (int) - Game ID 1071 | - **Response**: JSON format 1072 | 1073 | ###### Example using cURL: 1074 | 1075 | ```bash 1076 | curl -X GET "https://api-web.nhle.com/v1/wsc/play-by-play/2023020204" 1077 | ``` 1078 | 1079 | ### OpenAPI Specification 1080 | 1081 | #### Get OpenAPI Specification 1082 | - **Endpoint**: `/model/v1/openapi.json` 1083 | - **Method**: GET 1084 | - **Description**: Retrieve the OpenAPI specification. (Seems to return 404 currently) 1085 | - **Response**: JSON or YAML format 1086 | 1087 | ###### Example using cURL: 1088 | 1089 | ```bash 1090 | curl -X GET "https://api-web.nhle.com/model/v1/openapi.json" 1091 | ``` 1092 | 1093 | --- 1094 | 1095 | *For the full WADL with extended resources: [WADL Link](https://api-web.nhle.com/application.wadl?detail=true)* 1096 | 1097 | ## NHL Edge Data 1098 | 1099 | ### Team Data 1100 | 1101 | #### Team Details 1102 | 1103 | - **Endpoint**: `/v1/edge/team-detail/{team-id}/{season}/{game-type}`; `/v1/edge/team-detail/{team-id}/now` 1104 | - **Method**: GET 1105 | - **Description**: Retrieve team-based ranking for NHL Edge data 1106 | - **Parameters**: 1107 | - `team-id` (int) - Team ID 1108 | - `season` (int) - Season in YYYYYYYY format 1109 | - `game-type` (int) - 2 for regular season, 3 for postseason 1110 | - **Response**: JSON format 1111 | 1112 | ###### Example using cURL: 1113 | 1114 | ```bash 1115 | curl -X GET "https://api-web.nhle.com/v1/edge/team-detail/9/20242025/2" 1116 | ``` 1117 | 1118 | #### Team Landing 1119 | 1120 | - **Endpoint**: `/v1/edge/team-detail/{season}/{game-type}`; `/v1/edge/team-detail/now` 1121 | - **Method**: GET 1122 | - **Description**: Retrieve the leading team for each NHL Edge data point (shot attempts over 90, bursts over 22, distance per 60, high danger SOG, offensive, neutral and defensive zone time) 1123 | - **Parameters**: 1124 | - `season` (int) - Season in YYYYYYYY format 1125 | - `game-type` (int) - 2 for regular season, 3 for postseason 1126 | - **Response**: JSON format 1127 | 1128 | ###### Example using cURL: 1129 | 1130 | ```bash 1131 | curl -X GET "https://api-web.nhle.com/v1/edge/team-landing/20242025/2" 1132 | ``` 1133 | 1134 | #### Team Comparison 1135 | 1136 | - **Endpoint**: `/v1/edge/team-comparison/{team-id}/{season}/{game-type}`; `/v1/edge/team-comparison/{team-id}/now` 1137 | - **Method**: GET 1138 | - **Description**: General information and comparison to league average for NHL Edge datapoints. Includes shots by location and shooting percentage by location. 1139 | - **Parameters**: 1140 | - `team-id` (int) - Team ID 1141 | - `season` (int) - Season in YYYYYYYY format 1142 | - `game-type` (int) - 2 for regular season, 3 for postseason 1143 | - **Response**: JSON format 1144 | 1145 | ###### Example using cURL: 1146 | 1147 | ```bash 1148 | curl -X GET "https://api-web.nhle.com/v1/edge/team-comparison/9/20242025/2" 1149 | ``` 1150 | 1151 | #### Team Skating Distance - Top 10 1152 | 1153 | - **Endpoint**: `/v1/edge/team-skating-distance-top-10/{positions}/{strength}/{sort-by}/{season}{game-type}`; `/v1/edge/team-skating-distance-top-10/{positions}/{strength}/{sort-by}/now` 1154 | - **Method**: GET 1155 | - **Description**: Retrieve team-based ranking for NHL Edge data - **TODO** 1156 | - **Parameters**: 1157 | - `position` (str) - 1158 | - 'all' - Forwards and Defense 1159 | - 'F' - Forwards 1160 | - 'D' - Defense 1161 | - `strength` (str) - 1162 | - 'all' - All situations 1163 | - 'pp' - Power-play 1164 | - 'pk' - Penalty kill 1165 | - 'es' - Even-strength 1166 | - `sort-by` (str) - String - **TODO** 1167 | - 'total' - Total distance skated 1168 | - 'unknown' - Average distance skated per 60 - **TODO** 1169 | - 'unknown' - Top distance skated in a game - **TODO** 1170 | - 'unknown' - Top distance skated in a period - **TODO** 1171 | - `season` (int) - Season in YYYYYYYY format 1172 | - `game-type` (int) - 2 for regular season, 3 for postseason 1173 | - **Response**: JSON format 1174 | 1175 | ###### Example using cURL: 1176 | 1177 | ```bash 1178 | curl -X GET "https://api-web.nhle.com/v1/edge/team-skating-distance-top-10/F/pp/{sort-by}/20242025/2" 1179 | ``` 1180 | 1181 | #### Team Skating Distance - Detail 1182 | 1183 | - **Endpoint**: `/v1/edge/team-skating-distance-detail/{team-id}/{season}/{game-type}`; `/v1/edge/team-skating-distance-detail/{team-id}/now` 1184 | - **Method**: GET 1185 | - **Description**: Skating distance details for all situations and positions, both in last 10 games and in the season. 1186 | - **Parameters**: 1187 | - `team-id` (int) - Team ID 1188 | - `season` (int) - Season in YYYYYYYY format 1189 | - `game-type` (int) - 2 for regular season, 3 for postseason 1190 | - **Response**: JSON format 1191 | 1192 | ###### Example using cURL: 1193 | 1194 | ```bash 1195 | curl -X GET "https://api-web.nhle.com/v1/edge/team-skating-distance-detail/9/20242025/2" 1196 | ``` 1197 | 1198 | #### Team Skating Speed - Top 10 1199 | 1200 | - **Endpoint**: `/v1/edge/team-skating-speed-top-10/{position}/{sort-by}/{season}/{game-type}`; `v1/edge/team-skating-speed-top-10/{positions}/{sort-by}/now` 1201 | - **Method**: GET 1202 | - **Description**: Retrieve team-based ranking for NHL Edge data - **TODO** 1203 | - **Parameters**: 1204 | - `position` (str) - 1205 | - 'all' - Forwards and Defense 1206 | - 'F' - Forwards 1207 | - 'D' - Defense 1208 | - `sort-by` (str) - String - **TODO** 1209 | - 'max' - Max skating speed 1210 | - 'unknown' - 22 mph+ bursts 1211 | - 'unknown' - 20 mph+ bursts 1212 | - `season` (int) - Season in YYYYYYYY format 1213 | - `game-type` (int) - 2 for regular season, 3 for postseason 1214 | - **Response**: JSON format 1215 | 1216 | ###### Example using cURL: 1217 | 1218 | ```bash 1219 | curl -X GET "https://api-web.nhle.com/v1/edge/team-skating-speed-top-10/F/max/20242025/2" 1220 | ``` 1221 | 1222 | #### Team Skating Speed - Detail 1223 | 1224 | - **Endpoint**: `/v1/edge/team-skating-speed-detail/{team-id}/{season}/{game-type}`; `/v1/edge/team-skating-speed-detail/{team-id}/now` 1225 | - **Method**: GET 1226 | - **Description**: Zone time details by situation (All Situations/Even Strength/Power Play/Penalty Kill) 1227 | - **Parameters**: 1228 | - `team-id` (int) - Team ID 1229 | - `season` (int) - Season in YYYYYYYY format 1230 | - `game-type` (int) - 2 for regular season, 3 for postseason 1231 | - **Response**: JSON format 1232 | 1233 | ###### Example using cURL: 1234 | 1235 | ```bash 1236 | curl -X GET "https://api-web.nhle.com/v1/edge/team-skating-speed-detail/9/20242025/2" 1237 | ``` 1238 | 1239 | #### Team Zone Time - Top 10 1240 | 1241 | - **Endpoint**: `/v1/edge/team-zone-time-top-10/{strength}/{sort-by}/{season}/{game-type}`; `/v1/edge/team-zone-time-top-10/{strength}/{sort-by}/now` 1242 | - **Method**: GET 1243 | - **Description**: Top 10 teams by specified zone time 1244 | - **Parameters**: 1245 | - `strength` (str) - 1246 | - 'all' - All situations 1247 | - 'pp' - Power-play 1248 | - 'pk' - Penalty kill 1249 | - 'es' - Even-strength 1250 | - `sort-by` (str) - 1251 | - 'offensive' - Offensive Zone 1252 | - 'neutral' - Neutral Zone 1253 | - 'defensive' - Defensive Zone 1254 | - `season` (int) - Season in YYYYYYYY format 1255 | - `game-type` (int) - 2 for regular season, 3 for postseason 1256 | - **Response**: JSON format 1257 | 1258 | ###### Example using cURL: 1259 | 1260 | ```bash 1261 | curl -X GET "https://api-web.nhle.com/v1/edge/team-zone-time-top-10/es/offensive/20242025/2" 1262 | ``` 1263 | 1264 | #### Team Zone Time - Details 1265 | 1266 | - **Endpoint**: `/v1/edge/team-zone-time-details/{team-id}/{season}/{game-type}`; `/v1/edge/team-zone-time-details/{team-id}/now` 1267 | - **Method**: GET 1268 | - **Description**: Zone time details by situation (All Situations/Even Strength/Power Play/Penalty Kill) 1269 | - **Parameters**: 1270 | - `team-id` (int) - Team ID 1271 | - `season` (int) - Season in YYYYYYYY format 1272 | - `game-type` (int) - 2 for regular season, 3 for postseason 1273 | - **Response**: JSON format 1274 | 1275 | ###### Example using cURL: 1276 | 1277 | ```bash 1278 | curl -X GET "https://api-web.nhle.com/v1/edge/team-zone-time-details/9/20242025/2" 1279 | ``` 1280 | 1281 | #### Team Shot Speed - Top 10 1282 | 1283 | - **Endpoint**: `/v1/edge/team-shot-speed-top-10/{positions}/{sort-by}/{season}/{game-type}`; `/v1/edge/team-shot-speed-top-10/{positions}/{sort-by}/now` 1284 | - **Method**: GET 1285 | - **Description**: Retrieve team-based ranking for NHL Edge data - **TODO** 1286 | - **Parameters**: 1287 | - `position` (str) - 1288 | - 'all' - Forwards and Defense 1289 | - 'F' - Forwards 1290 | - 'D' - Defense 1291 | - `sort-by` (str) - String - **TODO** 1292 | - 'max' - Maximum shot speed 1293 | - 'unknown' - 100+ mph - **TODO** 1294 | - 'unknown' - 90+ mph - **TODO** 1295 | - `season` (int) - Season in YYYYYYYY format 1296 | - `game-type` (int) - 2 for regular season, 3 for postseason 1297 | - **Response**: JSON format 1298 | 1299 | ###### Example using cURL: 1300 | 1301 | ```bash 1302 | curl -X GET "https://api-web.nhle.com/v1/edge/team-shot-speed-top-10/F/{sort-by}/20242025/2" 1303 | ``` 1304 | 1305 | #### Team Shot Speed - Detail 1306 | 1307 | - **Endpoint**: `/v1/edge/team-shot-speed-detail/{team-id}/{season}/{game-type}`; `/v1/edge/team-shot-speed-detail/{team-id}/now` 1308 | - **Method**: GET 1309 | - **Description**: Top 10 Shots by speed, shot speed details by position 1310 | - **Parameters**: 1311 | - `team-id` (int) - Team ID 1312 | - `season` (int) - Season in YYYYYYYY format 1313 | - `game-type` (int) - 2 for regular season, 3 for postseason 1314 | - **Response**: JSON format 1315 | 1316 | ###### Example using cURL: 1317 | 1318 | ```bash 1319 | curl -X GET "https://api-web.nhle.com/v1/edge/team-shot-speed-detail/9/20242025/2" 1320 | ``` 1321 | 1322 | #### Team Shot Location - Top 10 1323 | 1324 | - **Endpoint**: `/v1/edge/team-shot-location-top-10/{position}/{category}/{sort-by}/{season}/{game-type}`; `/v1/edge/team-shot-location-top-10/{position}/{category}/{sort-by}/now` 1325 | - **Method**: GET 1326 | - **Description**: Retrieve team-based ranking for NHL Edge data - **TODO** 1327 | - **Parameters**: 1328 | - `position` (str) - 1329 | - 'all' - Forwards and Defense 1330 | - 'F' - Forwards 1331 | - 'D' - Defense 1332 | - `category` (str) - **TODO** 1333 | - 'unknown' - All Locations 1334 | - 'unknown' - High-Danger 1335 | - 'unknown' - Mid-Range 1336 | - 'unknown' - Long-Range 1337 | - `sort-by` (str) - String - **TODO** 1338 | - 'unknown' - Shots on Goal 1339 | - 'unknown' - Goals 1340 | - 'unknown' - Shooting Percentage 1341 | - `season` (int) - Season in YYYYYYYY format 1342 | - `game-type` (int) - 2 for regular season, 3 for postseason 1343 | - **Response**: JSON format 1344 | 1345 | ###### Example using cURL: 1346 | 1347 | ```bash 1348 | curl -X GET "https://api-web.nhle.com/v1/edge/team-shot-location-top-10/F/{category}/{sort-by}/20242025/2" 1349 | ``` 1350 | 1351 | #### Team Shot Location - Detail 1352 | 1353 | - **Endpoint**: `/v1/edge/team-shot-location-detail/{team-id}/{season}/{game-type}`; `/v1/edge/team-shot-location-detail/{team-id}/now` 1354 | - **Method**: GET 1355 | - **Description**: Shot count by all locations and positions 1356 | - **Parameters**: 1357 | - `team-id` (int) - Team ID 1358 | - `season` (int) - Season in YYYYYYYY format 1359 | - `game-type` (int) - 2 for regular season, 3 for postseason 1360 | - **Response**: JSON format 1361 | 1362 | ###### Example using cURL: 1363 | 1364 | ```bash 1365 | curl -X GET "https://api-web.nhle.com/v1/edge/team-shot-location-detail/9/20242025/2" 1366 | ``` 1367 | 1368 | #### 1369 | 1370 | ### Skater Data 1371 | 1372 | #### Skater Detail 1373 | 1374 | - **Endpoint**: `/v1/edge/skater-detail/{player-id}/{season}/{game-type}`; `/v1/edge/skater-detail/{player-id}/now` 1375 | - **Method**: GET 1376 | - **Description**: Retrieve player rankings for NHL Edge data, Includes top shot speed, skating speed, distance skated, shot on goal summary/details, zone time percentages. 1377 | - **Parameters**: 1378 | - `player-id` (int) - Player ID 1379 | - `season` (int) - Season in YYYYYYYY format 1380 | - `game-type` (int) - 2 for regular season, 3 for postseason 1381 | - **Response**: JSON format 1382 | 1383 | ###### Example using cURL: 1384 | 1385 | ```bash 1386 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-detail/8482116/20242025/2" 1387 | ``` 1388 | 1389 | #### Skater Landing 1390 | 1391 | - **Endpoint**: `/v1/edge/skater-landing/{season}/{game-type}`; `/v1/edge/skater-landing/now` 1392 | - **Method**: GET 1393 | - **Description**: Retrieve leading player for NHL Edge data, Includes top shot speed, skating speed, distance skated, high danger SOG, zone time percentages. 1394 | - **Parameters**: 1395 | - `season` (int) - Season in YYYYYYYY format 1396 | - `game-type` (int) - 2 for regular season, 3 for postseason 1397 | - **Response**: JSON format 1398 | 1399 | ###### Example using cURL: 1400 | 1401 | ```bash 1402 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-landing/20242025/2" 1403 | ``` 1404 | 1405 | #### Skater Comparison 1406 | 1407 | - **Endpoint**: `/v1/edge/skater-comparison/{player-id}/{season}/{game-type}`; `/v1/edge/skater-comparison/{player-id}/now` 1408 | - **Method**: GET 1409 | - **Description**: Retrieve NHL Edge data for the specified player, Includes skating distance and speed data, shot location and speed data, zone time details and zone starts. 1410 | - **Parameters**: 1411 | - `player-id` (int) - Player ID 1412 | - `season` (int) - Season in YYYYYYYY format 1413 | - `game-type` (int) - 2 for regular season, 3 for postseason 1414 | 1415 | - **Response**: JSON format 1416 | 1417 | ###### Example using cURL: 1418 | 1419 | ```bash 1420 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-comparison/8482116/20242025/2" 1421 | ``` 1422 | 1423 | #### Skater Distance - Top 10 1424 | 1425 | - **Endpoint**: `/v1/edge/skater-distance-top-10/{positions}/{strength}/{sort-by}/{season}/{game-type}`; `/v1/edge/skater-distance-top-10/{positions}/{strength}/{sort-by}/now` 1426 | - **Method**: GET 1427 | - **Description**: Retrieve top 10 skaters in skating distance based on the provided filters 1428 | - **Parameters**: 1429 | - `position` (str) - 1430 | - 'all' - Forwards and Defense 1431 | - 'F' - Forwards 1432 | - 'D' - Defense 1433 | - `strength` (str) - 1434 | - 'all' - All situations 1435 | - 'pp' - Power-play 1436 | - 'pk' - Penalty kill 1437 | - 'es' - Even-strength 1438 | - `sort-by` (str) - String - **TODO** 1439 | - 'total' - Total distance skated 1440 | - 'unknown' - Average distance skated per 60 min 1441 | - 'unknown' - Top distance skated in a game 1442 | - 'unknown' - Top distance skated in a period 1443 | - `season` (int) - Season in YYYYYYYY format 1444 | - `game-type` (int) - 2 for regular season, 3 for postseason 1445 | - **Response**: JSON format 1446 | 1447 | ###### Example using cURL: 1448 | 1449 | ```bash 1450 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-distance-top-10/D/all/total/20242025/2" 1451 | ``` 1452 | 1453 | #### Skater Skating Distance - Detail 1454 | 1455 | - **Endpoint**: `/v1/edge/skater-skating-distance-detail/{player-id}/{season}/{game-type}`; `/v1/edge/skater-skating-distance-detail/{player-id}/now` 1456 | - **Method**: GET 1457 | - **Description**: Shot count by all locations and positions 1458 | - **Parameters**: 1459 | - `player-id` (int) - Player ID 1460 | - `season` (int) - Season in YYYYYYYY format 1461 | - `game-type` (int) - 2 for regular season, 3 for postseason 1462 | - **Response**: JSON format 1463 | 1464 | ###### Example using cURL: 1465 | 1466 | ```bash 1467 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-skating-distance-detail/8482116/20242025/2" 1468 | ``` 1469 | 1470 | #### Skater Speed - Top 10 1471 | 1472 | - **Endpoint**: `/v1/edge/skater-speed-top-10/{positions}/{sort-by}/{season}/{game-type}`; `/v1/edge/skater-speed-top-10/{positions}/{sort-by}/now` 1473 | - **Method**: GET 1474 | - **Description**: Retrieve 10 fastest skaters based on the provided filters. 1475 | - **Parameters**: 1476 | - `position` (str) - 1477 | - 'all' - Forwards and Defense 1478 | - 'F' - Forwards 1479 | - 'D' - Defense 1480 | - `sort-by` (str) - String - **TODO** 1481 | - 'max' - Max skating speed 1482 | - 'unknown' - 22 mph+ bursts 1483 | - 'unknown' - 20 mph+ bursts 1484 | - `season` (int) - Season in YYYYYYYY format 1485 | - `game-type` (int) - 2 for regular season, 3 for postseason 1486 | - **Response**: JSON format 1487 | 1488 | ###### Example using cURL: 1489 | 1490 | ```bash 1491 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-speed-top-10/F/max/20242025/2" 1492 | ``` 1493 | 1494 | #### Skater Skating Speed - Detail 1495 | 1496 | - **Endpoint**: `/v1/edge/skater-skating-speed-detail/{player-id}/{season}/{game-type}`; `/v1/edge/skater-skating-speed-detail/{player-id}/now` 1497 | - **Method**: GET 1498 | - **Description**: Retrieve top 10 skating speeds for the provided player. Also provides max skating speed, bursts over 22mph, bursts from 20 to 22mph and bursts from 18 to 20mph. 1499 | - **Parameters**: 1500 | - `player-id` (int) - Player ID 1501 | - `season` (int) - Season in YYYYYYYY format 1502 | - `game-type` (int) - 2 for regular season, 3 for postseason 1503 | - **Response**: JSON format 1504 | 1505 | ###### Example using cURL: 1506 | 1507 | ```bash 1508 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-skating-speed-detail/8482116/20242025/2" 1509 | ``` 1510 | 1511 | #### Skater Zone Time - Top 10 1512 | 1513 | - **Endpoint**: `/v1/edge/skater-zone-time-top-10/{positions}/{strength}/{sort-by}/{season}/{game-type}`; `/v1/edge/skater-zone-time-top-10/{positions}/{strength}/{sort-by}/now` 1514 | - **Method**: GET 1515 | - **Description**: Retrieve 10 fastest skaters based on the provided filters. 1516 | - **Parameters**: 1517 | - `position` (str) - 1518 | - 'all' - Forwards and Defense 1519 | - 'F' - Forwards 1520 | - 'D' - Defense 1521 | - `strength` (str) - 1522 | - 'all' - All situations 1523 | - 'pp' - Power-play 1524 | - 'pk' - Penalty kill 1525 | - 'es' - Even-strength 1526 | - `sort-by` (str) - 1527 | - 'offensive' - Offensive Zone 1528 | - 'neutral' - Neutral Zone 1529 | - 'defensive' - Defensive Zone 1530 | - `season` (int) - Season in YYYYYYYY format 1531 | - `game-type` (int) - 2 for regular season, 3 for postseason 1532 | - **Response**: JSON format 1533 | 1534 | ###### Example using cURL: 1535 | 1536 | ```bash 1537 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-zone-time-top-10/F/all/offensive/20242025/2" 1538 | ``` 1539 | 1540 | #### Skater Zone Time - Detail 1541 | 1542 | - **Endpoint**: `/v1/edge/skater-zone-time/{player-id}/{season}/{game-type}`; `/v1/edge/skater-zone-time/{player-id}/now` 1543 | - **Method**: GET 1544 | - **Description**: Zone time details by situation (All Situations/Even Strength/Power Play/Penalty Kill). Includes zone starts. 1545 | - **Parameters**: 1546 | - `player-id` (int) - Player ID 1547 | - `season` (int) - Season in YYYYYYYY format 1548 | - `game-type` (int) - 2 for regular season, 3 for postseason 1549 | - **Response**: JSON format 1550 | 1551 | ###### Example using cURL: 1552 | 1553 | ```bash 1554 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-zone-time/8482116/20242025/2" 1555 | ``` 1556 | 1557 | #### Skater Shot Speed - Top 10 1558 | 1559 | - **Endpoint**: `/v1/edge/skater-shot-speed-top-10/{positions}/{sort-by}/{season}/{game-type}`; `/v1/edge/skater-shot-speed-top-10/{positions}/{sort-by}/now` 1560 | - **Method**: GET 1561 | - **Description**: Retrieve 10 players with the fastest shot based on the provided filters. 1562 | - **Parameters**: 1563 | - `position` (str) - 1564 | - 'all' - Forwards and Defense 1565 | - 'F' - Forwards 1566 | - 'D' - Defense 1567 | - `sort-by` (str) - String - **TODO** 1568 | - 'max' - Max skating speed 1569 | - 'unknown' - 100+ mph 1570 | - 'unknown' - 90+ mph 1571 | - `season` (int) - Season in YYYYYYYY format 1572 | - `game-type` (int) - 2 for regular season, 3 for postseason 1573 | - **Response**: JSON format 1574 | 1575 | ###### Example using cURL: 1576 | 1577 | ```bash 1578 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-shot-speed-top-10/F/max/20242025/2" 1579 | ``` 1580 | 1581 | #### Skater Shot Speed - Detail 1582 | 1583 | - **Endpoint**: `/v1/edge/skater-shot-speed-detail/{player-id}/{season}/{game-type}`; `/v1/edge/skater-shot-speed-detail/{player-id}/now` 1584 | - **Method**: GET 1585 | - **Description**: Provides the 10 hardest shots for a specified player. Includes top shot speed, average shot speed, shot attempts in the following groups: 100+, 90-100, 80-90, 70-80. 1586 | - **Parameters**: 1587 | - `player-id` (int) - Player ID 1588 | - `season` (int) - Season in YYYYYYYY format 1589 | - `game-type` (int) - 2 for regular season, 3 for postseason 1590 | - **Response**: JSON format 1591 | 1592 | ###### Example using cURL: 1593 | 1594 | ```bash 1595 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-shot-speed-detail/8482116/20242025/2" 1596 | ``` 1597 | 1598 | #### Skater Shot Location - Top 10 1599 | 1600 | - **Endpoint**: `/v1/edge/skater-shot-location-top-10/{position}/{category}/{sort-by}/{season}/{game-type}`; `/v1/edge/skater-shot-location-top-10/{position}/{category}/{sort-by}/now` 1601 | - **Method**: GET 1602 | - **Description**: Presumably top 10 skaters based on the specified filters. -**TODO** 1603 | - **Parameters**: 1604 | - `position` (str) - 1605 | - 'all' - Forwards and Defense 1606 | - 'F' - Forwards 1607 | - 'D' - Defense 1608 | - `category` (str) - **TODO** 1609 | - 'unknown' - All Locations 1610 | - 'unknown' - High-Danger 1611 | - 'unknown' - Mid-Range 1612 | - 'unknown' - Long-Range 1613 | - `sort-by` (str) - String - **TODO** 1614 | - 'unknown' - Shots on Goal 1615 | - 'unknown' - Goals 1616 | - 'unknown' - Shooting Percentage 1617 | - `season` (int) - Season in YYYYYYYY format 1618 | - `game-type` (int) - 2 for regular season, 3 for postseason 1619 | - **Response**: JSON format 1620 | 1621 | ###### Example using cURL: 1622 | 1623 | ```bash 1624 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-shot-location-top-10/F/{category}/{sort-by}/20242025/2" 1625 | ``` 1626 | 1627 | #### Skater Shot Location - Detail 1628 | 1629 | - **Endpoint**: `/v1/edge/skater-shot-location-detail/{player-id}/{season}/{game-type}`; `/v1/edge/skater-shot-location-detail/{player-id}/now` 1630 | - **Method**: GET 1631 | - **Description**: Provides information on shot location 1632 | - **Parameters**: 1633 | - `player-id` (int) - Player ID 1634 | - `season` (int) - Season in YYYYYYYY format 1635 | - `game-type` (int) - 2 for regular season, 3 for postseason 1636 | - **Response**: JSON format 1637 | 1638 | ###### Example using cURL: 1639 | 1640 | ```bash 1641 | curl -X GET "https://api-web.nhle.com/v1/edge/skater-shot-location-detail/8482116/20242025/2" 1642 | ``` 1643 | 1644 | #### CAT - Skater Detail 1645 | 1646 | - **Endpoint**: `/v1/cat/edge/skater-detail/{player-id}/{season}/{game-type}`; `/v1/cat/edge/skater-detail/{player-id}/now` 1647 | - **Method**: GET 1648 | - **Description**: Provides information on top shot speed, skating speed/distance, shots on goal summary/details and zone time details. 1649 | - **Parameters**: 1650 | - `player-id` (int) - Player ID 1651 | - `season` (int) - Season in YYYYYYYY format 1652 | - `game-type` (int) - 2 for regular season, 3 for postseason 1653 | - **Response**: JSON format 1654 | 1655 | ###### Example using cURL: 1656 | 1657 | ```bash 1658 | curl -X GET "https://api-web.nhle.com/v1/cat/edge/skater-detail/8482116/20242025/2" 1659 | ``` 1660 | 1661 | ### Goalie Data 1662 | 1663 | #### Goalie Detail 1664 | 1665 | - **Endpoint**: `/v1/edge/goalie-detail/{player-id}/{season}/{game-type}`; `/v1/edge/goalie-detail/{player-id}/now` 1666 | - **Method**: GET 1667 | - **Description**: Retrieve goalie rankings for NHL Edge data, Includes GAA, games above .900, goal differential per 60, average goal support, point percentage, shot location summary/details. 1668 | - **Parameters**: 1669 | - `player-id` (int) - Player ID 1670 | - `season` (int) - Season in YYYYYYYY format 1671 | - `game-type` (int) - 2 for regular season, 3 for postseason 1672 | - **Response**: JSON format 1673 | 1674 | ###### Example using cURL: 1675 | 1676 | ```bash 1677 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-detail/8476999/20242025/2" 1678 | ``` 1679 | 1680 | #### Goalie Landing 1681 | 1682 | - **Endpoint**: `/v1/edge/goalie-landing/{season}/{game-type}`; `/v1/edge/goalie-landing/now` 1683 | - **Method**: GET 1684 | - **Description**: Retrieve leading goalie for NHL Edge data, Includes high-danger save percentage/saves/goals against, save percentage at 5v5, games above .900. 1685 | - **Parameters**: 1686 | - `season` (int) - Season in YYYYYYYY format 1687 | - `game-type` (int) - 2 for regular season, 3 for postseason 1688 | - **Response**: JSON format 1689 | 1690 | ###### Example using cURL: 1691 | 1692 | ```bash 1693 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-landing/20242025/2" 1694 | ``` 1695 | 1696 | #### Goalie Comparison 1697 | 1698 | - **Endpoint**: `/v1/edge/goalie-comparison/{player-id}/{season}/{game-type}`; `/v1/edge/goalie-comparison/{player-id}/now` 1699 | - **Method**: GET 1700 | - **Description**: Retrieve NHL Edge data for the specified player, Includes shot location summary/details, 5v5 save percentage in the last 10 games/details, overall save percentage in the last 10 games, and overall save percentage details. 1701 | - **Parameters**: 1702 | - `player-id` (int) - Player ID 1703 | - `season` (int) - Season in YYYYYYYY format 1704 | - `game-type` (int) - 2 for regular season, 3 for postseason 1705 | - **Response**: JSON format 1706 | 1707 | ###### Example using cURL: 1708 | 1709 | ```bash 1710 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-comparison/8476999/20242025/2" 1711 | ``` 1712 | 1713 | #### Goalie 5v5 - Top 10 1714 | 1715 | - **Endpoint**: `/v1/edge/goalie-5v5-top-10/{sort-by}/{season}/{game-type}`; `/v1/edge/goalie-5v5-top-10/{sort-by}/now` 1716 | - **Method**: GET 1717 | - **Description**: Top 10 goalies based on the specified filters. 1718 | - **Parameters**: 1719 | - `sort-by` (str) - String - **TODO** 1720 | - 'shots' - Shots on Goal 1721 | - *Likely more parameters available* 1722 | - `season` (int) - Season in YYYYYYYY format 1723 | - `game-type` (int) - 2 for regular season, 3 for postseason 1724 | - **Response**: JSON format 1725 | 1726 | ###### Example using cURL: 1727 | 1728 | ```bash 1729 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-5v5-top-10/shots/20242025/2" 1730 | ``` 1731 | 1732 | #### Goalie 5v5 - Detail 1733 | 1734 | - **Endpoint**: `/v1/edge/goalie-5v5-detail/{player-id}/{season}/{game-type}`; `/v1/edge/goalie-5v5-detail/{player-id}/now` 1735 | - **Method**: GET 1736 | - **Description**: 5v5 save percentage details for the specified player. 1737 | - **Parameters**: 1738 | - `player-id` (int) - Player ID 1739 | - `season` (int) - Season in YYYYYYYY format 1740 | - `game-type` (int) - 2 for regular season, 3 for postseason 1741 | - **Response**: JSON format 1742 | 1743 | ###### Example using cURL: 1744 | 1745 | ```bash 1746 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-5v5-detail/8476999/20242025/2" 1747 | ``` 1748 | 1749 | #### Goalie Shot Location - Top 10 1750 | 1751 | - **Endpoint**: `/v1/edge/goalie-shot-location-top-10/{category}/{sort-by}/{season}/{game-type}`; `/v1/edge/goalie-shot-location-top-10/{category}/{sort-by}/now` 1752 | - **Method**: GET 1753 | - **Description**: Presumably top 10 goalies based on the specified filters. -**TODO** 1754 | - **Parameters**: 1755 | - `category` (str) - **TODO** 1756 | - 'unknown' - All Locations 1757 | - 'unknown' - High-Danger 1758 | - 'unknown' - Mid-Range 1759 | - 'unknown' - Long-Range 1760 | - `sort-by` (str) - String - **TODO** 1761 | - 'unknown' - Shots Against 1762 | - 'unknown' - Saves 1763 | - 'unknown' - Goals Against 1764 | - 'unknown' - Save % 1765 | - `season` (int) - Season in YYYYYYYY format 1766 | - `game-type` (int) - 2 for regular season, 3 for postseason 1767 | - **Response**: JSON format 1768 | 1769 | ###### Example using cURL: 1770 | 1771 | ```bash 1772 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-shot-location-top-10/{category}/{sort-by}/20242025/2" 1773 | ``` 1774 | 1775 | #### Goalie Shot Location - Detail 1776 | 1777 | - **Endpoint**: `/v1/edge/goalie-shot-location-detail/{player-id}/{season}/{game-type}`; `/v1/edge/goalie-shot-location-detail/{player-id}/now` 1778 | - **Method**: GET 1779 | - **Description**: Goalie shot location details for the specified player. 1780 | - **Parameters**: 1781 | - `player-id` (int) - Player ID 1782 | - `season` (int) - Season in YYYYYYYY format 1783 | - `game-type` (int) - 2 for regular season, 3 for postseason 1784 | - **Response**: JSON format 1785 | 1786 | ###### Example using cURL: 1787 | 1788 | ```bash 1789 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-shot-location-detail/8476999/20242025/2" 1790 | ``` 1791 | 1792 | #### Goalie Save Percentage - Top 10 1793 | 1794 | - **Endpoint**: `/v1/edge/goalie-edge-save-pctg-top-10/{sort-by}/{season}/{game-type}`; `/v1/edge/goalie-edge-save-pctg-top-10/{sort-by}/now` 1795 | - **Method**: GET 1796 | - **Description**: Unknown. -**TODO** 1797 | - **Parameters**: 1798 | - `sort-by` (str) - String - **TODO** 1799 | - *Unknown parameters* 1800 | - `season` (int) - Season in YYYYYYYY format 1801 | - `game-type` (int) - 2 for regular season, 3 for postseason 1802 | - **Response**: JSON format 1803 | 1804 | ###### Example using cURL: 1805 | 1806 | ```bash 1807 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-edge-save-pctg-top-10/{sort-by}/20242025/2" 1808 | ``` 1809 | 1810 | #### Goalie Save Percentage - Detail 1811 | 1812 | - **Endpoint**: `/v1/edge/goalie-save-percentage-detail/{player-id}/{season}/{game-type}`; `/v1/edge/goalie-save-percentage-detail/{player-id}/now` 1813 | - **Method**: GET 1814 | - **Description**: Goalie save percentage details for the specified player. Contains save percentage in last 10 games, games above .900 and percentage of games above .900. 1815 | - **Parameters**: 1816 | - `player-id` (int) - Player ID 1817 | - `season` (int) - Season in YYYYYYYY format 1818 | - `game-type` (int) - 2 for regular season, 3 for postseason 1819 | - **Response**: JSON format 1820 | 1821 | ###### Example using cURL: 1822 | 1823 | ```bash 1824 | curl -X GET "https://api-web.nhle.com/v1/edge/goalie-save-percentage-detail/8476999/20242025/2" 1825 | ``` 1826 | 1827 | #### CAT - Goalie Detail 1828 | 1829 | - **Endpoint**: `/v1/cat/edge/goalie-detail/{player-id}/{season}/{game-type}`; `/v1/cat/edge/goalie-detail/{player-id}/now` 1830 | - **Method**: GET 1831 | - **Description**: Provides information on GAA, games above .900, goal differential per 60, goal support average, point percentage, shot location summary/details. 1832 | - **Parameters**: 1833 | - `player-id` (int) - Player ID 1834 | - `season` (int) - Season in YYYYYYYY format 1835 | - `game-type` (int) - 2 for regular season, 3 for postseason 1836 | - **Response**: JSON format 1837 | 1838 | ###### Example using cURL: 1839 | 1840 | ```bash 1841 | curl -X GET "https://api-web.nhle.com/v1/cat/edge/skater-detail/8482116/20242025/2" 1842 | ``` 1843 | 1844 | ### Miscellaneous Data 1845 | 1846 | https://api-web.nhle.com/v1/edge/by-the-numbers - Unknown 1847 | 1848 | 1849 | 1850 | 1851 | --- 1852 | # NHL Stats API Documentation 1853 | 1854 | This section provides documentation for the NHL Stats API (https://api.nhle.com/stats/rest). 1855 | 1856 | 1857 | ## Base URL 1858 | 1859 | All endpoints described in this section are relative to the following base URL: 1860 | 1861 | ``` 1862 | https://api.nhle.com/stats/rest 1863 | ``` 1864 | 1865 | ## Players 1866 | 1867 | ### Players 1868 | 1869 | #### Get Player Information 1870 | - **Endpoint**: `/{lang}/players` 1871 | - **Method**: GET 1872 | - **Description**: Retrieve basic player information. (Responses limited to 5 results) 1873 | - **Parameters**: 1874 | - `lang` (string) - Language code 1875 | - **Request Parameters**: 1876 | - `include` (query, string) - Optional 1877 | - `exclude` (query, string) - Optional 1878 | - `cayenneExp` (query, string) - Optional 1879 | - `sort` (query, string) - Optional 1880 | - `dir` (query, string) - Optional 1881 | - `start` (query, int) - Optional 1882 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 1883 | - **Response**: JSON format 1884 | 1885 | ##### Example using cURL: 1886 | 1887 | ```bash 1888 | curl -X GET "https://api.nhle.com/stats/rest/en/players?limit=3&sort=lastName&dir=asc&cayenneExp=currentTeamId=7" 1889 | ``` 1890 | 1891 | ### Skaters 1892 | 1893 | #### Get Skater Leaders 1894 | - **Endpoint**: `/{lang}/leaders/skaters/{attribute}` 1895 | - **Method**: GET 1896 | - **Description**: Retrieve skater leaders for a specific attribute. 1897 | - **Parameters**: 1898 | - `attribute` (string) - Skater attribute 1899 | - `lang` (string) - Language code 1900 | - **Response**: JSON format 1901 | 1902 | ##### Example using cURL: 1903 | 1904 | ```bash 1905 | curl -X GET "https://api.nhle.com/stats/rest/en/leaders/skaters/points" 1906 | ``` 1907 | 1908 | #### Get Skater Milestones 1909 | - **Endpoint**: `/{lang}/milestones/skaters` 1910 | - **Method**: GET 1911 | - **Description**: Retrieve skater milestones. 1912 | - **Parameters**: 1913 | - `lang` (string) - Language code 1914 | - **Response**: JSON format 1915 | 1916 | ##### Example using cURL: 1917 | 1918 | ```bash 1919 | curl -X GET "https://api.nhle.com/stats/rest/en/milestones/skaters" 1920 | ``` 1921 | 1922 | #### Get Skater Information 1923 | - **Endpoint**: `/{lang}/skater` 1924 | - **Method**: GET 1925 | - **Description**: Retrieve skater information. 1926 | - **Parameters**: 1927 | - `lang` (string) - Language code 1928 | - **Response**: JSON format 1929 | 1930 | ##### Example using cURL: 1931 | 1932 | ```bash 1933 | curl -X GET "https://api.nhle.com/stats/rest/en/skater" 1934 | ``` 1935 | 1936 | #### Get Skater Stats 1937 | - **Endpoint**: `/{lang}/skater/{report}` 1938 | - **Method**: GET 1939 | - **Description**: Retrieve skater stats for a specific report. 1940 | - **Parameters**: 1941 | - `report` (string) - Skater report 1942 | - `lang` (string) - Language code 1943 | - **Request Parameters**: 1944 | - `isAggregate` (query, boolean) - Optional 1945 | - `isGame` (query, boolean) - Optional 1946 | - `factCayenneExp` (query, string) - Optional 1947 | - `include` (query, string) - Optional 1948 | - `exclude` (query, string) - Optional 1949 | - `cayenneExp` (query, string) - **Required** 1950 | - `sort` (query, string) - Optional 1951 | - `dir` (query, string) - Optional 1952 | - `start` (query, int) - Optional 1953 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 1954 | - **Response**: JSON format 1955 | 1956 | ##### Example using cURL: 1957 | 1958 | ```bash 1959 | curl -X GET "https://api.nhle.com/stats/rest/en/skater/summary?limit=72&start=17&sort=points&cayenneExp=seasonId=20232024" 1960 | ``` 1961 | 1962 | 1963 | 1964 | ### Goalies 1965 | 1966 | #### Get Goalie Leaders 1967 | - **Endpoint**: `/{lang}/leaders/goalies/{attribute}` 1968 | - **Method**: GET 1969 | - **Description**: Retrieve goalie leaders for a specific attribute. 1970 | - **Parameters**: 1971 | - `attribute` (string) - Goalie attribute 1972 | - `lang` (string) - Language code 1973 | - **Response**: JSON format 1974 | 1975 | ##### Example using cURL: 1976 | 1977 | ```bash 1978 | curl -X GET "https://api.nhle.com/stats/rest/en/leaders/goalies/gaa" 1979 | ``` 1980 | 1981 | #### Get Goalie Stats 1982 | - **Endpoint**: `/{lang}/goalie/{report}` 1983 | - **Method**: GET 1984 | - **Description**: Retrieve goalie stats for a specific report. 1985 | - **Parameters**: 1986 | - `report` (string) - Goalie report 1987 | - `lang` (string) - Language code 1988 | - **Request Parameters**: 1989 | - `isAggregate` (query, boolean) - Optional 1990 | - `isGame` (query, boolean) - Optional 1991 | - `factCayenneExp` (query, string) - Optional 1992 | - `include` (query, string) - Optional 1993 | - `exclude` (query, string) - Optional 1994 | - `cayenneExp` (query, string) - **Required** 1995 | - `sort` (query, string) - Optional 1996 | - `dir` (query, string) - Optional 1997 | - `start` (query, int) - Optional 1998 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 1999 | - **Response**: JSON format 2000 | 2001 | ##### Example using cURL: 2002 | 2003 | ```bash 2004 | curl -X GET "https://api.nhle.com/stats/rest/en/goalie/summary?limit=72&start=15&sort=wins&cayenneExp=seasonId=20232024" 2005 | ``` 2006 | 2007 | #### Get Goalie Milestones 2008 | - **Endpoint**: `/{lang}/milestones/goalies` 2009 | - **Method**: GET 2010 | - **Description**: Retrieve goalie milestones. 2011 | - **Parameters**: 2012 | - `lang` (string) - Language code 2013 | - **Response**: JSON format 2014 | 2015 | ##### Example using cURL: 2016 | 2017 | ```bash 2018 | curl -X GET "https://api.nhle.com/stats/rest/en/milestones/goalies" 2019 | ``` 2020 | 2021 | ### Draft 2022 | 2023 | #### Get Draft Information 2024 | - **Endpoint**: `/{lang}/draft` 2025 | - **Method**: GET 2026 | - **Description**: Retrieve draft information. 2027 | - **Response**: JSON format 2028 | 2029 | ##### Example using cURL: 2030 | 2031 | ```bash 2032 | curl -X GET "https://api.nhle.com/stats/rest/en/draft" 2033 | ``` 2034 | 2035 | 2036 | 2037 | ## Teams 2038 | #### Get Team Information 2039 | - **Endpoint**: `/{lang}/team` 2040 | - **Method**: GET 2041 | - **Description**: Retrieve list of all teams. 2042 | - **Parameters**: 2043 | - `lang` (string) - Language code 2044 | - **Response**: JSON format 2045 | 2046 | ##### Example using cURL: 2047 | 2048 | ```bash 2049 | curl -X GET "https://api.nhle.com/stats/rest/en/team" 2050 | ``` 2051 | 2052 | #### Get Team By ID 2053 | - **Endpoint**: `/{lang}/team/id/{id}` 2054 | - **Method**: GET 2055 | - **Description**: Retrieve information for a specific team by ID. 2056 | - **Parameters**: 2057 | - `lang` (string) - Language code 2058 | - `id` (string) - Team ID 2059 | - **Response**: JSON format 2060 | 2061 | ##### Example using cURL: 2062 | 2063 | ```bash 2064 | curl -X GET "https://api.nhle.com/stats/rest/en/team/id/10" 2065 | ``` 2066 | 2067 | #### Get Team Stats 2068 | - **Endpoint**: `/{lang}/team/{report}` 2069 | - **Method**: GET 2070 | - **Description**: Retrieve team stats for a specific report. 2071 | - **Parameters**: 2072 | - `report` (string) - Team report 2073 | - `lang` (string) - Language code 2074 | - **Request Parameters**: 2075 | - `isAggregate` (query, boolean) - Optional 2076 | - `isGame` (query, boolean) - Optional 2077 | - `factCayenneExp` (query, string) - Optional 2078 | - `include` (query, string) - Optional 2079 | - `exclude` (query, string) - Optional 2080 | - `cayenneExp` (query, string) - Optional 2081 | - `sort` (query, string) - Optional 2082 | - `dir` (query, string) - Optional 2083 | - `start` (query, int) - Optional 2084 | - `limit` (query, int) - Optional (**Note:** a limit of -1 will return all results) 2085 | - **Response**: JSON format 2086 | 2087 | ##### Example using cURL: 2088 | 2089 | ```bash 2090 | curl -X GET "https://api.nhle.com/stats/rest/en/team/summary?sort=shotsForPerGame&cayenneExp=seasonId=20232024%20and%20gameTypeId=2" 2091 | ``` 2092 | 2093 | ### Get Franchise Information 2094 | - **Endpoint**: `/{lang}/franchise` 2095 | - **Method**: GET 2096 | - **Description**: Retrieve list of all franchises. 2097 | - **Parameters**: 2098 | - `lang` (string) - Language code 2099 | - **Response**: JSON format 2100 | 2101 | ##### Example using cURL: 2102 | 2103 | ```bash 2104 | curl -X GET "https://api.nhle.com/stats/rest/en/franchise" 2105 | ``` 2106 | 2107 | 2108 | 2109 | ## Season 2110 | 2111 | #### Get Component Season 2112 | - **Endpoint**: `/{lang}/componentSeason` 2113 | - **Method**: GET 2114 | - **Description**: Retrieve component season information. 2115 | - **Response**: JSON format 2116 | 2117 | ##### Example using cURL: 2118 | 2119 | ```bash 2120 | curl -X GET "https://api.nhle.com/stats/rest/en/componentSeason" 2121 | ``` 2122 | 2123 | #### Get Season 2124 | - **Endpoint**: `/{lang}/season` 2125 | - **Method**: GET 2126 | - **Description**: Retrieve season information. 2127 | - **Response**: JSON format 2128 | 2129 | ##### Example using cURL: 2130 | 2131 | ```bash 2132 | curl -X GET "https://api.nhle.com/stats/rest/en/season" 2133 | ``` 2134 | 2135 | 2136 | ## Game 2137 | 2138 | #### Get Game Information 2139 | - **Endpoint**: `/{lang}/game` 2140 | - **Method**: GET 2141 | - **Description**: Retrieve game information. 2142 | - **Response**: JSON format 2143 | 2144 | ##### Example using cURL: 2145 | 2146 | ```bash 2147 | curl -X GET "https://api.nhle.com/stats/rest/en/game" 2148 | ``` 2149 | 2150 | #### Get Game Metadata 2151 | - **Endpoint**: `/{lang}/game/meta` 2152 | - **Method**: GET 2153 | - **Description**: Retrieve metadata for game. 2154 | - **Parameters**: 2155 | - `lang` (string) - Language code 2156 | - **Response**: JSON format 2157 | 2158 | ##### Example using cURL: 2159 | 2160 | ```bash 2161 | curl -X GET "https://api.nhle.com/stats/rest/en/game/meta" 2162 | ``` 2163 | 2164 | 2165 | 2166 | 2167 | ## Miscellaneous 2168 | 2169 | ### Configuration 2170 | 2171 | #### Get Configuration 2172 | - **Endpoint**: `/{lang}/config` 2173 | - **Method**: GET 2174 | - **Description**: Retrieve configuration information. 2175 | - **Parameters**: 2176 | - `lang` (string) - Language code 2177 | - **Response**: JSON format 2178 | 2179 | ##### Example using cURL: 2180 | 2181 | ```bash 2182 | curl -X GET "https://api.nhle.com/stats/rest/en/config" 2183 | ``` 2184 | 2185 | ### Ping the Server 2186 | - **Endpoint**: `/ping` 2187 | - **Method**: GET 2188 | - **Description**: Ping the server to check connectivity. 2189 | - **Response**: JSON format 2190 | 2191 | ##### Example using cURL: 2192 | 2193 | ```bash 2194 | curl -X GET "https://api.nhle.com/stats/rest/ping" 2195 | ``` 2196 | 2197 | ### Get Country Information 2198 | - **Endpoint**: `/{lang}/country` 2199 | - **Method**: GET 2200 | - **Description**: Retrieve country information. Returns list of all countries with a hockey presence(?) 2201 | - **Parameters**: 2202 | - `lang` (string) - Language code 2203 | - **Response**: JSON format 2204 | 2205 | ##### Example using cURL: 2206 | 2207 | ```bash 2208 | curl -X GET "https://api.nhle.com/stats/rest/en/country" 2209 | ``` 2210 | 2211 | 2212 | ### Get Shift Charts 2213 | - **Endpoint**: `/{lang}/shiftcharts?cayenneExp=gameId={game_id}` 2214 | - **Method**: GET 2215 | - **Description**: Retrieve shift charts for a specific game. 2216 | - **Parameters**: 2217 | - `lang` (string) - Language code 2218 | - `game-id` (int) - Game ID 2219 | - **Response**: JSON format 2220 | 2221 | ##### Example using cURL: 2222 | 2223 | ```bash 2224 | curl -X GET "https://api.nhle.com/stats/rest/en/shiftcharts?cayenneExp=gameId=2021020001" 2225 | ``` 2226 | 2227 | 2228 | ### Glossary 2229 | 2230 | #### Get Glossary 2231 | - **Endpoint**: `/{lang}/glossary` 2232 | - **Method**: GET 2233 | - **Description**: Retrieve the glossary for a specific language. 2234 | - **Parameters**: 2235 | - `lang` (string) - Language code 2236 | - **Response**: JSON format 2237 | 2238 | ##### Example using cURL: 2239 | 2240 | ```bash 2241 | curl -X GET "https://api.nhle.com/stats/rest/en/glossary" 2242 | ``` 2243 | 2244 | ### Content Module 2245 | #### Get Content Module 2246 | - **Endpoint**: `/{lang}/content/module/{templateKey}` 2247 | - **Method**: GET 2248 | - **Description**: Retrieve content module information for a specific template. 2249 | - **Parameters**: 2250 | - `lang` (string) - Language code 2251 | - `templateKey` (string) - Template key/name 2252 | - **Response**: JSON format 2253 | 2254 | ##### Example using cURL: 2255 | 2256 | ```bash 2257 | curl -X GET "https://api.nhle.com/stats/rest/en/content/module/overview" 2258 | ``` 2259 | 2260 | 2261 | 2262 | --- 2263 | 2264 | *For the full WADL with extended resources: [WADL Link](https://api.nhle.com/stats/rest/application.wadl?detail=true)* 2265 | --------------------------------------------------------------------------------