Pricing
from $10.00 / 1,000 results
Hockey Reference Scraper - NHL Player Stats
Scrape Hockey-Reference.com for NHL and WHA player stats. Browse 8,700+ players by letter or get detailed career stats with goals, assists, points, plus/minus, penalty minutes, and point shares.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 months ago
Last modified
Categories
Share
Hockey Reference Scraper
Scrape NHL and WHA player statistics from Hockey-Reference.com. Browse 8,700+ players across 26 letter index pages, or get detailed career stats including goals, assists, points, plus/minus, penalty minutes, and point shares.
Features
- Index Mode - Browse player index pages by letter. Extract names, positions, years active, and league (NHL/WHA)
- Detailed Mode - Follow player URLs for full career stats with season-by-season breakdowns
- Skater Stats - Goals, assists, points, plus/minus, penalty minutes, shots, shooting %, TOI, faceoffs, hits, blocks
- Goalie Stats - Wins, losses, GAA, save %, shutouts, quality starts, goals saved above average
- Playoff Stats - Separate regular season and playoff stat tables
- Point Shares - Offensive/defensive point shares from misc stats table
- Hall of Fame - Identifies Hall of Famers from bold formatting on index pages
- Biographical Info - Name, position, shoots/catches, height, weight, birth date, birth place, draft info
Modes
Index Mode (index)
Lists all players from one or more letter index pages. Fast, lightweight, no player page requests needed.
Input:
scrapeType=indexletter- Optional single letter a-z (leave empty for all 26 letters)maxResults- Maximum players to return (default: 500, max: 10000)
Output:
{"name":"Wayne Gretzky","position":"C","yearsActive":"1979-1999","league":"NHL","isHallOfFamer":true,"url":"https://www.hockey-reference.com/players/g/grMDwa99.html","letter":"g","scrapedAt":"2026-04-25T12:00:00.000Z"}
Detailed Mode (detailed)
Fetches index pages first, then follows each player URL to extract full career statistics. Slower due to per-player requests with 3s rate limiting.
Input:
scrapeType=detailedletter- Optional single letter (recommended to limit scope)maxResults- Maximum players to scrape (default: 500)
Skater Output:
{"name":"Wayne Gretzky","position":"Center","shoots":"Left","height":"6-0","weight":"185","birthDate":"1961-01-26","birthPlace":"Brantford, ON, CA","isGoalie":false,"regularSeason":[{"season":"1979-80","team":"EDM","league":"NHL","gamesPlayed":79,"goals":51,"assists":86,"points":137,"plusMinus":15,"penaltyMinutes":21,"powerPlayGoals":13,"shots":284,"shootingPct":17.96}],"regularSeasonCareerTotals":{"goals":894,"assists":1963,"points":2857},"playoffStats":[...],"playoffCareerTotals":{...},"miscStats":[...],"careerGoals":894,"careerAssists":1963,"careerPoints":2857,"careerPointShares":186.6,"url":"https://www.hockey-reference.com/players/g/gretzwa01.html"}
Goalie Output:
{"name":"Martin Brodeur","position":"Goalie","isGoalie":true,"regularSeason":[{"season":"1993-94","team":"NJD","gamesPlayed":47,"wins":27,"losses":11,"goalsAgainstAvg":2.40,"savePct":0.915,"shutouts":3}],"careerWins":691,"careerShutouts":125,"careerSavePct":0.912}
Skater Stats Extracted
Games Played (GP), Goals (G), Assists (A), Points (PTS), Plus/Minus (+/-), Penalty Minutes (PIM), Even Strength Goals, Power Play Goals, Short Handed Goals, Game Winning Goals, Even Strength Assists, Power Play Assists, Short Handed Assists, Shots, Shooting %, Time on Ice, Avg TOI, Faceoff Wins/Losses/%, Hits, Blocks, Takeaways, Giveaways
Goalie Stats Extracted
Games Played, Games Started, Wins, Losses, Ties, OT Losses, Goals Against, Shots Against, Saves, Save %, Goals Against Average, Shutouts, Minutes Played, Quality Starts, Quality Start %, Really Bad Starts, Goals Saved Above Average, Point Shares
Point Shares (Misc Stats)
Offensive Point Shares (OPS), Defensive Point Shares (DPS), Total Point Shares (PS)
Rate Limiting
The scraper uses a 3-second delay between all HTTP requests to respect Hockey-Reference's rate limits. Cloudflare protection is present but generally passes through with proper headers. For large runs, residential proxies are recommended.
Proxy Configuration
Hockey-Reference may rate-limit aggressive scraping. The default configuration uses Apify residential proxies for reliability.
Technical Notes
- Uses
got-scraping+cheeriofor fast HTML parsing (no browser needed) - Extracts data from
data-statattributes on table cells for reliable field mapping - Parses JSON-LD
schema.org/Persondata for biographical information - Handles HTML comments (Hockey-Reference hides some stat tables inside comments)
- Automatically detects goalies vs skaters and extracts appropriate stat tables
- Incremental data pushing every 10 players in detailed mode
- Pay-per-event charging: billed per result returned
