Hockey-Reference NHL Stats Scraper
Pricing
from $1.00 / 1,000 nhl stat records
Hockey-Reference NHL Stats Scraper
Scrape public Hockey-Reference NHL season statistics for skaters, goalies, or team standings. Returns normalized, analysis-ready rows with player identity, scoring, goaltending, standings, and source metadata.
Pricing
from $1.00 / 1,000 nhl stat records
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Scrape public Hockey-Reference season tables for NHL skaters, goalies, or team standings. The Actor returns one normalized dataset item per source row and writes run diagnostics to the OUTPUT key-value record.
Input
{ "year": 2025, "statType": "skaters", "maxResults": 100 }
year is the season ending year, so 2025 is the 2024-25 NHL season. statType is skaters, goalies, or standings. Use maxResults: 1 for a cheap canary.
Output
Rows include statType, season, source identity, common scoring fields, goalie fields, standings record, sourceUrl, and scrapedAt. Fields not applicable to the selected table are null. OUTPUT contains status, records, sourceUrl, warnings, and blocked.
The primary PPE event is Apify's synthetic apify-default-dataset-item, one event per validated dataset row. Synthetic start pricing is reported separately. The Actor never fabricates rows when Hockey-Reference returns an error or access challenge.
Compliance
This Actor reads public Hockey-Reference pages using bounded direct HTTP requests. Respect Hockey-Reference terms, robots guidance, rate limits, and applicable law. It does not bypass authentication, CAPTCHAs, paywalls, or access controls.
What data does Hockey-Reference NHL Stats Scraper return?
Results are written to the default Apify dataset or the output links declared by the Actor. Inspect the dataset schema and a small test run before building a production mapping.
Use cases
- Schedule repeatable collection and export results to downstream workflows.
- Run a one-off research job and export the structured result as JSON, CSV, Excel, XML, or RSS from Apify.
- Schedule the same input to monitor changes over time and send completed datasets to a webhook or integration.
- Feed schema-shaped records into a database, spreadsheet, BI tool, or AI workflow with the source URL retained for verification.
Run Hockey-Reference NHL Stats Scraper with the Apify API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('muhammadafzal/hockey-reference-nhl-stats-scraper').call({"year": 2025,"statType": "skaters","maxResults": 100});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
You can also run the Actor from Apify Console, schedules, webhooks, the REST API, Make, Zapier, n8n, or the hosted Apify MCP server.
Pricing and cost control
This Actor uses pay-per-event pricing. Charges follow the live event definitions shown below.
| Event | Price (USD) | When it is charged |
|---|---|---|
apify-default-dataset-item | $0.001 | One unique, schema-valid Hockey-Reference NHL skater, goalie, or standings row stored in the default dataset. |
apify-actor-start | $0.00005 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
For example, 100 apify-default-dataset-item events cost $0.1, plus any enabled Actor-start event. Empty or failed work should be checked in the run log and dataset before reuse.
Support
When reporting a problem, include the Actor run ID, a redacted input, the expected result, and a small public example URL when applicable. Do not post API tokens, cookies, credentials, or personal data in an issue.
Frequently asked questions
Can I schedule Hockey-Reference NHL Stats Scraper?
Yes. Use an Apify schedule to run the same saved input at a chosen interval, then connect a webhook or integration to process the dataset when the run finishes.
How should I test a new input?
Begin with the prefilled example or a small limit. Confirm that the output fields, source coverage, runtime, and live charges match your workflow before increasing the scope.
How do I export the results?
Open the run's default dataset in Apify Console and export JSON, CSV, Excel, XML, or RSS. Applications can retrieve the same records through the Apify API client or REST dataset endpoint.
Can an AI agent call this Actor?
Yes. Add muhammadafzal/hockey-reference-nhl-stats-scraper through the hosted Apify MCP server or call it through the API. The Actor's input and dataset schemas help agents construct valid requests and interpret returned records.
Recommended workflow
- Define the smallest useful scope. Choose a representative public URL, query, identifier, or filter and keep the first result limit low.
- Run and inspect. Check the run log, dataset item count, field coverage, source URLs, and live event or usage charges.
- Validate downstream assumptions. Confirm nullable fields, deduplication keys, timestamps, and any locale-specific formats before importing records into another system.
- Scale gradually. Increase limits or scheduling frequency only after the small run behaves as expected. Use Apify's maximum-cost and timeout controls to bound large jobs.
- Monitor changes. Keep a small known-good input as a canary. If the source layout or API changes, compare the new dataset with a previously validated run and report the run ID when requesting support.
For recurring workflows, store the exact Actor input with your pipeline configuration. This makes runs reproducible and helps distinguish a source-data change from an input change.