---
title: "NBA advanced and tracking measures, per game"
method: GET
path: "/v1/nba/players/{id}/advanced-game-stats"
tags: ["nba"]
---

# NBA advanced and tracking measures, per game

`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

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.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `season` integer
- `season_type` 'regular' | 'playoffs'
- `period` union
  - integer
  - 'all'
- `limit` integer
- `offset` integer
- `page` integer

## Response `200`

ok

- object
  - `data` NbaPlayerAdvancedGameStat[]
    - `player_id` string, uuid
    - `team_id` string, uuid, nullable: BigBalls team id. Null where the game has no bridged team row.
    - `match_id` string, uuid, nullable: BigBalls match id, joinable to /v1/matches. Null for 2,097 of 132,621 rows whose game has no canonical match.
    - `season` integer
    - `game_date` string, date
    - `period` integer: 0 is the whole game; 1-4 are quarters; 5+ are overtimes.
    - `postseason` boolean
    - `stats` object: Flat map of the 116 advanced and tracking measures.
  - `pagination` object
    - `total` integer
    - `limit` integer
    - `offset` integer
  - `meta` object
    - `data_as_of` string, date-time, nullable: Newest row timestamp on THIS page: a fact about the response, not the feed.
    - `period` unknown
    - `note` string: Present only when data is empty.

## Other responses

- `400`: invalid player id format, or invalid query
- `403`: plan does not include basketball
- `404`: no player with that id

## Changes

- **2026-10-19** `9191fc13fcdb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api/changes/v1/nba/players/:id/advanced-game-stats/get.md)

---

[API](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api.md) · [All operations](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bigballsdata/apis/big-ball-sports-api/revisions/31fb54ac414e?raw)
