---
title: "NBA team season averages, by category"
method: GET
path: "/v1/nba/teams/{id}/season-averages"
tags: ["nba"]
---

# NBA team season averages, by category

`GET /v1/nba/teams/{id}/season-averages`

## Request

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

Team-level season averages as the vendor publishes them. The TEAM
counterpart of `/v1/nba/players/{id}/season-averages`, and deliberately
one route rather than seven: the relation is a cube, so `category` is a
filter and an ABSENT filter returns every slice.

Coverage: 1,290 rows, 30 teams across 43 populated
(category, stat_type) slices in 7 categories, season 2025, regular
season only. An impossible `category` or `stat_type` returns 200 with an
empty `data` rather than being ignored.

A well-formed id that is not an NBA team returns 404. A known NBA team
with no rows for the requested filter returns 200 with an empty `data`
and a `meta.note` naming the coverage boundary.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `season` integer
- `season_type` 'regular' | 'playoffs'
- `category` string
- `stat_type` string
- `limit` integer
- `offset` integer
- `page` integer

## Response `200`

ok

- object
  - `data` NbaTeamSeasonAverage[]
    - `team_id` string, uuid: BigBalls team id.
    - `season` integer: Season LABEL: the year the season starts in.
    - `season_type` string: `regular` or `playoffs`. Only `regular` is populated today.
    - `category` string: Cube dimension: general, clutch, tracking, playtype, shooting, shotdashboard or hustle.
    - `stat_type` string: Cube dimension inside the category. The EMPTY STRING is a real value, and it is the only one the `hustle` category uses, so `?stat_type=` selects that slice.
    - `stats` object: The slice's statistics. Key set varies by (category, stat_type).
  - `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.
    - `note` string: Present only when data is empty; explains the two reasons it can be.

## Other responses

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

---

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