NHL Stats Scraper
Pricing
from $25.88 / 1,000 results
NHL Stats Scraper
Scrape NHL data from the official NHL Web API - standings, schedules, team stats, rosters, and player profiles. No API key required.
Pricing
from $25.88 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

🏒 NHL Stats Scraper
🚀 Export official NHL data in seconds. Pull the current 32-team standings, full schedules, club season stats, current rosters, and player landing pages from the official NHL data feed. No sign-up, no manual scraping, no setup.
🕒 Last updated: 2026-05-15 · 📊 25+ fields per record · 🏒 All 32 NHL teams · 🏆 Regular / Preseason / Postseason · 🥅 Standings + Schedule + Rosters + Player landing
The NHL Stats Scraper exports official National Hockey League data and returns up to 25+ structured fields per record, including team abbreviation + name, conference + division, games played / wins / losses / OT losses, points and point percentage, regulation wins, goal differential, home / away / last-10 records, current streak, league sequence, official team logo, and a public deep-link to NHL.com.
The Actor covers all 32 NHL teams, the full season schedule by date, club season stats by team and season, current rosters with bio data, and individual player landing pages with career totals, featured stats, draft details, headshots, and hero images. Filter by team, season, or season type (Regular / Preseason / Postseason) to pull only what you need.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Sports media, fantasy-hockey apps, betting analytics teams, fan-engagement platforms, indie sports devs, hockey researchers | Live standings, schedule feeds, roster lookups, player profile dashboards, season-stat exports, content automation |
📋 What the NHL Stats Scraper does
Five lookup modes in a single run:
- 🏆 Standings. Current 32-team league standings with conference + division grouping, point totals, regulation wins, goal differential, home / away / last-10 records, and streaks.
- 📅 Schedule. Games on a chosen date (defaults to today). Filter by season type:
R(Regular),PR(Preseason),PO(Postseason). - 📊 Team Stats. Club season stats for one or many teams (skaters and goalies merged) for a chosen season code.
- 👤 Player. Player landing page for one or many player IDs, with sweater number, position, height, weight, birth info, draft details, headshot, hero image, career totals, and featured stats.
- 📋 Roster. Current roster for one or many teams, grouped by forward / defenseman / goalie with bio fields.
Each standings record includes the canonical NHL identifiers, team logo URL, official metrics from the live feed, and a direct link to the team page.
💡 Why it matters: hockey moves fast, and accurate standings and roster data underpin every fantasy product, betting model, and fan-facing dashboard. Building your own pipeline means juggling NHL's data feed, normalising IDs across season types, and refreshing for every game day.
🎬 Full Demo
🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded dataset.
⚙️ Input
| Input | Type | Default | Behavior |
|---|---|---|---|
mode | string | "standings" | One of standings, schedule, teamStats, player, roster. |
date | string | today | YYYY-MM-DD. Used in schedule mode. |
teamAbbrev | string | none | Three-letter team code (32-team enum, e.g. EDM, TOR, NYR). |
teamAbbrevs | array | [] | Batch lookup. Takes precedence over teamAbbrev. |
season | string | "" | Eight-digit season code (e.g. 20242025) for teamStats mode. |
playerId | string | "" | NHL player ID for player mode (e.g. 8478402 = Connor McDavid). |
playerIds | array | [] | Batch player landing lookup. |
seasonType | string | "" | Filter schedule: R = Regular, PR = Preseason, PO = Postseason. |
maxItems | integer | 10 | Free plan caps at 10, paid plan at 1,000,000. |
Example: current 32-team standings.
{"mode": "standings","maxItems": 32}
Example: Connor McDavid landing page.
{"mode": "player","playerId": "8478402"}
⚠️ Good to Know: the
seasoninput uses the eight-digit NHL season code format. For the 2024-2025 season, use20242025. Same goes for past seasons (20232024,20222023, etc.).
📊 Output
Each standings record contains 25+ fields. Download the dataset as CSV, Excel, JSON, or XML.
🧾 Schema (standings mode)
| Field | Type | Example |
|---|---|---|
🏷️ teamAbbrev | string | "EDM" |
🏒 teamName | string | "Edmonton Oilers" |
🌎 conferenceName | string | "Western" |
🏆 divisionName | string | "Pacific" |
🎮 gamesPlayed | number | 60 |
🏅 wins | number | 38 |
❌ losses | number | 18 |
⏱️ otLosses | number | 4 |
📋 recordSummary | string | "38-18-4" |
🎯 points | number | 80 |
📊 pointPctg | number | 0.667 |
🥇 regulationWins | number | 30 |
⚖️ goalDifferential | number | 45 |
⚽ goalFor | number | 220 |
🥅 goalAgainst | number | 175 |
🏠 homeRecord | string | "22-7-2" |
🛫 awayRecord | string | "16-11-2" |
🔟 last10Record | string | "7-2-1" |
🔥 streakCode | string | "W" |
🔢 streakCount | number | 3 |
🔢 leagueSequence | number | 1 |
🖼️ logo | string | "https://assets.nhle.com/logos/nhl/svg/EDM_light.svg" |
🔗 url | string | "https://www.nhl.com/edm" |
🕒 scrapedAt | ISO 8601 | "2026-05-15T00:00:00.000Z" |
📦 Sample record
✨ Why choose this Actor
| Capability | |
|---|---|
| 🏒 | Full league. All 32 NHL teams across both conferences and four divisions, with logos and current standings. |
| 📅 | Daily schedule. Every game on any date, filtered by Regular / Preseason / Postseason. |
| 📊 | Club season stats. Skater and goalie stats merged with playerId, firstName, lastName, position, plus core counting stats. |
| 👤 | Player landings. Bio + draft + headshot + hero image + career totals + featured stats per player. |
| 📋 | Current rosters. Forward / defenseman / goalie groups with bio fields and headshots. |
| 🔁 | Always fresh. Each run pulls live data, so standings and rosters reflect the current state. |
| 🚫 | No sign-up. Works against the official NHL public feed. No login or token required. |
📊 Reliable NHL data is the foundation of every fantasy product, betting model, and fan-facing dashboard.
📈 How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| ⭐ NHL Stats Scraper (this Actor) | $5 free credit, then pay-per-use | 32 teams, 5 modes, all season types | Live per run | mode, team, season, season type | ⚡ 2 min |
| Commercial sports data vendors | $$$$/month | Full + extras | Streaming | Many | ⏳ Weeks |
| Manual stats-page scraping | Free | Inconsistent | On demand | None | 🐢 Days |
| Free hockey widgets | Free | Display-only | Live | Limited | 🕒 No raw data |
Pick this Actor when you want structured records, all 32 teams, and zero pipeline maintenance.
🚀 How to use
- 📝 Sign up. Create a free account w/ $5 credit (takes 2 minutes).
- 🌐 Open the Actor. Go to the NHL Stats Scraper page on the Apify Store.
- 🎯 Set input. Pick a mode, fill the relevant inputs (team abbreviation, season, or player ID), and set
maxItems. - 🚀 Run it. Click Start and let the Actor collect your data.
- 📥 Download. Grab your results in the Dataset tab as CSV, Excel, JSON, or XML.
⏱️ Total time from signup to downloaded dataset: 3-5 minutes. No coding required.
💼 Business use cases
🔌 Automating NHL Stats Scraper
Control the scraper programmatically for scheduled runs and pipeline integrations:
- 🟢 Node.js. Install the
apify-clientNPM package. - 🐍 Python. Use the
apify-clientPyPI package. - 📚 See the Apify documentation for full details.
The Apify Schedules feature lets you trigger this Actor on any cron interval. Refresh standings every minute, daily roster snapshots, or weekly season-stat pulls are all one click.
🌟 Beyond business use cases
Hockey data powers more than commercial products. The same records support research, education, civic projects, and personal initiatives.
🤖 Ask an AI assistant about this scraper
Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:
- 💬 ChatGPT
- 🧠 Claude
- 🔍 Perplexity
- 🅒 Copilot
❓ Frequently Asked Questions
🧩 How does it work?
Pick a mode (standings, schedule, teamStats, player, or roster), supply the relevant inputs, and click Start. The Actor pulls fresh records from the official NHL feed and emits a clean structured row per team, game, or player.
🏒 Which teams are supported?
All 32 NHL teams across the Eastern and Western conferences and the four divisions (Atlantic, Metropolitan, Central, Pacific).
📅 Can I get postseason games only?
Yes. Set seasonType to PO (Postseason) and the Actor restricts the schedule to playoff games. PR covers Preseason and R covers the Regular Season.
📊 How do I look up team season stats?
Set mode to teamStats, supply teamAbbrev (or batch with teamAbbrevs), and set season to the eight-digit season code (e.g. 20242025). The Actor returns merged skater + goalie stats with positions and counting metrics.
👤 Can I pull individual player landing pages?
Yes. Set mode to player and supply playerId (e.g. 8478402 for Connor McDavid). Use playerIds for batch lookups (up to 100 per call).
🖼️ Do I get team logos and player headshots?
Yes. Standings include direct logo URLs and player landings include headshot and heroImage URLs ready to embed.
⏰ Can I schedule regular runs?
Yes. Use Apify Schedules to run this Actor every minute, hourly, or daily. The dataset always reflects the current state of the live feed.
⚖️ Is this data legal to use?
Only publicly available scoreboard data is collected. Review the NHL's terms of use for your specific use case, particularly if you redistribute or commercialise the content.
💳 Do I need a paid Apify plan to use this Actor?
No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and unlocks scheduling and higher concurrency.
🔁 What happens if a run fails or gets interrupted?
Apify automatically retries transient errors. If a run still fails, you can inspect the log in the Runs tab, fix the input, and re-run. Partial datasets from failed runs are preserved so you never lose progress.
🆘 What if I need help?
Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.
🔌 Integrate with any app
NHL Stats Scraper connects to any cloud service via Apify integrations:
- Make - Automate multi-step workflows
- Zapier - Connect with 5,000+ apps
- Slack - Get score updates in your channels
- n8n - Self-hosted workflow automation
- Pipedream - Event-driven serverless workflows
- Airbyte - Pipe hockey data into your warehouse
- GitHub - Trigger runs from commits
- Google Drive - Export datasets straight to Sheets
You can also use webhooks to trigger downstream actions when a run finishes. Push fresh standings into your product backend, or alert your fans in Slack when their team scores.
🔗 Recommended Actors
- ⚾ MLB Stats Scraper - Schedules, teams, rosters, player stats, live game feeds
- 🏆 Sofascore Live Events Scraper - 13-sport live + scheduled events feed
- 🥅 TheSportsDB Scraper - Crowd-sourced sports database across leagues
- 🛡️ CWE MITRE Scraper - Software weakness reference catalogue
- 📊 OurAirports Scraper - Global airport reference dataset
💡 Pro Tip: browse the complete ParseForge collection for more reference-data scrapers.
🆘 Need Help? Open our contact form to request a new scraper, propose a custom data project, or report an issue.
⚠️ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the National Hockey League or any of its clubs. All trademarks mentioned are the property of their respective owners. Only publicly available scoreboard data is collected.