You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Disclaimer: This is documentation for ESPN's undocumented public API. I am not affiliated with ESPN. Use responsibly and follow ESPN's terms of service.
β Support This Project
If this documentation has saved you time, consider supporting ongoing development and maintenance:
ESPN provides undocumented APIs that power their website and mobile apps. These endpoints return JSON data for scores, teams, players, statistics, and more across all major sports.
Coverage: 17 sports Β· 139 leagues Β· 370 v2 endpoints Β· 79 v3 endpoints (Mapped from the ESPN WADL at sports.core.api.espn.com/v2/application.wadl and sports.core.api.espn.com/v3/application.wadl)
Unofficial: These APIs are not officially supported and may change without notice
No Authentication Required: Most endpoints are publicly accessible
Rate Limiting: Be respectful β no official limits published, but excessive requests may be blocked
Best Practice: Implement caching and error handling in your applications
Base URLs
Domain
Version
Purpose
site.api.espn.com
v2/v3
Scores, news, teams, standings (site-facing)
sports.core.api.espn.com
v2
Athletes, stats, odds, play-by-play, detailed data
sports.core.api.espn.com
v3
Athletes, leaders (richer schema)
site.web.api.espn.com
v3
Search, athlete profiles
cdn.espn.com
β
CDN-optimized live data
fantasy.espn.com
v3
Fantasy sports leagues
now.core.api.espn.com
β
Real-time news feeds
Quick Start
# NFL Scoreboard
curl "https://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard"# NBA Teams
curl "https://site.api.espn.com/apis/site/v2/sports/basketball/nba/teams"# MLB Scores for a Specific Date
curl "https://site.api.espn.com/apis/site/v2/sports/baseball/mlb/scoreboard?dates=20241215"# NHL Standings β NOTE: use /apis/v2/ (not /apis/site/v2/ which returns a stub)
curl "https://site.api.espn.com/apis/v2/sports/hockey/nhl/standings"
Sports Coverage
Each sport has its own detailed endpoint reference document:
GET https://cdn.espn.com/core/{sport}/{resource}?xhr=1
Endpoint
Description
/{sport}/scoreboard?xhr=1
CDN-optimized live scoreboard
/{sport}/scoreboard?xhr=1&league={league}
Soccer scoreboard (league slug required, e.g. eng.1)
/{sport}/game?xhr=1&gameId={id}
Full game package β drives, plays, win probability, boxscore, odds
/{sport}/boxscore?xhr=1&gameId={id}
Boxscore only
/{sport}/playbyplay?xhr=1&gameId={id}
Play-by-play only
Note: CDN endpoints return JSON when xhr=1 is passed. The gamepackageJSON key holds the full game data object.
Now API (Real-Time News)
GET https://now.core.api.espn.com/v1/sports/news
Endpoint
Description
/v1/sports/news?limit={n}
Global real-time news feed
/v1/sports/news?sport={sport}&limit={n}
Sport-filtered news
/v1/sports/news?leagues={league}&limit={n}
League-filtered news
/v1/sports/news?team={abbrev}&limit={n}
Team-filtered news
Common League Slugs
π Football (sport: football)
League
Slug
NFL
nfl
College Football
college-football
CFL
cfl
UFL
ufl
XFL
xfl
π Basketball (sport: basketball)
League
Slug
NBA
nba
WNBA
wnba
NBA G League
nba-development
NCAA Men's
mens-college-basketball
NCAA Women's
womens-college-basketball
NBL
nbl
FIBA World Cup
fiba
βΎ Baseball (sport: baseball)
League
Slug
MLB
mlb
NCAA Baseball
college-baseball
World Baseball Classic
world-baseball-classic
Dominican Winter League
dominican-winter-league
π Hockey (sport: hockey)
League
Slug
NHL
nhl
NCAA Men's
mens-college-hockey
NCAA Women's
womens-college-hockey
β½ Soccer (sport: soccer)
League
Slug
FIFA World Cup
fifa.world
UEFA Champions League
uefa.champions
English Premier League
eng.1
Spanish LALIGA
esp.1
German Bundesliga
ger.1
Italian Serie A
ita.1
French Ligue 1
fra.1
MLS
usa.1
Liga MX
mex.1
NWSL
usa.nwsl
UEFA Europa League
uefa.europa
FIFA Women's World Cup
fifa.wwc
β³ Golf (sport: golf)
Tour
Slug
PGA TOUR
pga
LPGA
lpga
DP World Tour
eur
LIV Golf
liv
PGA TOUR Champions
champions-tour
Korn Ferry Tour
ntw
ποΈ Racing (sport: racing)
Series
Slug
Formula 1
f1
IndyCar
irl
NASCAR Cup
nascar-premier
NASCAR Xfinity
nascar-secondary
NASCAR Truck
nascar-truck
πΎ Tennis (sport: tennis)
Tour
Slug
ATP
atp
WTA
wta
Fantasy Sports API
Base URL: https://fantasy.espn.com/apis/v3/games/{sport}/seasons/{year}
Game Codes
Sport
Code
Football
ffl
Basketball
fba
Baseball
flb
Hockey
fhl
League Endpoints
# Get league data (public leagues)
GET /apis/v3/games/ffl/seasons/2024/segments/0/leagues/{league_id}
# With views?view=mTeam
?view=mRoster
?view=mMatchup
?view=mMatchupScore
?view=mSettings
?view=mDraftDetail
?view=mScoreboard
?view=mStandings
?view=mStatus
?view=kona_player_info
# Ingest news for a single league
python manage.py ingest_news --sport basketball --league nba
# Ingest news for all configured leagues
python manage.py ingest_news
# Refresh injury report for a league
python manage.py ingest_injuries --sport football --league nfl
# Ingest transactions
python manage.py ingest_transactions --sport basketball --league nba
# Ingest all teams (all configured leagues)
python manage.py ingest_all_teams
Docker Testing
cd espn_service
# Build and run full test suite
docker compose -f docker-compose.test.yml run --rm test# Run a specific test file
docker compose -f docker-compose.test.yml run --rm test \
python -m pytest tests/test_ingestion_new.py -v --no-cov
Example Usage
# Ingest NBA teams
curl -X POST http://localhost:8000/api/v1/ingest/teams/ \
-H "Content-Type: application/json" \
-d '{"sport": "basketball", "league": "nba"}'# Ingest NFL injury report
curl -X POST http://localhost:8000/api/v1/ingest/injuries/ \
-H "Content-Type: application/json" \
-d '{"sport": "football", "league": "nfl"}'# Ingest NBA news (last 25 articles)
curl -X POST http://localhost:8000/api/v1/ingest/news/ \
-H "Content-Type: application/json" \
-d '{"sport": "basketball", "league": "nba", "limit": 25}'# Query injuries by status
curl "http://localhost:8000/api/v1/injuries/?league=nfl&status=out"# Query latest NBA news
curl "http://localhost:8000/api/v1/news/?league=nba&date_from=2024-01-01"# Query events
curl "http://localhost:8000/api/v1/events/?league=nfl&date=2024-12-15"
These endpoints are available but not part of the standard sport-scoped pattern:
π QBR (Quarterback Rating)
# Season QBR by conference
GET https://sports.core.api.espn.com/v2/sports/football/leagues/nfl/seasons/{year}/types/{type}/groups/{group}/qbr/{split}
# Weekly QBR
GET https://sports.core.api.espn.com/v2/sports/football/leagues/nfl/seasons/{year}/types/{type}/weeks/{week}/qbr/{split}
split values: 0 = totals, 1 = home, 2 = away
π Bracketology (NCAA Tournament)
# Live bracket projections
GET https://sports.core.api.espn.com/v2/tournament/{tournamentId}/seasons/{year}/bracketology
# Snapshot at a specific iteration
GET https://sports.core.api.espn.com/v2/tournament/{tournamentId}/seasons/{year}/bracketology/{iteration}
π Power Index (BPI / SP+)
# Season-level
GET https://sports.core.api.espn.com/v2/sports/{sport}/leagues/{league}/seasons/{year}/powerindex
# Leaders
GET https://sports.core.api.espn.com/v2/sports/{sport}/leagues/{league}/seasons/{year}/powerindex/leaders
# By team
GET https://sports.core.api.espn.com/v2/sports/{sport}/leagues/{league}/seasons/{year}/powerindex/{teamId}
π Recruiting (College Sports)
# Recruit rankings by year
GET https://sports.core.api.espn.com/v2/sports/football/leagues/college-football/seasons/{year}/recruits
# Recruiting class by team
GET https://sports.core.api.espn.com/v2/sports/football/leagues/college-football/seasons/{year}/classes/{teamId}
π Coaches
# All coaches for a season
GET https://sports.core.api.espn.com/v2/sports/{sport}/leagues/{league}/seasons/{year}/coaches
# Individual coach
GET https://sports.core.api.espn.com/v2/sports/{sport}/leagues/{league}/coaches/{coachId}
# Coach career record by type
GET https://sports.core.api.espn.com/v2/sports/{sport}/leagues/{league}/coaches/{coachId}/record/{type}
Contributing
Found a new endpoint? Please open an issue or PR!
License
MIT License β See LICENSE file
Last Updated: March 2026 Β· 17 sports Β· 139 leagues Β· 370 v2 + 79 v3 endpoints Β· 6 API domains
About
The Public ESPN API documentation provides a complete list of undocumented API endpoints, URL parameters, and JSON response formats across 20+ sports (NFL, NBA, MLB, NHL). Includes live curl examples, routing guides, and a Django REST API service for live scores, standings, and news. Optimized for search, developers, AI, and LLMs.