NHL Stats and Play-by-Play Scraper avatar

NHL Stats and Play-by-Play Scraper

Pricing

from $13.50 / 1,000 results

Go to Apify Store
NHL Stats and Play-by-Play Scraper

NHL Stats and Play-by-Play Scraper

Get NHL player and team stats, standings, game results, boxscores, draft picks and full play-by-play with shot coordinates. One wide row per player with time on ice, power play, penalties and shot attempts. Any season since 1917. Export to CSV or Excel.

Pricing

from $13.50 / 1,000 results

Rating

0.0

(0)

Developer

ParseLab

ParseLab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

NHL Hockey Stats Scraper: Players, Games and Play-by-Play

This NHL scraper collects official NHL data and returns it as clean rows you can sort, filter and export. Get season stats for every skater and goalie, team stats, standings for any date, game results with optional boxscores, draft picks, full player profiles with career totals, game logs and play-by-play events with shot coordinates. Data goes back to the 1917-18 season.

The main difference from other hockey scrapers is depth. A skater row does not stop at goals and assists. It merges the separate NHL stat reports into one wide row with time on ice, power play and penalty kill numbers, penalties drawn, hits, blocks, giveaways, takeaways, shot attempts, Corsi-style percentages, faceoffs by zone, shootout record and bio details such as draft position and birthplace. You get the whole picture without stitching six downloads together.

Fantasy players, betting analysts, sports journalists, data scientists and hockey fans use it to build models, dashboards and newsletters.

What can you do with this NHL scraper?

  • Get all NHL skater stats for a season, sorted by points
  • Compare goalies by save percentage, quality starts and saves by strength
  • Find the top penalty drawers or best shot-attempt percentages in the league
  • Download NHL standings for any date, with home, road and last 10 splits
  • List every game between two dates with scores, venues and TV networks
  • Pull full boxscores with every player's line
  • Get play-by-play with x and y coordinates for every shot, hit and faceoff
  • Build expected goals models from shot distance and angle
  • Load the game log of any player for a season or the playoffs
  • List all picks of any NHL draft, with amateur club and league
  • Export NHL data to CSV or Excel

What data can you extract from the NHL?

ModeOne row isHighlights
Skater season statsOne skater and seasonGoals, assists, points, shots, plus/minus, time on ice, power play, shorthanded, penalties, hits, blocks, takeaways, giveaways, shot attempts, faceoffs, shootouts, bio
Goalie season statsOne goalie and seasonWins, losses, save percentage, goals against average, quality starts, saves by strength, started versus relieved, penalty shots
Team season statsOne team and seasonGoals for and against, power play and penalty kill, faceoffs, hits, shot attempt percentages, goals against by strength
StandingsOne team on a datePoints, regulation wins, home, road and last 10 records, goal differential, streak
Games and resultsOne gameDate, teams, score, shots, venue, how it ended, broadcasts, optional boxscore
Play-by-playOne eventEvent type, period, clock, strength, coordinates, distance and angle to the net, players involved
Player profilesOne playerBio, draft, career totals, every season, awards, last five games
Game logsOne player and gameFull stat line for each game
Draft picksOne pickRound, pick, team, player, position, amateur club

How to scrape NHL stats

  1. Choose What to collect, for example Skater season stats.
  2. Enter one or more seasons such as 2024-25. Leave it empty for the current season.
  3. Pick regular season, playoffs or preseason.
  4. Add optional filters: teams, positions or a minimum number of games played.
  5. Set Max Items and click Start.
  6. Export the dataset as CSV, Excel or from the Apify console.

Input example

{
"mode": "skaters",
"seasons": ["2024-25"],
"gameType": "regular",
"depth": "full",
"minGames": 50,
"maxItems": 100
}

Output example

{
"playerId": 8476453,
"playerName": "Nikita Kucherov",
"season": "2024-25",
"gameType": "regular",
"team": "TBL",
"gamesPlayed": 78,
"goals": 37,
"assists": 84,
"points": 121,
"plusMinus": 22,
"ppPoints": 46,
"shots": 265,
"shootingPct": 0.13962,
"timeOnIcePerGameMinutes": 21.19,
"penaltiesDrawn": 28,
"satPct": 0.526795,
"draftYear": 2011,
"draftOverall": 58,
"birthCountryCode": "RUS"
}

Play-by-play example

{
"gameId": 2024020700,
"eventType": "shot-on-goal",
"period": 1,
"timeInPeriod": "00:22",
"team": "CGY",
"strength": "5v5",
"xCoord": -62,
"yCoord": 23,
"distanceToNetFt": 35.5,
"angleToNetDeg": 40.4,
"shotType": "wrist",
"shootingName": "Nazem Kadri",
"goalieName": "Jordan Binnington"
}

Distance and angle are calculated for shots in the offensive zone, so you can feed them straight into a model.

How much does it cost to scrape the NHL?

You pay per result: $18 per 1,000 rows plus a tiny start fee. The free plan returns up to 10 rows per run. A full season of skaters is about 900 rows, and a full game of play-by-play is roughly 300 events.

Tips for better results

  • Use Basic detail when you only need the standard stat line. Full detail is the default.
  • Names and IDs work together. Look up a player by name once, then reuse the player ID in later runs.
  • Filter play-by-play by event type, for example goals and shots on goal, to keep datasets small.
  • Times on ice are given in seconds by the NHL. The Actor adds a version in minutes.
  • Games in the future or in progress have no final boxscore yet.

Who uses NHL data?

  • Fantasy hockey players rank players by real usage such as time on ice and power play minutes.
  • Betting analysts build models from shot quality and team form.
  • Journalists and bloggers pull numbers for stories and graphics.
  • Students and data scientists practice on real event data.

Automate and connect

Schedule the Actor to refresh standings every morning, or pull yesterday's games and play-by-play after each game night. Send finished datasets to Google Sheets, Zapier, Make or n8n, or trigger a webhook when a run ends.

FAQ

Do I need an NHL account? No. The Actor works without any login.

How far back does the data go? Season stats go back to 1917-18. Play-by-play with shot coordinates is available from about the 2010-11 season. Earlier games have fewer events and no coordinates.

Can I get playoff stats? Yes. Choose Playoffs under season part.

What is the difference between skater stats and player profiles? Skater stats give the numbers of every skater for a season. Player profiles give one full record for a player, with all seasons and career totals.

How do I find a game ID? Run games mode for a date range. Each row has its game ID.

This Actor collects information that is publicly visible on the website. Check the source site's terms and your local rules before using the data. Nothing here is betting or financial advice.

Support

Missing a field or found a bug? Open an issue from the Actor page.