ESPN Sports Stats Scraper: Scores, Box Scores, Standings avatar

ESPN Sports Stats Scraper: Scores, Box Scores, Standings

Pricing

from $0.50 / 1,000 rows

Go to Apify Store
ESPN Sports Stats Scraper: Scores, Box Scores, Standings

ESPN Sports Stats Scraper: Scores, Box Scores, Standings

Every major ESPN league in one actor: scoreboards, full box scores with one row per player stat line, schedules, standings, rosters and career player stats for NFL, NBA, MLB, NHL, WNBA, college, soccer, UFC, PGA and F1.

Pricing

from $0.50 / 1,000 rows

Rating

0.0

(0)

Developer

Chris Lucas

Chris Lucas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

ESPN Sports Stats Scraper: scores, box scores, standings, rosters, player stats

Pulls data from ESPN's public JSON endpoints for NFL, NBA, MLB, NHL, WNBA, college football and basketball, the big soccer leagues, UFC, PGA and F1, all in one actor. No ESPN account or API key. Output is flat JSON rows with a type field, ready for a spreadsheet, a database or a model.

What you get

typeModeOne row per
gamescoreboard, teamSchedulegame (UFC: bout, F1: session): teams, scores, records, status, venue, broadcast, odds, leaders
gameDetailgameDetailsgame: line scores, team box-score stats, attendance, officials, odds, win probability
playerStatLinegameDetails, playerStatsplayer per stat group in a game, or player per season (plus a Career row)
standingstandingsteam in a league table, with every ESPN stat column
rosterPlayerrosterplayer on a team: jersey, position, age, height, weight, college, status, injuries

Box scores differ per sport and the actor keeps each sport's own columns: NBA (MIN, PTS, FG, 3PT, REB, AST ...), NFL (passing, rushing, receiving, defensive, kicking ... as separate statGroup rows), MLB (batting, pitching), NHL (forwards, defenses, goalies), soccer (appearances, shots, saves ...). Numbers are returned as numbers; ratios like 11-18 stay strings.

Input

FieldMeaningExample
modescoreboard (default), gameDetails, teamSchedule, standings, roster, playerStatsscoreboard
leaguesKeys or names: nfl, nba, mlb, nhl, wnba, college-football (ncaaf), mens-college-basketball (ncaab), eng.1 (epl), usa.1 (mls), esp.1 (laliga), ger.1, ita.1, fra.1, uefa.champions (ucl), ufc, pga, f1["nfl","nba","mlb"]
dateFrom, dateToYYYY-MM-DD, default yesterday to today, 31 days at most2026-10-27
eventIdsgameDetails: ESPN game IDs (nba:401909881 pins the league). Empty = every finished or live game in the date range["401909881"]
teamIds, teamNamesteamSchedule / roster. Roster with neither returns the whole league["Lakers"]
athleteIds, athleteNamesplayerStats["LeBron James"]
seasonESPN season year = the year the season ends (2026-27 NBA is 2027)2027
maxItemsHard cap on rows, default 500500
{"mode":"scoreboard","leagues":["nfl","nba","mlb"],"dateFrom":"2026-10-27","dateTo":"2026-10-29","maxItems":100}

Output example (game)

{"type":"game","league":"nba","sport":"basketball","season":2027,"seasonType":"regular-season","eventId":"401909877","date":"2026-10-27T23:30Z","name":"Brooklyn Nets at Boston Celtics","status":"Final","statusState":"post","completed":true,"homeName":"Boston Celtics","homeAbbrev":"BOS","homeScore":125,"homeRecord":"3-1","awayName":"Brooklyn Nets","awayAbbrev":"BKN","awayScore":124,"awayRecord":"0-4","winner":"Boston Celtics","venue":"TD Garden","city":"Boston","broadcast":"NBA League Pass, DAZN (YES)","oddsDetails":null,"spread":null,"overUnder":null,"leaders":[{"category":"points","team":"BOS","athlete":"Jayson Tatum","value":"40"}],"url":"https://www.espn.com/nba/game/_/gameId/401909877/nets-celtics","scrapedAt":"2026-10-31T01:44:00Z"}

Output example (playerStatLine, from a box score)

{"type":"playerStatLine","league":"nba","eventId":"401909881","date":"2026-10-28T23:00Z","team":"Miami Heat","teamAbbrev":"MIA","athleteId":"3032977","player":"Giannis Antetokounmpo","position":"F","starter":true,"statGroup":"","stats":{"MIN":31,"PTS":24,"FG":"11-18","3PT":"0-2","FT":"2-5","REB":18,"AST":3,"TO":2,"STL":1,"BLK":1},"url":"https://www.espn.com/nba/game/_/gameId/401909881","scrapedAt":"2026-10-31T01:46:00Z"}

Pricing (pay per event)

EventPriceApplies to
row$0.0005each game, playerStatLine, standing and rosterPlayer row
game-detail$0.002each gameDetail summary row

Examples: a 3-day NFL + NBA + MLB scoreboard (about 22 games) costs about $0.011. 1,000 scoreboard rows cost $0.50. One NBA box score (1 summary + about 19 player lines) costs about $0.0115. All 30 NBA standings rows cost $0.015. There is no start fee beyond Apify's platform usage. Runs never charge for failures or empty results, and maxItems caps spend.

Use cases

Betting-model and fantasy data feeds, daily results digests, player-vs-player research, box-score datasets for training, standings and schedule widgets, sports newsletters.

FAQ

Is it live? Scoreboards and box scores refresh as ESPN updates them; in-progress games return their current score and status. Why one request per day? ESPN's scoreboard currently rejects date ranges, so the actor fetches each day separately. Up to 31 days per run. Which season do I pass? The year the season ends. NFL 2026 = 2026, NBA 2026-27 = 2027. Do I need a proxy? The endpoints are open. The default Apify datacenter proxy works; no residential proxy is used or needed. Other leagues? Pass any ESPN sport/league path, e.g. hockey/nhl or soccer/ger.1. Common leagues are verified; others use the same endpoints.

Limits

  • Data comes from ESPN's public site API, which is undocumented and can change without notice.
  • Golf and F1 rows keep the top 10 competitors per event; they have no home/away fields. UFC and F1 produce one row per bout or session.
  • Odds are present when ESPN publishes them (mostly before and during games); box-score odds are the closing line.
  • NFL box scores omit player positions in ESPN's response, so position is null there.
  • Not affiliated with ESPN or The Walt Disney Company. Use the data in line with ESPN's terms.