Hockey Reference Scraper - NHL Player Stats avatar

Hockey Reference Scraper - NHL Player Stats

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Hockey Reference Scraper - NHL Player Stats

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

lulz bot

Maintained by Community

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 = index
  • letter - 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 = detailed
  • letter - 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 + cheerio for fast HTML parsing (no browser needed)
  • Extracts data from data-stat attributes on table cells for reliable field mapping
  • Parses JSON-LD schema.org/Person data 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