---
title: "Single NBA game with embedded linescore"
method: GET
path: "/v1/nba/games/{id}"
tags: ["nba"]
---

# Single NBA game with embedded linescore

`GET /v1/nba/games/{id}`

## Request

- Base URL: `https://api.bigballsdata.com`
- URL: `https://api.bigballsdata.com/v1/nba/games/{id}`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Includes `match_id` (canonical match UUID, nullable; see
/v1/nba/games) bridging this game into the UUID-keyed endpoints.

## Path parameters

- `id` string, required

## Response `200`

ok

- object
  - `data` object
    - `match_id` string, uuid, nullable: Canonical match UUID; null when the game predates canonical coverage (pre-2019) or is preseason/All-Star
    - `home` NbaGameTeamBox: One team's box score on an NBA game row. `oreb` and `dreb` are stored team totals and always satisfy `oreb + dreb = reb` when present; they are not derived from the play-by-play log.
      - `team_id` string, nullable: Upstream numeric team id, stable across seasons. Not a BBS team UUID.
      - `abbreviation` string, nullable
      - `name` string, nullable
      - `matchup` string, nullable
      - `wl` 'W' | 'L' | 'null', nullable
      - `pts` integer, nullable
      - `fgm` integer, nullable
      - `fga` integer, nullable
      - `fg_pct` union: Exact decimal ratio. PostgreSQL numeric values may serialize as JSON strings (for example, '0.455').
        - number
        - string
      - `fg3m` integer, nullable
      - `fg3a` integer, nullable
      - `fg3_pct` union: Exact decimal ratio. PostgreSQL numeric values may serialize as a JSON string.
        - number
        - string
      - `ftm` integer, nullable
      - `fta` integer, nullable
      - `ft_pct` union: Exact decimal ratio. PostgreSQL numeric values may serialize as a JSON string.
        - number
        - string
      - `reb` integer, nullable: Total rebounds.
      - `oreb` integer, nullable: Offensive rebounds. Complete for the 1985-86 season onward; null for 1984-85 and earlier, where the split was not recorded. A 0 is a real zero, not a missing value.
      - `dreb` integer, nullable: Defensive rebounds. Same coverage boundary as `oreb`.
      - `ast` integer, nullable
      - `stl` integer, nullable
      - `blk` integer, nullable
      - `tov` integer, nullable
    - `away` NbaGameTeamBox: One team's box score on an NBA game row. `oreb` and `dreb` are stored team totals and always satisfy `oreb + dreb = reb` when present; they are not derived from the play-by-play log.
      - `team_id` string, nullable: Upstream numeric team id, stable across seasons. Not a BBS team UUID.
      - `abbreviation` string, nullable
      - `name` string, nullable
      - `matchup` string, nullable
      - `wl` 'W' | 'L' | 'null', nullable
      - `pts` integer, nullable
      - `fgm` integer, nullable
      - `fga` integer, nullable
      - `fg_pct` union: Exact decimal ratio. PostgreSQL numeric values may serialize as JSON strings (for example, '0.455').
        - number
        - string
      - `fg3m` integer, nullable
      - `fg3a` integer, nullable
      - `fg3_pct` union: Exact decimal ratio. PostgreSQL numeric values may serialize as a JSON string.
        - number
        - string
      - `ftm` integer, nullable
      - `fta` integer, nullable
      - `ft_pct` union: Exact decimal ratio. PostgreSQL numeric values may serialize as a JSON string.
        - number
        - string
      - `reb` integer, nullable: Total rebounds.
      - `oreb` integer, nullable: Offensive rebounds. Complete for the 1985-86 season onward; null for 1984-85 and earlier, where the split was not recorded. A 0 is a real zero, not a missing value.
      - `dreb` integer, nullable: Defensive rebounds. Same coverage boundary as `oreb`.
      - `ast` integer, nullable
      - `stl` integer, nullable
      - `blk` integer, nullable
      - `tov` integer, nullable
    - `linescore` object, nullable
      - `home` integer[]
      - `away` integer[]
  - `meta` object
    - `rebound_split` NbaReboundSplitMeta: Self-teaching disclosure of what `oreb`/`dreb` are and where they stop, returned on every /v1/nba/games response.
      - `data_type` string
      - `coverage` string: Which seasons carry the split.
      - `semantics` string: What the numbers mean and how they were NOT produced.
      - `known_gap` string: A season absent from this relation on every field, not just rebounds.

## Other responses

- `400`: invalid game id format
- `404`: game not found

---

[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)
