NBA Standings 2026-27
Today's games
Full scheduleEastern Conference
| # | Team | W | L | Pct | GB | Strk |
|---|---|---|---|---|---|---|
| 1 | 10 | 2 | .833 | – | W5 | |
| 2 | 10 | 3 | .769 | 0.5 | W1 | |
| 3 | 8 | 3 | .727 | 1.5 | W2 | |
| 4 | 7 | 5 | .583 | 3 | L1 | |
| 5 | 6 | 5 | .545 | 3.5 | L1 | |
| 6 | 6 | 6 | .500 | 4 | W1 | |
| 7 | 5 | 6 | .455 | 4.5 | W2 | |
| 8 | 5 | 7 | .417 | 5 | L3 | |
| 9 | 4 | 7 | .364 | 5.5 | W2 | |
| 10 | 4 | 8 | .333 | 6 | L1 | |
| 11 | 4 | 8 | .333 | 6 | W1 | |
| 12 | 4 | 9 | .308 | 6.5 | L6 | |
| 13 | 3 | 8 | .273 | 6.5 | W1 | |
| 14 | 1 | 9 | .100 | 8 | L8 | |
| 15 | 1 | 11 | .083 | 9 | L8 |
Playoffs (1–6) Play-In Tournament (7–10)
Western Conference
| # | Team | W | L | Pct | GB | Strk |
|---|---|---|---|---|---|---|
| 1 | 11 | 2 | .846 | – | W7 | |
| 2 | 10 | 2 | .833 | 0.5 | W10 | |
| 3 | 9 | 3 | .750 | 1.5 | W5 | |
| 4 | 9 | 3 | .750 | 1.5 | W2 | |
| 5 | 8 | 3 | .727 | 2 | W2 | |
| 6 | 8 | 4 | .667 | 2.5 | L1 | |
| 7 | 8 | 4 | .667 | 2.5 | L2 | |
| 8 | 7 | 4 | .636 | 3 | L1 | |
| 9 | 6 | 4 | .600 | 3.5 | W1 | |
| 10 | 7 | 5 | .583 | 3.5 | L1 | |
| 11 | 5 | 6 | .455 | 5 | W2 | |
| 12 | 4 | 8 | .333 | 6.5 | L4 | |
| 13 | 2 | 8 | .200 | 7.5 | L1 | |
| 14 | 1 | 10 | .091 | 9 | L4 | |
| 15 | 1 | 11 | .083 | 9.5 | L10 |
Playoffs (1–6) Play-In Tournament (7–10)
How to get NBA standings from the API with Python
Create a free account, confirm your e-mail address and copy your API key from the dashboard. Send it in the X-API-Key header. You need Python 3 and the requests package (pip install requests). The standings are at /api/basketball/standings/nba. The answer has one group per conference, already sorted, with the home, away, conference and last-10 records and the streak.
import requests
API_KEY = "YOUR_API_KEY"
answer = requests.get(
"https://sportapi.ai/api/basketball/standings/nba",
headers={"X-API-Key": API_KEY},
timeout=20,
).json()
for conference in answer["data"]:
print(conference["group"])
for row in conference["table"]:
print(f'{row["position"]:>2} {row["team"]["name"]:<24} {row["won"]}-{row["lost"]} GB {row["games_behind"]}')The answer looks like this:
{
"success": true,
"season": "2026-27",
"data": [
{
"group": "Eastern Conference",
"table": [
{
"position": 1,
"team": {
"id": 30,
"slug": "boston-celtics",
"name": "Boston Celtics",
"abbreviation": "BOS"
},
"played": 12,
"won": 10,
"lost": 2,
"win_pct": 0.833,
"games_behind": 0,
"points_for": 1371,
"points_against": 1237,
"point_diff": 134,
"home_record": "5-0",
"away_record": "5-2",
"conf_record": "10-1",
"last10": "9-1",
"streak": "W5",
"clinched": null
}
]
}
]
}The same request works for the other leagues: wnba, euroleague, eurocup, ncaa-men, ncaa-women, g-league and nbl.
Keep your API key on the server, never in JavaScript that runs in the browser. Save each answer for a few minutes too, so that page views don't use up your daily limit. This site does both: a script saves the API answers to files, and the pages are built from those files.
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.