RECORDSDATA

[SPORTS · DEVELOPER TOOLS]

Sports Reference Stats Scraper - NBA & NHL

Scrape Basketball-Reference and Hockey-Reference player and team stats: seasons, advanced metrics, rosters, salaries. Export CSV, JSON, Excel. No login.

Input: 5 fields, required: startUrls. Billed per event on the free Apify plan: Player season record $0.025, Player advanced stats record $0.012, Team roster record $0.01 and 1 more event. Results export as JSON, CSV or Excel. Last updated 2026-10-04.

STATUS
PRODUCTION
INPUT FIELDS
5
REQUIRED
1
PRICING
PAY PER EVENT
UPDATED
2026-10-04
OUTPUT
JSON, CSV, Excel

01 / INPUT

What you can configure.

FIELDTYPEDESCRIPTION
Start URLsstartUrlsREQUIREDarrayPlayer or team-season pages from basketball-reference.com (NBA) or hockey-reference.com (NHL) to scrape, for example basketball-reference.com/players/j/jamesle01.html for a player career or hockey-reference.com/teams/WSH/2024.html for a team season. default: [{"url":"https://www.basketball-reference.com/players/j/jamesle01.html"}]
Max ItemsmaxItemsintegerMaximum number of player-season stat rows to return. Free users are limited to 10 rows per run. Paid users can raise it up to 1,000,000. Extra rows (advanced, roster, salaries) are not counted here.
Advanced statsincludeAdvancedbooleanAdd advanced metrics rows per season: PER, win shares and BPM for basketball, possession and rate stats for hockey. Billed as a separate event per row. default: false
Team rosterincludeRosterbooleanAdd the full roster of a team-season page, one row per player. Only applies to team URLs. Billed as a separate event per row. default: false
SalariesincludeSalariesbooleanAdd salary history rows per season where published (basketball-reference only). Billed as a separate event per row. default: false

02 / PRICING

Pay for what you collect.

EVENTDETAILPRICE
Player season record · BASEOne player-season row of real per-game stats (NBA or NHL).$0.025
Player advanced stats recordOne player-season row of advanced metrics (PER/WS/BPM for NBA, possession/rate stats for NHL).$0.012
Team roster recordOne player row from a team-season roster.$0.01
Salary recordOne season salary row, where published.$0.012

Prices in USD, shown for the Apify free plan. Paid Apify plans get tiered discounts. Platform usage is included.

03 / FAQ

About the Sports Reference Stats Scraper.

How much does the Sports Reference Stats Scraper cost?

It charges per event: Player season record $0.025, Player advanced stats record $0.012, Team roster record $0.01 and 1 more event. Prices are for the free Apify plan, and paid Apify plans get tiered discounts. Apify platform usage is included in the event price.

What input does the Sports Reference Stats Scraper need?

One field is required: startUrls (array). The Actor has 5 input fields in total, and the rest have defaults.

Which formats can I export the Sports Reference Stats Scraper results in?

Results are saved to an Apify dataset. Download them as JSON, CSV or Excel, or fetch them through the Apify API.

04 / RELATED

More from the same family.

[01]

Sofascore Match Stats Scraper - Live Scores, Odds & Lineups

Scrape Sofascore match stats, lineups, xG shot maps, player ratings and odds for 11 sports by team, match ID or live. Export CSV, JSON, Excel. No login.

PRODUCTIONAUTOMATION
VIEW ACTOR
[02]

Basketball Scraper: Box Scores, Play-by-Play & Odds

Scrape basketball box scores, play-by-play, odds, rosters and standings for any NBA or EuroLeague team. No login or API key. Export CSV, Excel or JSON.

PRODUCTIONDEVELOPER TOOLS
VIEW ACTOR
[03]

Tennis Match Stats Scraper - ATP & WTA

Scrape ATP and WTA tennis match results, serve stats, point-by-point, head-to-head, odds and rankings by player name. Export CSV, JSON, Excel. No login.

PRODUCTIONDEVELOPER TOOLS
VIEW ACTOR

NEXT SOURCE

What should we collect next?

Have a source that needs structured data?

Build an Actor