ESPN Rosters & Player Stats avatar

ESPN Rosters & Player Stats

Pricing

from $1.00 / 1,000 results

Go to Apify Store
ESPN Rosters & Player Stats

ESPN Rosters & Player Stats

Scrape team rosters and player career statistics from ESPN across 16 leagues and 5 sports. No account or proxy required.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(4)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

4

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

ESPN Rosters & Player Stats Scraper

Scrape team rosters and player career statistics from ESPN — no account or subscription required. Supports 16 leagues across 5 sports including the NBA, NFL, MLB, NHL, MLS, WNBA, NCAA basketball and football, Premier League, La Liga, Champions League, Bundesliga, Serie A, Ligue 1, and Liga MX.

What This Scraper Does

This actor fetches team rosters from ESPN's public JSON API and returns one flat record per player with bio fields (name, jersey, position, height, weight, date of birth, college, etc.). With Fetch Player Career Stats enabled, it also adds sport-specific career totals — points, rebounds, passing yards, goals, etc. Supports current and historical seasons.

Supported Leagues

CodeSportLeague
nbaBasketballNBA
wnbaBasketballWNBA
ncaamBasketballNCAA Men's
ncaawBasketballNCAA Women's
nflFootballNFL
ncaafFootballNCAA Football
mlbBaseballMLB
nhlHockeyNHL
mlsSoccerMajor League Soccer
eplSoccerEnglish Premier League
laligaSoccerLa Liga (Spain)
uclSoccerUEFA Champions League
bundesligaSoccerBundesliga (Germany)
serieaSoccerSerie A (Italy)
ligue1SoccerLigue 1 (France)
ligamxSoccerLiga MX (Mexico)

Input

FieldTypeDescription
LeaguesList of stringsLeague codes to scrape. Defaults to ["nba"].
TeamsList of strings (optional)Filter by team abbreviation (case-insensitive, e.g. "LAL") or ESPN numeric team ID (e.g. "13"). Omit for all teams.
SeasonInteger (optional)Year the season ends (e.g. 2026 for NBA 2025-26). Omit for current season.
Fetch Player Career StatsBooleanIf true, fetches career totals per player. Adds one API call per player (slow for large leagues). Default: false.
Max ItemsIntegerMaximum number of player records across all leagues (1–50,000). Default: 500.

Team Filter Examples

  • Just Lakers and Celtics: "teams": ["LAL", "BOS"]
  • By ID: "teams": ["13", "2"]
  • Mixed: "teams": ["LAL", "17"]
  • Unknown entries log a warning and are skipped.

Season Encoding

Use the ending year for cross-year seasons:

  • NBA 2025-26 → season: 2026
  • EPL 2025-26 → season: 2026
  • NFL 2025 → season: 2025
  • MLB 2025 → season: 2025

Historical support varies by sport. ESPN's public API typically returns the current roster even when a past season is requested; historical rosters are sparsely available for most leagues. Invalid or unavailable seasons are silently skipped (empty result, no error). If you need past-season rosters, verify availability on ESPN's website for your specific league + season before running.

Output

Each record represents one player. Fields marked ? are optional and appear only when ESPN returns data for them.

Core bio fields

FieldTypeDescription
leaguestringLeague code e.g. "nba"
sportstringe.g. "basketball"
seasoninteger?Season year (when provided)
teamIdstringESPN team ID
teamNamestringFull team name
teamAbbreviationstring?e.g. "LAL"
teamLogostring?Logo URL
playerIdstringESPN athlete ID
firstNamestring?
lastNamestring?
fullNamestring
displayNamestring?
shortNamestring?
jerseystring?
positionstring?e.g. "Small Forward"
positionAbbreviationstring?e.g. "SF"
heightinteger?Inches
displayHeightstring?e.g. "6' 9\""
weightinteger?Pounds
displayWeightstring?e.g. "250 lbs"
ageinteger?
dateOfBirthstring?ISO date
birthPlacestring?e.g. "Akron, Ohio"
debutYearinteger?First pro year
experienceinteger?Years in league
collegestring?For NBA/NFL/NCAA
headshotstring?Headshot URL
statusstring?e.g. "Active"
statsUrlstring?Link to ESPN stats page
scrapedAtstringISO 8601 UTC

Career stats fields (when Fetch Player Career Stats is enabled)

Sport-specific fields are added to the same record:

Basketball (NBA, WNBA, NCAAM/W): gamesPlayed, points, rebounds, assists, steals, blocks, fieldGoalPct, threePointPct, freeThrowPct, minutes, turnovers

Football (NFL, NCAAF): gamesPlayed, passingYards, passingTouchdowns, interceptions, passerRating, rushingYards, rushingTouchdowns, receptions, receivingYards, receivingTouchdowns, tackles, sacks

Baseball (MLB): gamesPlayed, battingAverage, homeRuns, rbis, hits, runs, stolenBases, era, wins, losses, strikeouts, inningsPitched

Hockey (NHL): gamesPlayed, goals, assists, points, plusMinus, penaltyMinutes, shotsOnGoal, savePct, goalsAgainstAverage

Soccer: appearances, goals, assists, minutesPlayed, yellowCards, redCards, shotsOnTarget, shots

Fields only appear when ESPN returns data — no nulls.

Error Records

If a league's team list or a team's roster fails to fetch, an error record is emitted:

FieldDescription
inputLeagueLeague code attempted
inputTeamTeam (if applicable)
inputSeasonSeason attempted
errorHuman-readable message
scrapedAtTimestamp

Frequently Asked Questions

Do I need an ESPN account? No. This scraper only uses ESPN's public JSON API.

Is a proxy required? No. ESPN's public API has no bot protection for typical use.

How do I get a single player? Use the Teams filter to narrow to the player's team, then filter the output by fullName in your downstream pipeline. ESPN doesn't have a public name-search endpoint, but rosters are small so this is fast.

Why is NCAA slow? NCAA basketball has 365 teams and NCAA football has 136. Pulling all rosters can return thousands of players. Use the Teams filter (e.g. ["DUKE", "KY"]) to narrow. With Fetch Player Career Stats enabled, each player adds one more API call — for NCAA, the Teams filter is strongly recommended.

Why are some stat fields missing? ESPN returns different stats per sport and per player role. For example, a defensive back won't have passingYards; a reliever may not have wins. Per the no-null rule, fields only appear when ESPN has data.

What's the difference between this actor and the other ESPN actors?

  • Scores & Schedules returns game-by-game data (final scores, schedules, leaders).
  • Standings returns team-level standings (W/L, rank, points).
  • Rosters & Player Stats returns player-level data (who is on each team + career stats).

Does ESPN return salary data? No. ESPN's public API does not expose salary information.

Can I combine multiple leagues in one run? Yes. Pass multiple codes in leagues, e.g. ["nba", "nfl", "mlb"]. Each record is tagged with its league.

How often is roster data updated? ESPN updates rosters in near real-time as transactions happen. Running the actor returns the latest state at fetch time.