NBA API: Get box score
Returns 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.
Unofficial. Not affiliated with or endorsed by NBA.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Date optional
date Game date in YYYY-MM-DD, for example 2025-10-21. Defaults to their most recent game.
Not set
- Team 1, required
team_1 First team name, for example Lakers.
Lakers
- Team 2, required
team_2 Second team name, for example Warriors.
Warriors
Input as JSON
{ "team_1": "Lakers", "team_2": "Warriors"}Output
{ "date": "2026-07-18", "arena": "Thomas & Mack Center", "score": "88-92", "status": "Final", "team_1": { "name": "Los Angeles Lakers", "score": 88, "players": [ { "name": "William Hickey", "blocks": 1, "points": 2, "steals": 0, "assists": 1, "minutes": "12:36", "starter": true, "rebounds": 2, "player_id": 1643044, "turnovers": 1, "plus_minus": -3, "field_goals": "1-2", "free_throws": "0-0", "three_pointers": "0-1" }, { "name": "Adou Thiero", "blocks": 0, "points": 18, "steals": 3, "assists": 3, "minutes": "26:22", "starter": true, "rebounds": 10, "player_id": 1642876, "turnovers": 3, "plus_minus": 8, "field_goals": "6-6", "free_throws": "3-3", "three_pointers": "1-1" }, { "name": "Anton Watson", "blocks": 1, "points": 2, "steals": 0, "assists": 2, "minutes": "21:33", "starter": true, "rebounds": 1, "player_id": 1641817, "turnovers": 2, "plus_minus": -3, "field_goals": "1-9", "free_throws": "0-0", "three_pointers": "0-5" } ], "points_by_period": [ { "period": "Q1", "points": 19 }, { "period": "Q2", "points": 23 }, { "period": "Q3", "points": 24 } ] }, "team_2": { "name": "Golden State Warriors", "score": 92, "players": [ { "name": "Malevy Leons", "blocks": 2, "points": 9, "steals": 2, "assists": 2, "minutes": "23:45", "starter": true, "rebounds": 4, "player_id": 1642502, "turnovers": 1, "plus_minus": 0, "field_goals": "4-7", "free_throws": "0-0", "three_pointers": "1-3" }, { "name": "Yaxel Lendeborg", "blocks": 2, "points": 15, "steals": 1, "assists": 3, "minutes": "28:38", "starter": true, "rebounds": 4, "player_id": 1642865, "turnovers": 1, "plus_minus": 11, "field_goals": "5-8", "free_throws": "3-3", "three_pointers": "1-2" }, { "name": "Graham Ike", "blocks": 0, "points": 16, "steals": 0, "assists": 1, "minutes": "25:51", "starter": true, "rebounds": 11, "player_id": 1643633, "turnovers": 2, "plus_minus": 10, "field_goals": "6-10", "free_throws": "2-2", "three_pointers": "0-1" } ], "points_by_period": [ { "period": "Q1", "points": 21 }, { "period": "Q2", "points": 21 }, { "period": "Q3", "points": 21 } ] }, "game_id": "1522600071", "game_link": "https://www.nba.com/game/1522600071/box-score" }Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"nba.com/get_box_score","input":{"team_1":"Lakers","team_2":"Warriors"}}' # 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": "nba.com/get_box_score" , "input": { "team_1": "Lakers", "team_2": "Warriors" }})# 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": "nba.com/get_box_score" , "input": { "team_1": "Lakers", "team_2": "Warriors" } }), 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 nba.com/get_box_score# with {"team_1":"Lakers","team_2":"Warriors"}"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 in YYYY-MM-DD, for example 2025-10-21. Defaults to their most recent game." }, "team_1": { "type": "string", "description": "First team name, for example Lakers." }, "team_2": { "type": "string", "description": "Second team name, for example Warriors." } }}Output schema
{ "type": "object", "required": [ "date", "arena", "status", "score", "game_link", "team_1", "team_2", "game_id" ], "properties": { "date": { "type": "string", "format": "date" }, "arena": { "type": [ "string", "null" ] }, "score": { "type": "string" }, "status": { "type": "string" }, "team_1": { "type": "object", "required": [ "name", "score", "points_by_period", "players" ], "properties": { "name": { "type": "string" }, "score": { "type": [ "integer", "null" ] }, "players": { "type": "array", "items": { "type": "object", "required": [ "name", "starter", "minutes", "points", "rebounds", "assists", "steals", "blocks", "turnovers", "field_goals", "three_pointers", "free_throws", "plus_minus", "player_id" ], "properties": { "name": { "type": "string" }, "blocks": { "type": [ "integer", "null" ] }, "points": { "type": [ "integer", "null" ] }, "steals": { "type": [ "integer", "null" ] }, "assists": { "type": [ "integer", "null" ] }, "minutes": { "type": [ "string", "null" ] }, "starter": { "type": "boolean" }, "rebounds": { "type": [ "integer", "null" ] }, "player_id": { "type": [ "integer", "null" ], "x-fous-developer": true }, "turnovers": { "type": [ "integer", "null" ] }, "plus_minus": { "type": [ "integer", "null" ] }, "field_goals": { "type": [ "string", "null" ] }, "free_throws": { "type": [ "string", "null" ] }, "three_pointers": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "points_by_period": { "type": "array", "items": { "type": "object", "required": [ "period", "points" ], "properties": { "period": { "type": "string" }, "points": { "type": [ "integer", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false }, "team_2": { "type": "object", "required": [ "name", "score", "points_by_period", "players" ], "properties": { "name": { "type": "string" }, "score": { "type": [ "integer", "null" ] }, "players": { "type": "array", "items": { "type": "object", "required": [ "name", "starter", "minutes", "points", "rebounds", "assists", "steals", "blocks", "turnovers", "field_goals", "three_pointers", "free_throws", "plus_minus", "player_id" ], "properties": { "name": { "type": "string" }, "blocks": { "type": [ "integer", "null" ] }, "points": { "type": [ "integer", "null" ] }, "steals": { "type": [ "integer", "null" ] }, "assists": { "type": [ "integer", "null" ] }, "minutes": { "type": [ "string", "null" ] }, "starter": { "type": "boolean" }, "rebounds": { "type": [ "integer", "null" ] }, "player_id": { "type": [ "integer", "null" ], "x-fous-developer": true }, "turnovers": { "type": [ "integer", "null" ] }, "plus_minus": { "type": [ "integer", "null" ] }, "field_goals": { "type": [ "string", "null" ] }, "free_throws": { "type": [ "string", "null" ] }, "three_pointers": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "points_by_period": { "type": "array", "items": { "type": "object", "required": [ "period", "points" ], "properties": { "period": { "type": "string" }, "points": { "type": [ "integer", "null" ] } }, "additionalProperties": false } } }, "additionalProperties": false }, "game_id": { "type": "string", "x-fous-developer": true }, "game_link": { "type": "string" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1ยข with pay as you go); failed runs are free.
- Method
nba.com/get_box_score- Returns
- date, arena, status, score, game link, each team's points by period and player stats
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 nba.com/get_box_score with the inputs above.
Ask your agent
- Pull up the box score from the Celtics vs Knicks game on 2025-11-12, I want everyone's points, rebounds and assists
- How did the last Nuggets-Timberwolves matchup go? Need the quarter-by-quarter scoring and player stats
- Get me the nba.com box score for Lakers at Warriors on 2025-10-21
- Is the Heat vs Bucks game still going? Show me the current score and who's leading in scoring for each side
- Find the player stat lines from the most recent Spurs vs Thunder game on NBA.com, Summer League counts too
See more
All NBA methodsGets 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_scoresLooks up an NBA player by name, including retired players, and returns the bio and regular-season per-game averages for the reported season and career.
nba.com/get_playerReturns NBA regular-season standings for a season, with Eastern and Western Conference teams in rank order. Defaults to the season shown on the NBA standings page.
nba.com/get_standingsFinds 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.
espn.com/get_game_summaryGets 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_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_scoresGets 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 a cricket match's full scorecard on Cricbuzz from two team names. You can pick the match by date or series, or pass a match link. Otherwise you get the teams' most recent match, including live play.
cricbuzz.com/get_scorecard