---
title: "NBA games list (legacy v1 shape, 1946-2025)"
method: GET
path: "/v1/nba/games"
tags: ["nba"]
deprecated: true
---

# NBA games list (legacy v1 shape, 1946-2025)

`GET /v1/nba/games`

## Request

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

> **Deprecated.**

Each game carries `match_id`, the canonical match UUID usable with
every /v1 UUID-keyed endpoint (availability, lineups, odds). It is
null for games our canonical coverage cannot reach: anything before
2019-10-22, plus preseason and All-Star games. This response shape is
stable through 2027-03-31; migrate list reads to
`/v1/matches?league=nba`.

## Query parameters

- `season` integer
- `team` string
- `type` 'REG' | 'POST' | 'PRE' | 'ALLSTAR' | 'Regular Season' | 'Playoffs' | 'Pre Season' | 'All Star'
- `limit` integer
- `offset` integer

## Response `200`

ok

- object
  - `data` object[]
    - `game_id` string
    - `match_id` string, uuid, nullable
    - `season_id` string
    - `season` integer: Season label: the year the season STARTED.
    - `season_type` string
    - `game_date` string, date
    - `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
  - `pagination` object
    - `total` integer
    - `limit` integer
    - `offset` 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.
    - `history_window` object, nullable: Present only when a plan or coverage floor clamped the default window.

---

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