ESPN API: Get game summary
Finds the latest game between two teams, or their game on a given date, in major US leagues, MLS or the EPL. Returns the score, scoring by period, leading players, team stats and player box scores.
Unofficial. Not affiliated with or endorsed by ESPN.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Date optional
date Game date, for example 2026-02-22. If omitted, find the most recent game.
Not set
- League optional
league League if team names are ambiguous, for example NBA (NBA, WNBA, NFL, MLB, NHL, NCAAF, NCAAM, NCAAW, MLS, EPL).
Not set
- Team 1, required
team_1 First team name, such as Lakers.
Lakers
- Team 2, required
team_2 Second team name, such as Celtics.
Celtics
Input as JSON
{ "team_1": "Lakers", "team_2": "Celtics"}Output
{ "score": { "team_1": "Los Angeles Lakers", "team_2": "Boston Celtics", "team_1_score": 89, "team_2_score": 111 }, "venue": "crypto.com Arena", "league": "National Basketball Association", "status": "Final", "event_id": "401810678", "date_time": "2026-02-22T23:30:00+00:00", "game_link": "https://www.espn.com/nba/boxscore/_/gameId/401810678" , "attendance": 18997, "team_stats": [ { "stat": "Field Goals Made/Attempted" , "team_1_value": "34-87", "team_2_value": "40-83" }, { "stat": "Field Goal Percentage", "team_1_value": "39", "team_2_value": "48" }, { "stat": "Three-Point Field Goals Made/Attempted" , "team_1_value": "9-30", "team_2_value": "14-36" } ], "top_performers": [ { "team": "Los Angeles Lakers", "player": "Luka Doncic", "stat_line": "25 Points" }, { "team": "Los Angeles Lakers", "player": "LeBron James", "stat_line": "5 Assists" }, { "team": "Los Angeles Lakers", "player": "Austin Reaves", "stat_line": "7 Rebounds" } ], "player_box_score": [ { "team": "Boston Celtics", "stats": { "Blocks": "0", "Points": "7", "Steals": "0", "Assists": "2", "Minutes": "29", "Rebounds": "6", "Turnovers": "0", "Personal Fouls": "1", "Defensive Rebounds": "6", "Offensive Rebounds": "0", "Field Goals Made/Attempted": "2-6", "Free Throws Made/Attempted": "1-1", "3-Point Field Goals Made/Attempted": "2-6", "Teams net points while player is on the court.": "+5" }, "player": "Sam Hauser", "category": null, "position": "Forward" }, { "team": "Boston Celtics", "stats": { "Blocks": "3", "Points": "10", "Steals": "0", "Assists": "1", "Minutes": "26", "Rebounds": "12", "Turnovers": "2", "Personal Fouls": "1", "Defensive Rebounds": "8", "Offensive Rebounds": "4", "Field Goals Made/Attempted": "4-5", "Free Throws Made/Attempted": "2-2", "3-Point Field Goals Made/Attempted": "0-0", "Teams net points while player is on the court.": "+5" }, "player": "Neemias Queta", "category": null, "position": "Center" }, { "team": "Boston Celtics", "stats": { "Blocks": "1", "Points": "12", "Steals": "1", "Assists": "8", "Minutes": "35", "Rebounds": "5", "Turnovers": "1", "Personal Fouls": "1", "Defensive Rebounds": "4", "Offensive Rebounds": "1", "Field Goals Made/Attempted": "5-13", "Free Throws Made/Attempted": "0-0", "3-Point Field Goals Made/Attempted": "2-6", "Teams net points while player is on the court.": "+18" }, "player": "Derrick White", "category": null, "position": "Guard" } ], "scoring_by_period": [ { "period": "Quarter 1", "team_1_points": 28, "team_2_points": 28 }, { "period": "Quarter 2", "team_1_points": 22, "team_2_points": 32 }, { "period": "Quarter 3", "team_1_points": 21, "team_2_points": 24 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"espn.com/get_game_summary","input":{"team_1":"Lakers","team_2":"Celtics"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "espn.com/get_game_summary" , "input": { "team_1": "Lakers", "team_2": "Celtics" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "espn.com/get_game_summary" , "input": { "team_1": "Lakers", "team_2": "Celtics" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run espn.com/get_game_summary# with {"team_1":"Lakers","team_2":"Celtics"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "team_1", "team_2" ], "properties": { "date": { "type": "string", "description": "Game date, for example 2026-02-22. If omitted, find the most recent game." }, "league": { "type": "string", "description": "League if team names are ambiguous, for example NBA (NBA, WNBA, NFL, MLB, NHL, NCAAF, NCAAM, NCAAW, MLS, EPL)." }, "team_1": { "type": "string", "description": "First team name, such as Lakers." }, "team_2": { "type": "string", "description": "Second team name, such as Celtics." } }}Output schema
{ "type": "object", "required": [ "league", "date_time", "status", "venue", "attendance", "score", "scoring_by_period", "top_performers", "team_stats", "player_box_score", "game_link", "event_id" ], "properties": { "score": { "type": "object", "properties": { "team_1": { "type": "string" }, "team_2": { "type": "string" }, "team_1_score": { "type": [ "integer", "null" ] }, "team_2_score": { "type": [ "integer", "null" ] } } }, "venue": { "type": [ "string", "null" ] }, "league": { "type": "string" }, "status": { "type": [ "string", "null" ] }, "event_id": { "type": "string" }, "date_time": { "type": "string" }, "game_link": { "type": "string" }, "attendance": { "type": [ "integer", "null" ] }, "team_stats": { "type": "array", "items": { "type": "object", "properties": { "stat": { "type": "string" }, "team_1_value": { "type": [ "string", "null" ] }, "team_2_value": { "type": [ "string", "null" ] } } } }, "top_performers": { "type": "array", "items": { "type": "object", "properties": { "team": { "type": "string" }, "player": { "type": "string" }, "stat_line": { "type": "string" } } } }, "player_box_score": { "type": "array", "items": { "type": "object", "properties": { "team": { "type": "string" }, "stats": { "type": "object", "additionalProperties": { "type": "string" } }, "player": { "type": "string" }, "category": { "type": [ "string", "null" ] }, "position": { "type": [ "string", "null" ] } } } }, "scoring_by_period": { "type": "array", "items": { "type": "object", "properties": { "period": { "type": "string" }, "team_1_points": { "type": [ "integer", "null" ] }, "team_2_points": { "type": [ "integer", "null" ] } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
espn.com/get_game_summary- Returns
- league, date/time, status, venue, attendance, score, period scoring, top performers, team stats, player box score, game link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method espn.com/get_game_summary with the inputs above.
Ask your agent
- What was the final score of the Lakers vs Celtics game last night?
- Give me the box score and top scorers from the Knicks game on 2026-01-14
- Did Arsenal play Chelsea in the EPL on 2026-02-08? Show me the scoring by period and team stats.
- Find the most recent Dodgers game and tell me the attendance and venue.
- I want the player stats and period breakdown for the Bruins vs Maple Leafs NHL game on 2026-03-02, from espn.com.
See more
All ESPN methodsGets ESPN scores and the schedule for a league on a local day. You can filter by team, and start times are shown in your time zone.
espn.com/get_scoresReturns a team's past results and upcoming games for a season on ESPN, with opponents, local start times, scores, broadcasts and venues. Soccer fixtures include all competitions shown for the team.
espn.com/get_team_scheduleFinds an ESPN league or team by name and lists the latest headlines ESPN publishes for it, newest first.
espn.com/list_newsLooks up an ESPN player by name and returns season and career statistics. Use a league to tell apart players with the same name, and a season year or label to pick a past season.
espn.com/get_player_statsReturns the NBA box score for a game between two teams on a date; without a date, their most recent matchup, including Summer League and games in progress.
nba.com/get_box_scoreGets scores and schedules for a league on a date, or for the football week that contains the date. Results can be limited to one team. Venue names come from each game page, for up to 22 games.
sports.yahoo.com/get_scoresGets NBA games for a date or up to seven days, using the NBA games calendar in US Eastern time. Each game has its score, status, start time, TV channels and venue.
nba.com/get_scoresLists NHL games for a date, optionally limited to one team, with start times in the chosen time zone, scores, status, and TV networks.
nhl.com/get_scores