NHL Scraper for Schedules, Standings and Player Stats

Hockey publishes a depth of per-shift and per-situation data that most sports never produce. Collect it as if it were football and you throw most of it away.

Plans from €169 a month · Free project assessment · Reply within 1 business day

CSV · Excel · JSON · XML · FTP · SFTP · Amazon S3 · Google Cloud

nhl.com
NHL Scraper for Schedules, Standings and Player Stats
nhl.comwhat you get
Typical fields for sports sites
leaguehome_teamaway_teamstart_timescoreodds
Delivery

API, JSON feed or CSV, XLSX and JSON files

Schedule

One-time, monthly, weekly, daily or 3 times a day

Managed NHL data collection, run end to end by us

  1. You send

    NHL pages, filters, fields and a schedule

  2. We run the scrapers

    Built, monitored and repaired by our team

  3. You receive the data

    API, JSON feed or CSV, XLSX and JSON files

ScrapeIt runs the collection as a managed service. You name the seasons, teams and the depth of statistics; we build the pipeline against the structured layer where it is available, run the backfill once and the in season updates around gamedays, and hand back CSV, JSON, Excel or a push into your warehouse, with goaltenders typed separately and situational splits preserved.

Cadence in season is gameday driven. Schedules are known in advance, standings move after games and statistics settle shortly afterwards.

We read structured responses rather than driving a browser across rendered pages, and we pace what we send. We collect only publicly available data - everything a visitor can see on the NHL site - and we collect it legally.

NHL fields in every export

Schedule and result records cover season, season type, game identifier, date, start time in local and UTC, home and away team, venue, attendance where published, and the score including how the game ended, since overtime and shootout results carry different standings value.

That last point deserves its own field rather than a footnote. A regulation win, an overtime win and a shootout win award different points, and a standings table cannot be computed correctly without knowing which occurred.

Standings records carry season, date, conference and division, position, games played, wins, losses, overtime losses, points, points percentage and the tiebreak columns the league actually uses.

Player records carry identifier, name, team, position, shot handedness, date of birth, and the statistics hockey publishes: goals, assists, points, plus minus, penalty minutes, time on ice, shifts, power play and short handed splits, faceoff percentage and shot attempts where reported.

Goaltenders are kept as their own record type with saves, save percentage, goals against average and shutouts, because forcing them into a skater schema loses everything that matters about them.

NHL fields in every export
Goaltenders, playoffs and joining to other sources

Goaltenders, playoffs and joining to other sources

Goaltenders need their own record type. Their statistics share almost nothing with skaters, and flattening them into one table produces columns that are null for most rows and misleading for the rest.

Playoff data is collected as its own season type with the series structure preserved: which teams met, in which round, and the game order within the series. Collapsed into a flat game list it loses the series, which is the unit people actually analyse.

Joining to other sources follows the same entity work as elsewhere in this section. Player names in hockey carry diacritics from several European languages, and they are routinely stripped in one source and present in another, so matching runs on birth date, team and position rather than on strings.

Historical backfill is practical and, as always in sports, immutable once collected. A multi season panel is a one time job after which the in season feed is light: gameday plus a settle window.

A league that publishes more detail than most

Source
nhl.com
Category
sports sites
Delivery
API, JSON feed, CSV, XLSX
Plans
From €169 a month
Get a quote

The official NHL site carries schedules, results, standings, team and player statistics across the regular season and the playoffs. What distinguishes it from most league sites is depth: hockey reports time on ice, shifts, power play and penalty kill situations, faceoffs and shot attempts as standard, and a great deal of that is published.

That changes the shape of the data. A football record is largely per match; a hockey record is per match, per period and frequently per situation. A collector designed around a single row per player per game discards most of what the league actually publishes.

Structurally the schedule and statistics sections respond directly, and the site renders from structured data rather than static documents, so the collection approach is the same as on other modern league sites: read the structured layer where available and keep the request count low.

The season shape also matters. Regular season, playoffs and the draft each produce different data with different cadences, and treating them as one continuous stream produces charts with unexplained gaps and spikes.

25Developers
500+Customers
1.5BPages extracted
15,000+Hours saved for our clients

NHL scraping plans and pricing

Airplane

€199one-time

Setup fee included

100,000
One-time
Up to 5 days
7 days

Helicopter

€169/ mo

Setup fee €499

250,000
Monthly
Up to 5 days
14 days

Glasses

€229/ mo

Setup fee €499

1,000,000
Weekly
Up to 5 days
30 days

Microscope popular

€349/ mo

Setup fee €499

2,000,000
Daily
Same day
60 days

DNA

€549/ mo

Setup fee €799

3,000,000
3 times daily
Same day
90 days

Delivery: CSV, JSON or XLSX files, our API or a JSON feed. MCP server on request.

Full plan details

Why hockey data needs a hockey schema

The common failure on this source is reuse. A team builds a football pipeline, points it at hockey and keeps the fields that overlap. What survives is goals and assists; what is lost is time on ice, situational splits and the difference between an overtime and a regulation result, which is most of the analytical value.

Time on ice is the clearest example. In hockey, playing time varies enormously between players in the same game, so a raw goal count without minutes is close to meaningless. Any per sixty analysis, which is the standard unit in the sport, needs the minutes captured.

Situational splits are the second. Even strength, power play and short handed are different games, and a player's production in one says little about the others. The league publishes the splits; a schema that ignores them discards a published distinction rather than an inferred one.

The third is the standings arithmetic. Overtime and shootout losses award a point, so a table computed from wins and losses alone will be wrong. Recording how each game ended is what makes a standings series reproducible.

The fourth is season type. Regular season and playoff data behave differently and should be filterable rather than blended, and the draft produces its own records entirely.

Who builds and keeps your NHL feed

ScrapeIt is a managed extraction company, not a tool you have to learn. Our team builds the pipeline, watches it through the season and into the playoffs, and repairs it before gameday.

You see a sample first, in your format, across the seasons and teams you need, with situational splits and goaltender records included so you can see the depth before committing.

FAQ

Still unsure? Write to info@scrapeit.io

Why can I not just reuse my football schema?

Because what survives the reuse is goals and assists, and what is lost is time on ice, situational splits and how each game ended - which is most of the analytical value in hockey. Playing time varies enormously between players in the same game, so a goal count without minutes is close to meaningless.

Do you capture overtime and shootout results?

Yes, as their own field. A regulation win, an overtime win and a shootout win award different points, so a standings table computed from wins and losses alone is simply wrong. Recording how each game ended is what makes a standings series reproducible.

Are goaltenders handled separately?

Yes, as their own record type with saves, save percentage, goals against average and shutouts. Their statistics share almost nothing with skaters, and flattening both into one table produces columns that are null for most rows and misleading for the rest.

Can playoffs be separated from the regular season?

Yes, by season type, and the playoff series structure is preserved: which teams met, in which round, and the game order within the series. Collapsed into a flat game list the series is lost, and the series is the unit people analyse.

How do you match players against other sources?

On birth date, team and position rather than on names. Hockey player names carry diacritics from several European languages and are routinely stripped in one source and present in another, which makes string matching unreliable in exactly the cases that matter.

How it works

  1. 1

    Make a request

    You share your needs, expectations, and desired timeframe. We'll suggest the best solution based on your request and budget.

  2. 2

    We configure the crawlers

    Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

  3. 3

    Collect and deliver

    Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

  4. 4

    Maintain and support

    Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a quote

Tell us which sites, which fields and how often. A couple of lines is enough to start.

  • We reply within 1 business day
  • A sample dataset before the full run
  • We sign an NDA on request
  • Delivery by API, JSON feed or files
Which sites, which fields, how often. A couple of lines is enough.

This form is protected by Google reCAPTCHA, which loads when you start filling it in. If you prefer not to use it, email us at info@scrapeit.io. Privacy & Cookie Policy

We reply within 1 business day. No obligation.

NHL data from €169/month. Free project assessment, reply within 1 business day.