Hockey Reference Scraper - NHL Player Stats
Pricing
from $5.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 $5.00 / 1,000 results
Rating
0.0
(0)
Developer
lulz bot
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days 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