Get live NBA scores
GEThttps://api.sportapi.io/v1/nba/scores/live
Returns all NBA games currently in progress or scheduled for today, with score, period, clock, and last play.
Code samples
# Get tonight's NBA games with live scores curl "https://api.sportapi.io/v1/nba/scores/live" \ -H "Authorization: Bearer $API_KEY" # Response { "games": [{ "game_id": "0022500412", "status": "in_progress", "period": 3, "clock": "07:42", "home": { "team": "BOS", "score": 78, "timeouts_remaining": 3 }, "away": { "team": "LAL", "score": 71, "timeouts_remaining": 2 }, "last_play": "J. Tatum makes 3-pt jumper from 25 ft" }] }
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
team | string | No | Filter by team abbreviation (e.g. LAL) |
since | string | No | ISO 8601 timestamp; only return games updated since |
include | string | No | Comma-separated extras: last_play, possession, broadcast |
limit | integer | No | Max results, default 50, max 100 |
Response
{
"games": [
{
"game_id": "0022500412",
"status": "in_progress",
"period": 3,
"clock": "07:42",
"home": {
"team": "BOS",
"score": 78,
"timeouts_remaining": 3
},
"away": {
"team": "LAL",
"score": 71,
"timeouts_remaining": 2
},
"last_play": "J. Tatum makes 3-pt jumper from 25 ft",
"updated_at": "2025-11-14T03:42:18Z"
}
],
"meta": { "count": 1, "request_id": "req_8f3a2b1c", "tier": "realtime" }
}Response fields
| Field | Type | Description |
|---|---|---|
games[].game_id | string | Unique game identifier (NBA league format) |
games[].status | enum | scheduled | in_progress | halftime | final |
games[].period | integer | Current quarter (1–4, 5+ for overtime) |
games[].clock | string | Game clock as MM:SS |
games[].home.team | string | 3-letter team abbreviation |
games[].home.score | integer | Current score |
games[].home.timeouts_remaining | integer | Timeouts left this half |
games[].last_play | string | Human-readable last play description |
games[].updated_at | string | ISO 8601 timestamp of the latest update |
Error responses
| Status | Code | Description |
|---|---|---|
| 401 | unauthorized | Missing or invalid API key |
| 403 | tier_insufficient | Your plan tier doesn't include this resource |
| 429 | rate_limited | Exceeded rate limit; honor Retry-After |
| 500 | internal_error | Server error; retry with exponential backoff |
Live WebSocket equivalent
For push delivery instead of polling, subscribe to the same data via WebSocket:
const ws = client.stream();
ws.subscribe('nba.scores.live');
ws.on('update', game => console.log(game));See the WebSocket overview for the full channel reference and reconnection patterns.