NHL API - Hockey Statistics
Pricing
from $0.01 / 1,000 results
NHL API - Hockey Statistics
Access NHL hockey statistics, schedules, standings, player stats & game results. Historical data & live updates for sports betting & analytics applications.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Features
Share
NHL API
Live NHL hockey data from the official NHL web API: standings, teams, rosters, team and league schedules, game box scores, player stats and league leaders. The injury report comes from ESPN's public hockey feed. No API key needed.
Each run executes one task and returns one dataset item with the result in data.
Quick start
{"task": "standings"}
More examples:
{ "task": "standings", "season": "20252026" }{ "task": "teams" }{ "task": "team_roster", "teamId": "TOR" }{ "task": "team_schedule", "teamId": "BOS" }{ "task": "schedule", "date": "2026-10-21" }{ "task": "game_boxscore", "gameId": 2026020152 }{ "task": "player_stats", "playerId": 8478402 }{ "task": "leaders", "leaderCategory": "goals", "limit": 20 }{ "task": "injury_report", "teamId": "EDM" }
Tasks
| Task | What you get |
|---|---|
standings | All 32 teams grouped by division: GP, W, L, OTL, points, point %, goals for and against, differential, regulation wins, streak, last 10, league and wild-card rank |
teams | All 32 teams with abbreviation, name, conference and division |
team_roster | Forwards, defensemen and goalies with number, position, shoots/catches, height, weight, birth date and place |
team_schedule | A team's full season (preseason, regular season, playoffs) with dates, venues, scores and broadcasts |
schedule | All games on a date (default today) with start times, status and scores |
game_boxscore | Final or live score, shots, and every skater and goalie line for both teams |
player_stats | Bio, season stats (skater or goalie), career regular-season totals and last 5 games |
leaders | Top players in goals, assists, points, goalie wins, GAA or save % |
injury_report | League-wide or one team's injuries with status, injury, expected return date and latest note (source: ESPN) |
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
task | string | "standings" | Which data to fetch (see Tasks) |
teamId | string | - | Team abbreviation (TOR, BOS, EDM, NYR, VGK, UTA). Required for team_roster and team_schedule, optional filter for injury_report |
playerId | integer | - | NHL player id for player_stats: 8478402 = Connor McDavid, 8479318 = Auston Matthews, 8478048 = Igor Shesterkin |
gameId | integer | - | NHL game id for game_boxscore. Get ids from schedule or team_schedule |
season | string | current | Season as 20252026 (also accepts 2025-26) |
date | string | today | YYYY-MM-DD for schedule; also filters team_schedule |
leaderCategory | string | "points" | goals, assists, points, wins, gaa, savePct |
limit | integer | - | leaders: number of players (1-50, default 10). team_schedule: first N games |
demoMode | boolean | false | Return a small fixed SAMPLE dataset instead of live data (free, labelled source: "sample") |
webhookUrl | string | - | POST the result to this URL (Zapier, Make, n8n or your own endpoint) |
Output
{"task": "standings","success": true,"source": "nhl","timestamp": "2026-10-22T19:49:19.524Z","data": {"season": "20262027","asOf": "2026-10-22","count": 32,"standings": [ { "division": "Metropolitan", "conference": "Eastern", "teams": [ ... ] } ]}}
source is nhl (official NHL API) or espn (injury report, or the standings/teams fallback used if the NHL API is down). If live data cannot be fetched, or the input is invalid (for example team_roster without teamId), the item has "success": false and an error message, and no task event is charged. Live runs never fall back to sample data.
Pricing
Pay per event. You pay only for what a run delivers.
| Event | When it is charged | Price |
|---|---|---|
| Actor start | Once when the run starts, one event per GB of memory (minimum one). At the default 1 GB of memory that is $0.10 per run | $0.10 per GB |
| Game Fetched | Per game data fetched | $0.01 |
| Player Fetched | Per player stats fetched | $0.01 |
| Standings Fetched | Per standings fetched | $0.02 |
| Teams Fetched | Per league team list fetched | $0.02 |
| Injuries Fetched | Per injury report fetched | $0.01 |
| Result | Each item written to the default dataset | $0.00001 |
An injury_report with no listed injuries carries no task charge. Demo mode and failed tasks carry no task charge. This actor needs very little memory, so you can lower the run memory (for example to 1 GB) to cut the start fee.
Troubleshooting
success: false with "has no data for that request": the id, season or date does not exist. Check playerId/gameId, or run team_roster/schedule to find valid ids.
Empty games for schedule: no games on that date (offseason, All-Star break).
"Live NHL data is unavailable right now": the data source did not respond after three tries. Run again in a minute.
Built by John Rippy | Actor Arsenal