ESPN's hidden API endpoints
Latest News: http://site.api.espn.com/apis/site/v2/sports/football/college-football/news
Latest Scores: http://site.api.espn.com/apis/site/v2/sports/football/college-football/scoreboard
-
query params:
- calendar: 'blacklist'
- dates: any date in YYYYMMDD
Game Information: http://site.api.espn.com/apis/site/v2/sports/football/college-football/summary?event=:gameId
-
params:
- gameId: identifier of some game (EX: 400934572 for 2017 Army vs Navy)
Team Information: http://site.api.espn.com/apis/site/v2/sports/football/college-football/teams/:team
-
params:
- team: some team abbreviation (EX: 'all' for Allegheny, 'gt' for Georgia Tech, 'wisconsin' for Wisconsin)
Rankings: http://site.api.espn.com/apis/site/v2/sports/football/college-football/rankings
Scores: http://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard
News: http://site.api.espn.com/apis/site/v2/sports/football/nfl/news
All Teams: http://site.api.espn.com/apis/site/v2/sports/football/nfl/teams
Specific Team: http://site.api.espn.com/apis/site/v2/sports/football/nfl/teams/:team
Scores: http://site.api.espn.com/apis/site/v2/sports/baseball/mlb/scoreboard
News: http://site.api.espn.com/apis/site/v2/sports/baseball/mlb/news
All Teams: http://site.api.espn.com/apis/site/v2/sports/baseball/mlb/teams
Specific Team: http://site.api.espn.com/apis/site/v2/sports/baseball/mlb/teams/:team
Scores: https://site.api.espn.com/apis/site/v2/sports/baseball/college-baseball/scoreboard
Scores: http://site.api.espn.com/apis/site/v2/sports/hockey/nhl/scoreboard
News: http://site.api.espn.com/apis/site/v2/sports/hockey/nhl/news
All Teams: http://site.api.espn.com/apis/site/v2/sports/hockey/nhl/teams
Specific Team: http://site.api.espn.com/apis/site/v2/sports/hockey/nhl/teams/:team
Scores: http://site.api.espn.com/apis/site/v2/sports/basketball/nba/scoreboard
News: http://site.api.espn.com/apis/site/v2/sports/basketball/nba/news
All Teams: http://site.api.espn.com/apis/site/v2/sports/basketball/nba/teams
Specific Team: http://site.api.espn.com/apis/site/v2/sports/basketball/nba/teams/:team
Scores: http://site.api.espn.com/apis/site/v2/sports/basketball/wnba/scoreboard
News: http://site.api.espn.com/apis/site/v2/sports/basketball/wnba/news
All Teams: http://site.api.espn.com/apis/site/v2/sports/basketball/wnba/teams
Specific Team: http://site.api.espn.com/apis/site/v2/sports/basketball/wnba/teams/:team
Scores: http://site.api.espn.com/apis/site/v2/sports/basketball/womens-college-basketball/scoreboard
News: http://site.api.espn.com/apis/site/v2/sports/basketball/womens-college-basketball/news
All Teams: http://site.api.espn.com/apis/site/v2/sports/basketball/womens-college-basketball/teams
Specific Team: http://site.api.espn.com/apis/site/v2/sports/basketball/womens-college-basketball/teams/:team
Scores: http://site.api.espn.com/apis/site/v2/sports/basketball/mens-college-basketball/scoreboard
News: http://site.api.espn.com/apis/site/v2/sports/basketball/mens-college-basketball/news
All Teams: http://site.api.espn.com/apis/site/v2/sports/basketball/mens-college-basketball/teams
Specific Team: http://site.api.espn.com/apis/site/v2/sports/basketball/mens-college-basketball/teams/:team
Scores: http://site.api.espn.com/apis/site/v2/sports/soccer/:league/scoreboard
-
params:
- league: some league abbreviation (EX: 'eng.1' for EPL, 'usa.1' for MLS)
Latest News: http://site.api.espn.com/apis/site/v2/sports/soccer/:league/news
List of Team Information: http://site.api.espn.com/apis/site/v2/sports/soccer/:league/teams
Will update with more information as I find more...
To respond to some questions above, first, I have found nothing for statistics by period, and I've looked.
As far as combining forces to avoid overuse, I'm not sure how much the general public uses this. They are so aggressive with their throttling, that I anyone who tries to access the API more than a couple of hundred times a day would not have much luck. For example, while you can get individual player stats, for the NFL for example, you wouldn't be able to update the stats of every skill player weekly before getting errors. You'd be better off running an event API call for each game & updating player stats on your own database.
Also, as I posted a couple of years back, ESPN.com is essentially a web app running in your browser (why it's soooo slow) that accesses the API to load the data onto a requested page, the list of current or past scores, a box score, a player's stats, etc. So, literally everyone who uses the site is using this API. The site just thinks I'm a fast clicker, in fact, the speed of the site is the most effective throttler for the general public. Otherwise, I don't have the money lying around to pay for some AWS BS.
As far as real time scores are concerned, the scoreboard calls are pretty current, such as for the NFL, http://site.api.espn.com/apis/site/v2/sports/football/nfl/scoreboard , which works nicely. If you have Python installed and are OK with using the command line, I have 6 sports now included in my project at https://github.com/ITIRadio/ESPN-API . In-progress scores are included. If you scroll back a little bit in these comments, another poster uses these scoreboard endpoints to copy over updated scores to a site at https://bigearthweb.net/sports/ .