---
title: "Play-by-play for an NBA game"
method: GET
path: "/v1/nba/games/{id}/plays"
tags: ["nba"]
---

# Play-by-play for an NBA game

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

## Request

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

Pre-1996 games have no PBP in the Kaggle dataset; those return 200 with
`data: []` and `meta.pbp_available: false`. 404 only when the game
itself doesn't exist.
**Pro plan or higher**: full play-by-play logs are a Pro capability
for basketball, ice hockey and American football, NBA included, and
NBA shot coordinates are part of it; Free / Solo / Trio / Edge receive
a 403 naming the tier and linking the docs and pricing pages. Soccer
match events are a separate, free capability: see
`/v1/matches/{id}/events`.

## Path parameters

- `id` string, required

## Query parameters

- `period` integer
- `player` string
- `limit` integer
- `offset` integer

## Response `200`

ok

- object
  - `data` object[]
  - `pagination` object
    - `total` integer
    - `limit` integer
    - `offset` integer
  - `meta` object
    - `pbp_available` boolean

## Other responses

- `400`: invalid game id or query
- `403`: plan_required (Edge or higher)
- `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)
