NHL Web API
Free NHL API with no key: live scores, standings, team rosters, player statistics and schedules from the official NHL data service. Tested curl example.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the NHL Web API?
The NHL Web API is a free, key-free service providing official National Hockey League data — live scores, standings, schedules, team rosters and detailed player statistics.
The NHL publishes an unusually complete free API with no key requirement. Standings, schedules, box scores, play-by-play and player statistics are all available, and the data is official rather than scraped.
It is undocumented in the formal sense — the NHL does not publish a developer portal — but the endpoints are stable and widely used by the hockey analytics community. The `/standings/now` path is a convenient alias that redirects to the current date.
Quick facts
- Base URL
https://api-web.nhle.com/v1- Authentication
- No API key required. The API is officially undocumented but publicly accessible.
- Rate limit
- No published limit; reasonable use expected.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the NHL Web API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. Fetch current NHL standings
GET https://api-web.nhle.com/v1/standings/now
curl 'https://api-web.nhle.com/v1/standings/now'const res = await fetch("https://api-web.nhle.com/v1/standings/now");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api-web.nhle.com/v1/standings/now", timeout=20)
res.raise_for_status()
print(res.json()){
"wildCardIndicator": true,
"standingsDateTimeUtc": "2026-08-19T20:28:15Z",
"standings": [
{
"clinchIndicator": "p",
"conferenceAbbrev": "W",
"conferenceHomeSequence": 1,
"conferenceL10Sequence": 2,
"conferenceName": "Western",
"conferenceRoadSequence": 1,
"conferenceSequence": 1,
"date": "2026-04-17",
"divisionAbbrev": "C",
"divisionHomeSequence": 1,
"divisionL10Sequence": 1,
"divisionName": "Central",
"divisionRoadSequence": 1,
"divisionSequence": 1,
"gameTypeId": 2,
"gamesPlayed": 82,
"goalDifferential": 99,
"goalDifferentialPctg": 1.207317,
"goalAgainst": 203,
"goalFor": 302,
"goalsForPctg": 3.682927,
"homeGamesPlayed": 41,
"homeGoalDifferential": 49,
"homeGoalsAgainst": 108,
"homeGoalsFor": 157,
"homeLosses": 9,
"homeOtLosses": 6,
"homePoints": 58,
"homeRegulationPlusOtWins": 25,
"homeRegulationWins": 25,
"homeTies": 0,
"homeWins": 26,
"l10GamesPlayed": 10,
"l10GoalDifferential": 14,
"l10GoalsAgainst": 20,
"l10GoalsFor": 34,
"l10Losses": 2,
"l10OtLosses": 1,
"l10Points": 15,
"l10RegulationPlusOtWins": 6,
"l10RegulationWins": 6,
"l10Ties": 0,
"l10Wins": 7,
"leagueHomeSequence": 3,
"leagueL10Sequence": 4,
"leagueRoadSequence": 1,
"leagueSequence": 1,
"losses": 16,
"otLosses": 11,
"placeName": {
"default": "Colorado"
},
"pointPctg": 0.737805,Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
standings/now | path | Optional | Current standings; redirects to today's date. standings/now |
standings/<date> | path | Optional | Standings as of a specific date. 2026-01-15 |
club-schedule-season/<team>/now | path | Optional | Full season schedule for a team. TOR |
player/<id>/landing | path | Optional | Player profile and career statistics. 8478402 |
gamecenter/<gameId>/boxscore | path | Optional | Box score for a game. 2023020204 |
Response fields
standings[].teamNameobject- Team name with localised variants.
standings[].pointsinteger- Points in the standings.
standings[].wins / losses / otLossesinteger- Win-loss record including overtime losses.
standings[].conferenceAbbrev / divisionAbbrevstring- Conference and division.
standings[].clinchIndicatorstring- Playoff clinch status such as `p` for presidents trophy or `x` for clinched.
standingsDateTimeUtcstring- Timestamp the standings were generated.
What you can build with the NHL Web API
- Build an NHL standings or scoreboard display
- Track a team's schedule and results through a season
- Analyse player statistics for fantasy hockey
- Create hockey analytics tooling with official data
Common errors and how to fix them
404
Wrong path structure or an invalid team abbreviation.
Fix: Team codes are three-letter uppercase, e.g. TOR, BOS, EDM.
Endpoints change without notice
The API is officially undocumented.
Fix: The community reference on GitHub is the practical source of truth; pin behaviour with tests.
Empty standings out of season
No games have been played yet.
Fix: Handle the off-season case; standings for a future date return an empty or zeroed structure.
NHL Web API — frequently asked questions
Is the NHL API free?
Yes, free with no API key. It is officially undocumented but publicly accessible and widely used by the hockey analytics community.
Where is the documentation?
The NHL does not publish a developer portal. A community-maintained reference on GitHub documents the endpoints, and it is the practical source of truth.
Does it provide live scores?
Yes, the gamecenter endpoints provide live box scores and play-by-play during games.
Is it stable enough to build on?
The endpoints have been stable in practice, but because it is undocumented the NHL could change it without notice. Write tests around your integration.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
NHL Web API is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.