---
title: "Game-by-game stats for an NBA player"
method: GET
path: "/v1/nba/players/{id}/stats"
tags: ["NBA"]
---

# Game-by-game stats for an NBA player

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

## Request

- Base URL: `https://api.playcallerapp.com`
- URL: `https://api.playcallerapp.com/v1/nba/players/{id}/stats`
- Auth: API key in header `X-PlayCaller-Key`

Game logs from `historical_performance` for an NBA player (127,909 rows across 5 seasons, 2021–2025). Returns fantasy points and box score stats per game.

**Tier access:** Developer Sandbox, Build, Growth, Pro Insights, Syndicate Alpha

## Path parameters

- `id` string, required

## Query parameters

- `season` integer
- `limit` integer

## Response `200`

NBA game log

- object
  - `success` boolean
  - `endpoint` string
  - `player` object
    - `id` string
    - `full_name` string
    - `position` string
    - `team` string
  - `count` integer
  - `data` HistoricalGameRecord[]
    - `id` integer
    - `season` integer
    - `week` integer, nullable: NFL/NBA only — null for MLB (daily games, no week concept)
    - `game_date` string, date-time, nullable: Real date for MLB (daily_player_stats.stat_date); always null for NFL, which has no per-game date column
    - `sport_key` string
    - `player_name` string
    - `team` string
    - `position` string
    - `opponent` string, nullable
    - `fantasy_points` string: Numeric value returned as a string
    - `passing_yards` integer, nullable
    - `passing_tds` integer, nullable
    - `rushing_yards` integer, nullable
    - `rushing_tds` integer, nullable
    - `receiving_yards` integer, nullable
    - `receiving_tds` integer, nullable
    - `receptions` integer, nullable
    - `snap_pct` integer, nullable
    - `target_share` number, nullable
    - `air_yards` number, nullable
    - `batting_h` integer, nullable: MLB only
    - `batting_r` integer, nullable
    - `batting_hr` integer, nullable
    - `batting_rbi` integer, nullable
    - `batting_sb` integer, nullable
    - `batting_bb` integer, nullable
    - `batting_ab` integer, nullable
    - `pitching_ip` number, nullable
    - `pitching_w` integer, nullable
    - `pitching_k` integer, nullable
    - `pitching_sv` integer, nullable
    - `pitching_hld` integer, nullable
    - `pitching_er` integer, nullable
  - `meta` ResponseMeta
    - `sport` string
    - `league` string: Present on multi-sport (ESPN-backed) endpoints; mirrors sport unless a sport has sub-leagues (e.g. soccer: epl/mls).
    - `tier` string
    - `calls_remaining_this_month` integer
    - `documentation_url` string, uri

## Other responses

- `401`: Missing or invalid API key
- `404`: Player not found
- `429`: Rate limit or monthly quota exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/playcallerapp/apis/playcaller-data-api.md) · [All operations](https://skmtc.dev/playcallerapp/apis/playcaller-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/playcallerapp/apis/playcaller-data-api/revisions/100c0a3ffbfe?raw)
