SportAPINBAGet SportAPI Key
117–112Final

Oklahoma City Thunder vs Cleveland Cavaliers Box Score

Monday, November 2, 2026 · 7:00 PM ET · Rocket Arena · Attendance 19,432

Score by quarter

Team1234T
OKC26333127117
CLE30183628112

Box score

Oklahoma City Thunder

PlayerMinPtsRebAstStlBlkTOFG3PTFT+/-
Shai Gilgeous-Alexander G39434821114-354-811-12+7
Ajay Mitchell G3520510107-160-36-6+1
Kenrich Williams G3112310005-72-40-0+7
Isaiah Hartenstein C2851442012-80-01-2-7
Jaylin Williams F203321011-61-50-0-14
Jared McCain G277820013-110-51-1+5
Aday Mara C2010900125-70-00-0+8
Micah Peavy G168500012-42-22-2-1
Bennett Stirtz G129200013-43-40-0+9
Josh Dix G120100100-00-00-0+10

Did not play: Brooks Barnhizer (Coach's decision)

Cleveland Cavaliers

PlayerMinPtsRebAstStlBlkTOFG3PTFT+/-
Donovan Mitchell G36175110036-174-91-4+5
Evan Mobley C3316741226-111-43-4-3
James Harden G3314461015-103-71-3-12
Jarrett Allen C2814611105-100-04-6+11
Meleek Thomas G2617511007-163-90-0-5
Mario Hezonja F2712832004-93-71-2-3
Sam Merrill G268321002-82-82-2-12
Tyrese Proctor G1910420013-42-32-2+5
Craig Porter Jr. G80410000-00-00-0-2
Thomas Bryant C54000002-50-20-1-9

Did not play: Tristan Enaruna (Coach's decision); Riley Minix (Coach's decision)

Starters are marked with a bar. Min: minutes, TO: turnovers, FG, 3PT and FT: made-attempted.

Get this box score from the API

Every game has an id, and this one is 1561. /api/basketball/games/1561/players returns one line per player: minutes, points, shooting, rebounds, assists, steals, blocks, turnovers, fouls and plus-minus. Players who didn't play have the reason in dnp. The team totals are at /api/basketball/games/1561.

box_score.py
import requests

API_KEY = "YOUR_API_KEY"
answer = requests.get(
    "https://sportapi.ai/api/basketball/games/1561/players",
    headers={"X-API-Key": API_KEY},
    timeout=20,
).json()

game = answer["game"]
print(game["away"]["name"], game["away"]["score"], "@", game["home"]["name"], game["home"]["score"])
for side in ("away", "home"):
    print(game[side]["name"])
    for row in answer["data"][side]:
        if row["dnp"]:
            continue
        print(f'  {row["player"]["name"]:<24} {row["minutes"]:>2} min {row["pts"]:>3} pts {row["reb"]:>2} reb {row["ast"]:>2} ast')

The API documentation lists every basketball endpoint. The same key works for the NBA, WNBA, EuroLeague, NCAA and the other leagues, and for football too.