Scoreboard tracking
Use ESPN endpoints to turn scoreboard tracking into repeatable API requests with documented inputs and JSON responses.
Collect ESPN sports scores, teams, standings, rankings, rosters, athletes, game summaries, and news as normalized JSON for sports data workflows.
Extract public ESPN scoreboard, standings, rankings, team, roster, athlete, game-summary, and news data as structured JSON.
Endpoint families
6
Documented params
36
Examples
9
Live catalog snapshot
Active endpoints
9
Methods
GET
Required params
31
Schema refs
9
{
"platform": "ESPN",
"endpoint": "espn-scoreboard",
"method": "GET",
"path": "/espn/scoreboard",
"auth": "apiKey"
}Use cases
Extract public ESPN scoreboard, standings, rankings, team, roster, athlete, game-summary, and news data as structured JSON.
Use ESPN endpoints to turn scoreboard tracking into repeatable API requests with documented inputs and JSON responses.
Use ESPN endpoints to turn team and roster enrichment into repeatable API requests with documented inputs and JSON responses.
Use ESPN endpoints to turn sports news monitoring into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live ESPN endpoint catalog — 9 endpoints, 36 documented request parameters, and 9 published response schemas — the same catalog Docs and Playground run against.
9 documented ESPN endpoints, grouped into 9 request families — Athlete, Game Summary and News, plus 6 more.
36 request parameters are documented across those ESPN endpoints, 31 of them required — the full input contract is public before you write any integration code.
9 of the 9 ESPN endpoints ship a recorded example response, and 9 carry a documented response schema — you can code against the real JSON before the first request.
ESPN endpoints document their error responses (400, 404, 429 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
9 hosted MCP tools back the ESPN endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/espn/athlete
/espn/game-summary
/espn/news
/espn/rankings
/espn/scoreboard
/espn/standings
Endpoint catalog
/espn/scoreboardReturns games (scores, schedule, status, and odds when available) for a sport and league from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport. The `seasontype` enum accepts `1` (preseason), `2` (regular season), `3` (postseason), and `4` (offseason).
Response notes
- A valid date with no games returns an empty `games` array (not an error). - Each game includes `competitors` with team, `home_away`, `score`, and `winner`, plus normalized `odds` when the league provides them. - Invalid `sport`/`league`/`dates`/`seasontype` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "football", "league": "nfl", "league_name": "National Football League", "season": { "year": 2026, "type": 2, "name": "Regular Season" }, "count": 1, "source_url": "https://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard", "fetched_at": "2026-09-10T20:05:00Z", "games": [ { "id": "401700000", "date": "2026-09-10T20:00Z", "short_name": "KC @ BUF", "status": { "state": "pre", "detail": "Scheduled", "completed": false }, "venue": "Highmark Stadium", "competitors": [ { "team": { "id": "2", "abbreviation": "BUF", "display_name": "Buffalo Bills" }, "home_away": "home", "score": "0" }, { "team": { "id": "12", "abbreviation": "KC", "display_name": "Kansas City Chiefs" }, "home_away": "away", "score": "0" } ] } ] } } ```
MCP tool espn_scoreboard
/espn/game-summaryReturns one game's matchup, betting odds, and boxscore stat totals from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport. Get an `event` id from the scoreboard endpoint.
Response notes
- `game` normalizes the matchup (competitors, scores, status); `odds` lists provider lines; `boxscore_teams` carries each team's stat totals as a flat `stats` map. - `odds` and `boxscore_teams` may be empty for games/leagues that do not provide them. - A response missing game data is treated as an upstream error. - Invalid `sport`/`league`/`event` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "baseball", "league": "mlb", "event": "401816033", "source_url": "https://site.api.espn.com/apis/site/v2/sports/baseball/mlb/summary?event=401816033", "fetched_at": "2026-07-06T00:00:00Z", "game": { "id": "401816033", "status": { "state": "post", "detail": "Final", "completed": true }, "competitors": [ { "team": { "id": "15", "display_name": "Braves" }, "home_away": "home", "score": "9", "winner": true }, { "team": { "id": "22", "display_name": "Marlins" }, "home_away": "away", "score": "3" } ] }, "odds": [ { "provider": "ESPN BET", "details": "ATL -1.5", "over_under": 8.5, "spread": -1.5 } ], "boxscore_teams": [ { "team": { "id": "15", "display_name": "Braves" }, "home_away": "home", "stats": {} } ] } } ```
MCP tool espn_game_summary
/espn/standingsReturns league standings grouped by conference/division from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport. The `seasontype` enum accepts `1` (preseason), `2` (regular season), and `3` (postseason).
Response notes
- Standings are flattened from ESPN's nested tree into `groups`, each with `entries`; each entry carries a flat `stats` map (e.g. `wins`, `losses`, `winPercent`). - A response with no entries is treated as an upstream error (parser drift or block). - Invalid `sport`/`league`/`season`/`seasontype` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "football", "league": "nfl", "league_name": "National Football League", "season": { "year": 2024 }, "source_url": "https://site.api.espn.com/apis/v2/sports/football/nfl/standings?season=2024", "fetched_at": "2026-07-06T00:00:00Z", "groups": [ { "name": "American Football Conference", "abbreviation": "AFC", "entries": [ { "team": { "id": "12", "display_name": "Kansas City Chiefs" }, "stats": { "wins": "15", "losses": "2" } } ] } ] } } ```
MCP tool espn_standings
/espn/rankingsReturns poll rankings (e.g. AP Top 25) for a college league from ESPN's credential-free public JSON. Rankings are only published for college leagues: the `sport` enum accepts `football` and `basketball`, and the `league` enum accepts `college-football`, `mens-college-basketball`, and `womens-college-basketball`.
Response notes
- Non-college leagues (e.g. `nfl`, `nba`) return an invalid-parameter error — rankings are not published for them. - An empty poll list is treated as an upstream error (parser drift or block). - Invalid `sport`/`league` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "football", "league": "college-football", "season": { "year": 2024 }, "source_url": "https://site.api.espn.com/apis/site/v2/sports/football/college-football/rankings", "fetched_at": "2026-07-06T00:00:00Z", "polls": [ { "name": "AP Top 25", "short_name": "AP Poll", "ranks": [ { "current": 1, "previous": 1, "points": 1650, "trend": "-", "record": "16-0", "team": { "id": "194", "abbreviation": "OSU", "name": "Buckeyes" } } ] } ] } } ```
MCP tool espn_rankings
/espn/teamsReturns the full team list for a sport and league from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.
Response notes
- An empty or missing team list is treated as an upstream error (parser drift or block), not a `200` with zero teams. - Invalid `sport`/`league` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "basketball", "league": "nba", "count": 30, "source_url": "https://site.api.espn.com/apis/site/v2/sports/basketball/nba/teams", "fetched_at": "2026-07-06T00:00:00Z", "teams": [ { "id": "1", "abbreviation": "ATL", "display_name": "Atlanta Hawks", "location": "Atlanta", "logo": "https://a.espncdn.com/i/teamlogos/nba/500/atl.png" } ] } } ```
MCP tool espn_teams
/espn/teamReturns one team's detail (identity, colors, record, standing summary) from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.
Response notes
- A response missing team identity is treated as an upstream error. - Invalid `sport`/`league`/`team` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "football", "league": "nfl", "source_url": "https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/KC", "fetched_at": "2026-07-06T00:00:00Z", "team": { "id": "12", "abbreviation": "KC", "display_name": "Kansas City Chiefs", "location": "Kansas City", "record": "14-3", "standing_summary": "1st in AFC West" } } } ```
MCP tool espn_team
/espn/team-rosterReturns a team's roster (players with position, jersey, age, and experience) plus head coach from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.
Response notes
- Both roster shapes are normalized: flat player lists and position-grouped lists both flatten to `athletes`. - An empty roster is treated as an upstream error (parser drift or block). - Invalid `sport`/`league`/`team` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "football", "league": "nfl", "team": { "id": "12", "abbreviation": "KC", "display_name": "Kansas City Chiefs" }, "coach": "Andy Reid", "count": 1, "source_url": "https://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/KC/roster", "fetched_at": "2026-07-06T00:00:00Z", "athletes": [ { "id": "3139477", "full_name": "Patrick Mahomes", "jersey": "15", "position": "QB", "age": 30, "display_height": "6' 3\"", "experience_years": 9 } ] } } ```
MCP tool espn_team_roster
/espn/athleteReturns one athlete's bio/overview (name, position, jersey, physicals, current team) from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.
Response notes
- A response missing athlete identity is treated as an upstream error. - Invalid `sport`/`league`/`athlete` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "football", "league": "nfl", "source_url": "https://site.web.api.espn.com/apis/common/v3/sports/football/nfl/athletes/3139477", "fetched_at": "2026-07-06T00:00:00Z", "athlete": { "id": "3139477", "full_name": "Patrick Mahomes", "display_name": "Patrick Mahomes", "jersey": "15", "position": "QB", "age": 30, "display_height": "6' 3\"", "display_weight": "225 lbs", "headshot": "https://a.espncdn.com/i/headshots/nfl/players/full/3139477.png", "team": { "id": "12", "display_name": "Kansas City Chiefs" } } } } ```
MCP tool espn_athlete
/espn/newsReturns recent news articles (headline, description, link) for a league from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.
Response notes
- An empty article list is treated as an upstream error (parser drift or block). - Invalid `sport`/`league` values return an invalid-parameter error before upstream IO. Example response: ```json { "code": 200, "msg": "OK", "data": { "sport": "basketball", "league": "nba", "count": 1, "source_url": "https://site.api.espn.com/apis/site/v2/sports/basketball/nba/news", "fetched_at": "2026-07-06T00:00:00Z", "articles": [ { "headline": "Recap: Home team wins", "description": "A summary of the game.", "published": "2026-07-05T04:00:00Z", "type": "Recap", "link": "https://www.espn.com/nba/story/_/id/000000/recap" } ] } } ```
MCP tool espn_news
Related APIs
Media & Streaming
Research streaming catalogs, title availability, providers, offers, seasons, episodes, and release changes from JustWatch with normalized JSON.
Media & Streaming
Turn Apple Books ebook and audiobook pages into structured data — search, catalog detail, paginated customer reviews, similar titles, author bibliographies, series listings, and chart rankings as normalized JSON. Credential-free.
Media & Streaming
Search public Ticketmaster events and browse the full discovery hierarchy by category or city, with pagination plus event, attraction, and venue detail endpoints -- including fan reviews, related attractions, trending attractions, and enhanced venue branding -- for live-entertainment research.
How to scrape ESPN
ESPN retired its public developer API and offers no supported replacement, but its apps still run on credential-free public JSON. Crawlora's 9 ESPN endpoints return scoreboards, game summaries, standings, poll rankings, teams, rosters, athletes, and league news across five sports as normalized JSON.
Every endpoint takes a sport — football, basketball, baseball, hockey, or soccer — and a league that must be valid for it, such as nfl, nba, mlb, nhl, or eng.1.
The scoreboard endpoint returns games with scores, schedule, status, and odds when available, narrowed by dates, week, and season type.
Game summary takes an event id; team detail and roster take a team; the teams endpoint lists what is available for that league.
Standings take a season and season type, poll rankings cover college football and college basketball, and the news endpoint returns league headlines.
FAQ
Not any more. ESPN retired its public developer API and offers no supported replacement for third parties. Its apps are backed by credential-free public JSON, which is what Crawlora's ESPN endpoints read and normalize.
The sport enum accepts football, basketball, baseball, hockey, and soccer. The league enum accepts nfl, college-football, nba, wnba, mens-college-basketball, womens-college-basketball, mlb, nhl, and the soccer leagues eng.1, esp.1, ita.1, ger.1, fra.1, usa.1, and uefa.champions — and the league must be valid for the sport you pass.
1 is preseason, 2 is regular season, 3 is postseason, and 4 is offseason. The scoreboard endpoint accepts all four; standings accepts 1, 2, and 3.
Yes. The scoreboard endpoint returns current games with score and status for a sport and league, and the game-summary endpoint expands any one of them by event id.