ParseForge Scrapers

ESPN Sports Data Scraper

parseforge/espn-sports-scraper

News & mediaDeveloper toolsOther

Scrapes ESPN sports data for NFL, NBA, MLB, NHL, soccer, and more. Returns scores, teams, standings, news, rosters, and schedules as flat rows.

Run this scraper See the API call
Total users
26
Monthly active
8
Total runs
214
Bookmarked
3
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

ESPN Sports Data Scraper

Scrape ESPN sports data for NFL, NBA, MLB, NHL, soccer, and more, up to a million records per run. Get scores, teams, standings, news, rosters, and schedules in one flat schema. No API key or login. Export to CSV, JSON, Excel, or XML.

ESPN's official API requires registration, authentication, and rate limits. This Actor reads public ESPN pages directly, filtered by sport, data type, and team, and returns each match in one fixed schema. It covers NFL, NBA, MLB, NHL, Premier League, La Liga, Serie A, Bundesliga, Ligue 1, and MLS.

Who uses it What they scrape ESPN for
Sports analysts Compare team performance across leagues for weekly reports.
Fantasy sports players Pull player rosters and schedules to optimize lineups.
Sports journalists Gather latest news and standings for articles.
Betting modelers Collect scores and schedules to feed prediction models.
App developers Integrate live sports data into dashboards or bots.

What it does

This Actor collects ESPN sports data by sport, data type, and optional team ID, and returns each record as a flat row.

  • ๐Ÿˆ Multiple sports: NFL, NBA, MLB, NHL, Premier League, La Liga, Serie A, Bundesliga, Ligue 1, MLS, or all leagues.
  • ๐Ÿ“Š Six data types: scoreboard, teams, standings, news, roster, and schedule.
  • ๐Ÿ” Team filter: Optional team ID to narrow results to a specific franchise.
  • โšก High volume: Collect up to 1,000,000 records per run.
  • ๐Ÿ“ฆ Flat output: Every record is a flat row, ready for CSV, JSON, Excel, or XML.

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

What you can do with ESPN data

๐Ÿ“ˆ Track league standings.

A sports analyst runs the Actor weekly for NFL and NBA standings to update a dashboard showing playoff races.

๐Ÿ† Build a fantasy cheat sheet.

A fantasy player pulls rosters and schedules for all NFL teams to identify undervalued players before draft day.

๐Ÿ“ฐ Monitor breaking sports news.

A journalist collects news for Premier League and La Liga to stay ahead of transfer rumors and injury reports.

๐Ÿ“Š Feed a betting model.

A data scientist gathers scores and schedules for MLB and NHL to train a model predicting game outcomes.

๐Ÿ“ฑ Power a sports app.

A developer uses the Actor to fetch live scores for multiple leagues and display them in a mobile app.

Why choose this scraper

What you get
No API key Access public ESPN data without registration or rate limits.
One schema All sports and data types return the same flat structure.
Flexible input Choose any league, data type, and team in one run.
Scalable Collect up to a million records per run.

How it compares

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

ESPN Sports Data Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When ESPN 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 sport, data type, and optional team ID, and filters run as each record is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "sport": "nfl",
  "dataType": "scoreboard"
}

A larger pull:

{
  "maxItems": 200,
  "sport": "nfl",
  "dataType": "scoreboard"
}

Pricing

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

Results collected Approximate cost
100 results $0.55
1,000 results $5.50
10,000 results $55.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 ESPN Sports Data 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 ESPN 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/espn-sports-scraper"

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

Troubleshooting

Why am I getting no results?

Check that the sport and data type are valid. If you provided a team ID, ensure it is correct for the selected sport. Also, verify that ESPN has data for that combination.

The run is slow or times out.

Reduce maxItems or narrow the filters. Scraping many records or all leagues can take longer. Try a specific sport or data type.

I get an error about invalid team ID.

Team IDs are numeric and sport-specific. Use the Teams data type to list teams and find the correct ID for your sport.

Data seems outdated.

The Actor scrapes live pages, so data is as current as ESPN's site. Run again to get the latest information.

Output has missing fields.

Different data types return different fields. Ensure you selected the correct dataType for the fields you need.

FAQ

Question Answer
Which sports does this Actor support? It supports NFL, NBA, MLB, NHL, Premier League, La Liga, Serie A, Bundesliga, Ligue 1, MLS, and an option for all leagues.
What data types can I scrape? You can scrape scoreboard, teams, standings, news, roster, and schedule data.
Do I need an ESPN API key? No, this Actor reads public ESPN pages directly, so no API key or authentication is required.
Can I filter by a specific team? Yes, provide a team ID in the input to get data for that team only. Team IDs are ESPN-specific, like 25 for the 49ers.
How many records can I collect per run? You can set maxItems up to 1,000,000 records per run.
What output formats are supported? You can export the dataset to CSV, JSON, Excel, or XML.
Is the data live? The Actor scrapes current public pages, so data reflects what ESPN shows at the time of the run.
Can I scrape multiple sports in one run? Yes, select 'All Leagues' in the sport input to scrape across all supported leagues.
How do I find a team ID? Team IDs are ESPN's internal identifiers. You can find them by browsing ESPN's team pages or using the Teams data type to list teams.
Does this Actor handle pagination? Yes, it automatically paginates through results up to the maxItems limit you set.

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 ESPN, Inc. 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
maxItems integer How many records to collect per run. 10
sport string (11 options) Select the sport or league to get data from. nfl
dataType string (6 options) What data to collect. scoreboard
teamId string Optional: Get data for a specific team by ESPN ID (e.g. 25 for 49ers). Only used with Teams data type. not set

Pricing

from $5.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.005 to $0.0055

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~espn-sports-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 ESPN Sports Data Scraper on Apify All scrapers