GET /api/v1/teams
Return all 30 NBA teams, ordered by full team name. This endpoint has no query parameters or pagination.
Read-only access to teams, players, schedules, scores, games, and player box scores.
Create one API token from your profile. Send it in the HTTP Authorization header. Tokens are shown once and cannot be recovered; rotate or delete a token from your profile if it is exposed.
New tokens begin with nbastat_. Existing tokens that begin with nba_live_ remain valid.
curl "https://nbastat.io/api/v1/teams" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Tokens do not expire automatically. Never place a token in a URL, browser source code, repository, log, or public message.
The default limit is 10 authenticated requests in any rolling 60-minute window. The limit will be increased in the future depending on server capacity. Rotating a token does not reset the account limit.
Responses include RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset. A limited response uses HTTP 429 and includes Retry-After.
id values, detail route parameters, team_id filters, and relationship fields are NBA Stat internal IDs. They are stable API identifiers but are not NBA feed identifiers. Scraped NBA identifiers are not exposed as entity IDs.Return all 30 NBA teams, ordered by full team name. This endpoint has no query parameters or pagination.
Retrieve one NBA team by its numeric NBA Stat internal ID.
team_id required path integerid returned by a team list or relationship field.List players, with optional name and team filters.
q optional stringteam_id optional integerpage optional integer1.per_page optional integer25.Example: /api/v1/players?q=James&team_id=12&page=1
Retrieve one player by numeric NBA Stat internal ID.
player_id required path integerid returned by a player list or relationship field.List schedules and scores, ordered by scheduled tip-off time.
date_from optional dateYYYY-MM-DD.date_to optional dateYYYY-MM-DD. It cannot be earlier than date_from.team_id optional integerstatus optional enumFinal, In Progress, Not Started, Scheduled, or Postponed. Values are case-sensitive.season optional stringYYYY-YY format, such as 2026-27.order optional enumasc or desc; defaults to asc.page optional integer1.per_page optional integer25.Example: /api/v1/games?date_from=2026-10-10&date_to=2026-10-17&status=Scheduled&order=asc
Retrieve one scheduled or completed game by its numeric NBA Stat internal ID.
game_id required path integerid returned by a game list or relationship field.Retrieve game details and player box-score statistics using the game’s internal ID. Scheduled games may return an empty players array.
game_id required path integerid of the game whose player box score should be returned.The player and game collection endpoints default to 25 records. Set per_page from 1 to 100 and use page to move through results. The teams endpoint always returns all 30 teams and does not include pagination metadata.
{
"data": [],
"meta": {
"page": 1,
"per_page": 25,
"total": 30,
"total_pages": 2
},
"request_id": "00000000-0000-4000-8000-000000000000"
}
Errors use standard HTTP status codes: 401 for authentication, 404 for missing resources, 405 for unsupported methods, 422 for invalid parameters, and 429 for rate limits.
{
"error": {
"code": "invalid_parameter",
"message": "date_from must use the YYYY-MM-DD format."
},
"request_id": "00000000-0000-4000-8000-000000000000"
}