ParseForge Scrapers

NHL Roster and Schedule Scraper

parseforge/nhl-roster-schedule-scraper

SportsAutomationIntegrations

Scrapes NHL team rosters and schedules by tricode and season. Returns player details or game data as flat rows for export.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
85
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

NHL Roster and Schedule Scraper

Scrape NHL team rosters and schedules for any season, up to a million records per run. Pull player names, positions, jersey numbers, game dates, opponents, and results. No API key or login. Export to CSV, JSON, Excel, or XML.

The NHL's official API requires registration and rate limits that slow down bulk collection. This actor reads public roster and schedule data directly, filtered by team, season, and data type, and returns each match in one fixed schema. Get the exact player and game data you need without writing a single request.

Who uses it What they scrape NHL.com for
Sports analysts Build historical player and game datasets for performance modeling.
Fantasy hockey developers Pull current rosters and upcoming schedules for app integrations.
Media outlets Automate game previews and roster updates for publishing.
Data engineers Feed NHL data pipelines with clean, structured records.

What it does

This Actor collects NHL roster and schedule data by team tricode and season, and returns each player or game as a flat row.

  • ๐Ÿ’ Roster mode: player name, position, jersey number, and status for a given team and season.
  • ๐Ÿ“… Schedule mode: game date, opponent, home/away, and final score for a given team and season.
  • ๐Ÿ”„ Combined mode: pull both rosters and schedules in a single run, delivered as separate datasets.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with NHL.com data

๐Ÿ“Š Build historical performance datasets.

A sports analyst pulls ten years of rosters and schedules for the Boston Bruins to model player durability and team performance trends.

๐Ÿ“ฑ Power a fantasy hockey app.

A developer scrapes current rosters and the upcoming week's schedule for all Canadian teams to feed a lineup optimizer.

๐Ÿ“ฐ Automate game previews.

A media outlet pulls the next day's schedule and home-team rosters to generate automated pre-game articles.

๐Ÿ” Scout player movement.

A recruiter scrapes rosters across multiple seasons for the Detroit Red Wings to track call-ups, trades, and roster churn.

Why choose this scraper

What you get
No API key Reads public NHL data directly, no registration or OAuth.
Full season history Pull rosters and schedules for any season, past or present.
Structured output Every player and game returns in a consistent, flat schema.
Bulk ready Collect up to a million records per run for large-scale analysis.

How it compares

No other Store actor targets NHL.com the same way, so the honest comparison is with the alternatives teams actually weigh.

NHL Roster and Schedule Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When NHL.com changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from a team tricode and optional season code, and choose to pull rosters, schedules, or both so only the data you need reaches your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "team": "BOS",
  "maxItems": 10,
  "mode": "both"
}

A larger pull:

{
  "team": "BOS",
  "maxItems": 200,
  "mode": "both"
}

Pricing

Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $0.85
1,000 results $8.50
10,000 results $85.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the NHL Roster and Schedule Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to NHL.com through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/nhl-roster-schedule-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting an empty dataset?

Check that the team tricode and season code are valid. If the season hasn't started yet, schedule data may be empty. Try a past season to verify the actor works.

The actor returns fewer records than my maxItems setting.

The actor stops when it has collected all available data for the selected team, mode, and season. A roster typically has 20-30 players, and a schedule has 82 games, so the actual count may be lower than your limit.

I got an error about an invalid season code.

Season codes must be in the format YYYYYYYY, like 20252026. Make sure you entered eight digits with no spaces or dashes. If the season is in the future, some data may not be available yet.

The schedule shows 'TBD' for scores.

Games that haven't been played yet will have no final score. Run the actor again after the game date to collect completed results.

FAQ

Question Answer
What is a team tricode? A tricode is the three-letter abbreviation the NHL uses for each team, like BOS for Boston Bruins or TOR for Toronto Maple Leafs. You select it from the dropdown in the input.
Can I scrape data for multiple teams at once? This actor runs for one team per execution. To scrape multiple teams, run separate instances or use an Apify task with an array of team tricodes.
How do I specify a season? Enter the season code in the optional field, like 20252026 for the 2025-26 season. If you leave it blank, the actor defaults to the current season.
What data comes back in roster mode? Each row is a player and includes their full name, position, jersey number, and current roster status for the selected team and season.
What data comes back in schedule mode? Each row is a game and includes the date, opponent team, home or away designation, and the final score if the game is complete.
Can I get both rosters and schedules in one run? Yes, set the mode to 'Both' and the actor will collect roster and schedule data in the same execution, outputting them as separate datasets.
Does this work for past seasons? Yes, you can pull rosters and schedules for any historical season by entering the correct season code, as far back as the NHL's public data allows.
Is there a rate limit? The actor reads public feeds and is designed to stay within reasonable request rates. You can set a maximum record count to control the run size.
What export formats are supported? You can export your results to CSV, JSON, Excel, or XML directly from the Apify dataset tab.
Do I need an NHL API key? No, this actor scrapes publicly available NHL data and requires no registration, API key, or login.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by National Hockey League. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
team string (32 options) NHL team tricode. BOS
maxItems integer How many records to collect per run. 10
mode string (3 options) Which data to pull. both
season string Optional season code (e.g. 20252026). Default current. not set

Pricing

from $7.50 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.0075 to $0.0085

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~nhl-roster-schedule-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run NHL Roster and Schedule Scraper on Apify All scrapers