---
title: "NBA player career contract totals (Edge and above)"
method: GET
path: "/v1/nba/players/{id}/contracts"
tags: ["nba"]
---

# NBA player career contract totals (Edge and above)

`GET /v1/nba/players/{id}/contracts`

## Request

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

Career contract totals: term, type, status, total value, average
salary, guarantees, the exception the deal was signed using, and the
free-agency year it ends in. Money is whole US dollars.

EDGE AND ABOVE. A key below Edge receives 403 with the tier, the price
and a checkout link.

Shipped alongside `/contract-seasons`, which is the per-season
breakdown. The two are NOT nested: they are stored in separate id
spaces upstream, so joining them would drop rows rather than relate
them. Ask both and relate them by `season` against
`start_year`-`end_year` yourself if you need that.

`?season` selects the deals IN FORCE in that season, not deals whose
label equals it.

Coverage: 1,533 contracts across 451 players, start years 2001 through
end years 2031.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `season` integer
- `limit` integer
- `offset` integer
- `page` integer

## Response `200`

ok

- object
  - `data` NbaPlayerContract[]
    - `player_id` string, uuid
    - `team_id` string, uuid, nullable
    - `start_year` integer: Season LABEL the deal starts in.
    - `end_year` integer: Season LABEL the deal ends in.
    - `contract_type` string, nullable
    - `contract_status` string, nullable
    - `contract_years` integer, nullable
    - `total_value` integer, nullable
    - `average_salary` integer, nullable
    - `guaranteed_at_signing` integer, nullable
    - `total_guaranteed` integer, nullable
    - `signed_using` string, nullable
    - `free_agent_year` integer, nullable
    - `free_agent_status` string, nullable
    - `contract_notes` unknown
  - `pagination` object
    - `total` integer
    - `limit` integer
    - `offset` integer
  - `meta` object
    - `data_as_of` string, date-time, nullable
    - `currency` string
    - `note` string

## Other responses

- `400`: invalid player id format, or invalid query
- `403`: plan is below Edge, or 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/contracts/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)
