ESPN APIespn.com ↗
Access ESPN data across 21+ leagues via 10 endpoints. Get live scores, standings, rosters, player stats, game logs, and news for NFL, NBA, MLB, NHL, soccer, and more.
What is the ESPN API?
The ESPN API covers 21+ sports leagues through 10 endpoints, returning live scores, standings, rosters, player stats, game logs, and news. The get_scoreboard endpoint delivers real-time event data including competitor records, venue, broadcast details, odds, and recaps. Athlete data is split across get_athlete_profile, get_athlete_overview, and get_athlete_gamelog, each targeting a distinct data layer — biographical, statistical, and game-by-game respectively.
curl -X POST 'https://api.parse.bot/scraper/1ed7c95b-0348-41fb-baa1-f5f0096b7da5/get_scoreboard' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"league": "nba",
"dates": "20261005",
"limit": "10"
}'Get live scores, final results, and upcoming fixtures for any supported league. Returns match details including scores, venues, broadcasts, leaders, odds, and recaps. Each event includes competitor details with team records, leaders, and broadcasting info. For soccer leagues, the matchday parameter filters by round/matchday number without needing specific dates.
| Param | Type | Description |
|---|---|---|
| dates | string | Date filter in YYYYMMDD format (e.g., 20260424). When omitted, returns current day's events. |
| limit | integer | Maximum number of events to return. |
| leaguerequired | string | League identifier. |
| matchday | integer | Matchday/round number (e.g., 1, 2, 38). Filters events to a specific matchday. Primarily useful for soccer leagues that organize fixtures by round. When omitted, no matchday filter is applied. |
{
"type": "object",
"fields": {
"date": "string or null, date of events",
"events": "array of event objects with id, name, date, status, venue, competitors, broadcasts, odds, headline, recap",
"league": "string, league display name",
"season": "object containing year, startDate, endDate, displayName, type",
"event_count": "integer, number of events returned"
}
}About the ESPN API
Coverage and League Support
The API covers NFL, NBA, MLB, NHL, college sports, European soccer leagues, UFC, Formula 1, and more. Every endpoint accepts a league identifier as a required parameter, making it straightforward to switch between sports without changing endpoint structure. The get_scoreboard endpoint accepts an optional dates parameter in YYYYMMDD format to pull historical or future fixtures, and a matchday parameter useful for soccer leagues that organize results by round.
Standings, Teams, and Rosters
get_standings returns conference and division breakdowns with per-team stats. Passing season_type=2 returns regular season standings; season_type=3 returns postseason data. get_teams returns all franchises in a league with IDs, colors, and logo URLs — useful for bootstrapping the team_id values required by get_team_roster and get_head_to_head. get_team_roster returns each athlete's biographical info (age, height, weight, birthplace, college), position, jersey number, and current injury status.
Athlete Data
get_athlete_overview aggregates season and career stats, fantasy projections (draft rank, percent owned, 7-day trends), expert RotoWire analysis, and recent news into a single response. get_athlete_gamelog provides a game-by-game breakdown with opponent, result, score, and the full stat line for that game — all labeled with sport-specific abbreviations. Stat label arrays (labels, display_names, names) are included in the response so field meaning is always explicit regardless of sport.
Head-to-Head and Search
get_head_to_head compiles a historical record between two teams by reading per-season schedules over a configurable window of up to 10 seasons. The response includes a calculated record object with wins, losses, home/away/neutral splits, and scoring averages. The search endpoint accepts a free-text query and an optional type filter (player or team), returning IDs and league metadata that feed directly into every other endpoint.
The ESPN API is a managed, monitored endpoint for espn.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when espn.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official espn.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display live NFL and NBA scoreboards with odds and broadcast info using
get_scoreboard - Build a standings tracker for European soccer leagues with division-level stats from
get_standings - Populate a player comparison tool with career and season stats from
get_athlete_overview - Power a fantasy sports dashboard using draft rank, percent owned, and projections from
get_athlete_overview - Render head-to-head matchup history between two college basketball teams using
get_head_to_head - Build a team roster page with injury flags and contract details from
get_team_roster - Aggregate league news feeds with metadata and images from
get_news
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ESPN have an official developer API?+
What does `get_scoreboard` return for soccer leagues versus American sports leagues?+
matchday parameter to filter by round number, which has no effect on sports that don't use that structure.Does `get_head_to_head` cover all historical seasons?+
seasons parameter accepts 1–10, so the window is capped at 10 recent seasons counting back from the season value you provide. The response includes a seasons_failed array listing any season years whose schedule data could not be fetched. Extended historical records beyond that window are not currently covered. You can fork this API on Parse and revise it to extend the season window or aggregate across longer timeframes.Are play-by-play or in-game event sequences available?+
Is fantasy data available for every league?+
fantasy object in get_athlete_overview — which includes draft rank, position rank, percent owned, and projections — may be absent for leagues that ESPN does not run a fantasy product for. The response will still return stats, news, awards, and RotoWire analysis for those athletes.