ESPN Sports Data Scraper: Scores, Boxscores, Gamelogs & Odds
Pricing
from $2.00 / 1,000 results
ESPN Sports Data Scraper: Scores, Boxscores, Gamelogs & Odds
Extract ESPN sports data in bulk from its public API: live and historical scores, boxscores, odds, standings, schedules, rosters and player gamelogs, 17 leagues. Flat CSV, Excel and pandas output, no API key. Run via API, schedule runs, or integrate with other tools and AI workflows.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
MrBridge
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
ESPN Sports Data Scraper
Extract sports data from ESPN in bulk: full-season scores, boxscores, play-by-play, betting odds, standings, schedules, rosters, athletes and multi-season player gamelogs. Output is flat, snake_case and ready for pandas, Excel or Kaggle. It reads ESPN's public JSON API directly (no HTML parsing, no browser), so it is fast and needs no API key.
This is the batch companion to the interactive ESPN MCP Server. Use the MCP server for real-time, on-demand questions from an AI agent; use this Actor to pull whole seasons into a dataset for analysis.
What you can do with it
- Pull complete seasons of scores in one run: by default the season type is All (preseason + regular season + playoffs), or narrow it to a single type.
- Build Kaggle-ready CSV/Excel datasets with no post-processing.
- Collect multi-season player gamelogs for modeling.
- Get full boxscores, play-by-play and odds per game for betting research.
- Snapshot standings, rosters and schedules for dashboards.
Supported leagues (v1)
NFL, NCAA Football (FBS), NBA, WNBA, NCAA Men's and Women's Basketball, MLB, NHL, and soccer: Premier League, La Liga, Serie A, Bundesliga, Ligue 1, MLS, UEFA Champions League, UEFA Europa League, FIFA World Cup.
Every league is served by the same ESPN endpoints, so the core data types work the same way across them. The differences are structural, by sport:
| Data types | Leagues | Notes |
|---|---|---|
| scoreboard, gameSummary, playByPlay, playerBoxscore, schedule, teams, standings, roster, athletes, athleteGamelog, news | NBA, WNBA, NFL, MLB, NHL, NCAA (football, men's and women's basketball) | Full support. Validated end-to-end on NBA. |
| scoreboard, gameSummary, playByPlay, schedule, teams, standings, news | Soccer leagues (Premier League, La Liga, Serie A, Bundesliga, Ligue 1, MLS) | No US-style per-player roster/gamelog/boxscore. |
| scoreboard, gameSummary, schedule, teams, news | Cup competitions (UEFA Champions/Europa League, FIFA World Cup) | No conventional season standings. |
An unsupported (league, data type) combination returns a clear informational item, never a crash.
Data types
| Data type | One row is | Key inputs |
|---|---|---|
scoreboard | a game (scores, teams, status, venue, margin) | league + date range or seasons |
gameSummary | a game's team boxscore | eventIds or chained from scoreboard |
playByPlay | a single play | eventIds or chained |
playerBoxscore | a player in a game | eventIds or chained |
schedule | a scheduled game | league + teamIds + season |
teams | a team | league |
standings | a team's standings row | league + seasons |
roster | a roster player | league + teamIds |
athletes | an athlete | league |
athleteGamelog | a player's game in a season | league + athleteIds + seasons |
news | a news article (metadata + link) | league |
Example input
Full NBA 2025 season, all game types (the default: preseason + regular + playoffs):
{"dataType": "scoreboard","league": "nba","seasons": ["2025"]}
Narrow it to the regular season only:
{"dataType": "scoreboard","league": "nba","seasons": ["2025"],"seasonType": "2"}
Full play-by-play for three games:
{"dataType": "playByPlay","league": "nba","eventIds": ["401585601", "401585602", "401585603"]}
Every 2023 to 2025 season gamelog for a player (seasons discovered automatically):
{"dataType": "athleteGamelog","league": "nba","athleteIds": ["4065648"],"allSeasons": true}
Example output (flat)
{"_type": "scoreboard","league": "nba","season": 2025,"season_type": 2,"game_id": "401585601","date_utc": "2025-04-13T23:00Z","status": "post","completed": true,"home_team_abbrev": "BOS","home_score": 120,"away_team_abbrev": "MIA","away_score": 111,"margin": 9,"total_points": 231,"venue_name": "TD Garden","scraped_at": "2026-07-11T09:00:00.000Z"}
Need real-time interactive access?
For live, on-demand queries from an AI agent (Claude, ChatGPT, and other MCP clients), use the ESPN MCP Server. It exposes the same ESPN data as tools with no caching, ideal for single-question lookups. This Actor is the opposite end: bulk and historical extraction into a dataset.
Pricing
This Actor uses pay-per-event pricing with a single flat price per delivered result, shown on the Pricing tab and billed only on successfully delivered data. A result is one row (a game, team, standings row, roster player, athlete or news article), one game's full detail, or one athlete-season gamelog.
- Error rows and failed runs are never charged.
- One athlete-season gamelog is a single charge even though it produces many game rows.
- A game's detail is charged at most once per game, even when you pull its summary, play-by-play and player boxscore together.
To cap cost, set maxChargedEvents in the input, or set ACTOR_MAX_TOTAL_CHARGE_USD per run from the Console. Note that maxItems caps dataset rows, not cost.
FAQ
Do I need an ESPN API key? No. The data comes from ESPN's public JSON endpoints.
Are there rate limits? The Actor paces itself (bounded concurrency, backoff, aggressive caching of finished data) to stay a good citizen of ESPN's endpoints.
Very large multi-season pulls? Rows are pushed incrementally, so a run that hits its timeout keeps everything gathered so far. For very large jobs, raise the run timeout or split into per-season runs.
Where are the run totals? Each run writes an OUTPUT record to its default key-value store with the totals (rows pushed, events charged, error rows) and finish time, so an integration can check a run without scanning the dataset.
About
Built by mrbridge. Explore the wider catalogue of data and automation tools at mr-bridge.com/scrapers, and the model context protocol servers at mr-bridge.com/mcp-servers.
Feedback and issues
Found a bug, or want a league or data type added? Your feedback shapes the roadmap: open an issue on the Issues tab.
Is it legal to scrape ESPN data?
This Actor extracts publicly available data for research and analytics. Respect ESPN's terms of use and applicable laws when using the data. ESPN is a trademark of its owner and is not affiliated with this Actor.