nba

NBA advanced and tracking measures, per game

Changed on

The PER-GAME grain of /advanced-stats: 116 advanced and tracking measures for one player in one game, and per quarter or overtime when ?period asks for it.

Separate from /advanced-stats because the grain differs, exactly as /advanced-stats is separate from /season-averages.

?period DEFAULTS TO 0, the whole game, so the bare path returns one row per game. ?period=all returns every period as well, and ?period=3 pins one. meta.period always echoes which was applied.

Coverage: season 2025, 132,621 rows over 1,301 games and 594 players, 2025-10-21 to 2026-06-13; 34,810 of those rows are the full game (period=0) and 8,565 are postseason.

A well-formed id that is not an NBA player returns 404. A known NBA player with no rows returns 200 with an empty data and a meta.note explaining the coverage boundary.

get/v1/nba/players/{id}/advanced-game-stats

Request

  • Base URL: https://api.bigballsdata.com
  • URL: https://api.bigballsdata.com/v1/nba/players/{id}/advanced-game-stats
  • Auth: one of:
    • API key in header x-api-key
    • HTTP bearer

Path parameters

idstring uuid required

BigBalls player id (UUID from /v1/players)

Query parameters

seasoninteger

Season LABEL, not a calendar year: the year the season STARTS in. 2025 means the 2025-26 campaign.

season_type'regular' | 'playoffs'
integer
OR
'all'

0 (default) is the whole game, 1-4 are quarters, 5+ are overtimes, and the literal all returns every period.

limitinteger
offsetinteger
pageinteger

Alias for offset: page=2 means offset=limit. An explicit offset wins.

Response

ok

Example response

{
  "data": [
    {
      "season": 2025
    }
  ]
}

Changes