---
title: "Play By Play [Final]"
method: GET
path: "/v3/nba/pbp/{format}/PlayByPlayFinal/{gameid}"
tags: ["NBA v3 Play-by-Play"]
---

# Play By Play \[Final\]

`GET /v3/nba/pbp/{format}/PlayByPlayFinal/{gameid}`

## Request

- Base URL: `https://api.sportsdata.io`
- URL: `https://api.sportsdata.io/v3/nba/pbp/{format}/PlayByPlayFinal/{gameid}`
- Auth: one of:
  - API key in header `Ocp-Apim-Subscription-Key`
  - API key in query parameter `key`
- TypeScript: <https://skmtc.dev/sportsdata/apis/nba-api/docs/v3/nba/pbp/:format/PlayByPlayFinal/:gameid/get.ts> (a function with typed inputs; its response is checked against the schema)

Each invididual play, its type and outcome, complete with player and team stats down to the play level, delivered final (after the game ends), called by game.

## Path parameters

- `format` 'JSON' | 'XML', required
- `gameid` string, required

## Response `200`

Success

- PlayByPlay
  - `Game` Game
    - `GameID` integer: The unique ID of this game
    - `Season` integer: The NBA season of the game
    - `SeasonType` integer: The type of season that this record corresponds to (1=Regular Season; 2=Preseason; 3=Postseason; 4=Offseason; 5=AllStar; 6=Exhibition)
    - `Status` string, nullable: Indicates the game's status. Possible values include: Scheduled, InProgress, Final, F/OT, Suspended, Postponed, Delayed, Canceled, Forfeit, NotNecessary
    - `Day` string, nullable: The date of the game
    - `DateTime` string, nullable: The date and time of the game
    - `AwayTeam` string, nullable: The abbreviation [Key] of the away team
    - `HomeTeam` string, nullable: The abbreviation [Key] of the home team
    - `AwayTeamID` integer: The unique ID of the away team
    - `HomeTeamID` integer: The unique ID of the home team
    - `StadiumID` integer, nullable: The unique ID of the stadium
    - `Channel` string, nullable: The television station broadcasting the game
    - `Attendance` integer, nullable: The total number of people in attendance at the game
    - `AwayTeamScore` integer, nullable: Total number of points the away team scored in the game
    - `HomeTeamScore` integer, nullable: Total number of points the home team scored in this game
    - `Updated` string, nullable: The timestamp of when this game was last updated (in US Eastern Time)
    - `Quarter` string, nullable: The current quarter in the game. Possible values include: 1, 2, 3, 4, Half, OT, NULL
    - `TimeRemainingMinutes` integer, nullable: The number of minutes remaining in the quarter
    - `TimeRemainingSeconds` integer, nullable: The number of seconds remaining in the quarter
    - `PointSpread` number, nullable: The oddsmaker Point Spread at game start from the perspective of the HomeTeam (negative numbers indicate the HomeTeam is favored; positive numbers indicate the AwayTeam is favored)
    - `OverUnder` number, nullable: The sportsbook's total points scored over under for the game
    - `AwayTeamMoneyLine` integer, nullable: Money line from the perspective of the away team
    - `HomeTeamMoneyLine` integer, nullable: Money line from the perspective of the home team
    - `GlobalGameID` integer: A globally unique ID for this game. This value is guaranteed to be unique across all sports/leagues.
    - `GlobalAwayTeamID` integer: A globally unique ID for the away team. This value is guaranteed to be unique across all sports/leagues.
    - `GlobalHomeTeamID` integer: A globally unique ID for the home team. This value is guaranteed to be unique across all sports/leagues.
    - `PointSpreadAwayTeamMoneyLine` integer, nullable: The money line payout odds when betting on the away team with the point spread.
    - `PointSpreadHomeTeamMoneyLine` integer, nullable: The money line payout odds when betting on the away team with the point spread.
    - `LastPlay` string, nullable: The description of the most recent play/event of the game. This is for display purposes and does not include corresponding data points.
    - `IsClosed` boolean: Indicates whether the game is over and the final score has been verified and closed out. Note: it is recommend for bet resulting to use IsClosed = True rather than simply Final game status
    - `Quarters` Quarter[]: The details of the quarters (including overtime periods) for this game.
      - `QuarterID` integer: Unique identifier for each Quarter.
      - `GameID` integer: The unique ID of the game associated with this quarter
      - `Number` integer: The Number (Order) of the Quarter in the scope of the Game.
      - `Name` string, nullable: The Name of the Quarter (possible values: 1, 2, 3, 4, OT, OT2, OT3, etc)
      - `AwayScore` integer, nullable: The total points scored by the away team in the given period only
      - `HomeScore` integer, nullable: The total points scored by the home team in the given period only
    - `GameEndDateTime` string, nullable: The date and time that the game ended (in US Eastern Time)
    - `HomeRotationNumber` integer, nullable: The rotation number of the home team for this game
    - `AwayRotationNumber` integer, nullable: The rotation number of the away team for this game
    - `NeutralVenue` boolean, nullable: Indicates whether this game is played in a neutral venue
    - `OverPayout` integer, nullable: The sportsbook's payout for the over on the total points line
    - `UnderPayout` integer, nullable: The sportsbook's payout for the under on the total points line
    - `CrewChiefID` integer, nullable: Unique ID of officiating Crew Chief
    - `UmpireID` integer, nullable: Unique ID of officiating Umpire referee
    - `RefereeID` integer, nullable: Unique ID of officiating referee
    - `AlternateID` integer, nullable: Unique ID of officiating Alternate referee
    - `DateTimeUTC` string, nullable: The date and time of the game in UTC
    - `SeriesInfo` Series
      - `HomeTeamWins` integer: Total number of wins by the home team in the series
      - `AwayTeamWins` integer: Total wins in the series by the away team
      - `GameNumber` integer: The game number in the series
      - `MaxLength` integer: The maximum number of games that can be played in a series
    - `InseasonTournament` boolean, nullable: A flag to indicate this game is part of the inseason NBA tournament (can be considered a part of regular season still) - a null would also indicate false
    - `RescheduledFromGameID` integer, nullable: The GameID of the originally scheduled, postponed game, that this game was rescheduled from. This only pertains to games that are scheduled as "make up" games.
    - `RescheduledGameID` integer, nullable: The GameID of the game that was rescheduled from this game. This only pertains to postponed games that require rescheduling.
    - `Deleted` boolean: Indicates whether the game or event has been soft deleted and never existed on the real-life schedule. Deleted records have their Status set to Canceled and are retained for reference only.
  - `Quarters` Quarter[]: The details of the quarters associated with this play-by-play
    - `QuarterID` integer: Unique identifier for each Quarter.
    - `GameID` integer: The unique ID of the game associated with this quarter
    - `Number` integer: The Number (Order) of the Quarter in the scope of the Game.
    - `Name` string, nullable: The Name of the Quarter (possible values: 1, 2, 3, 4, OT, OT2, OT3, etc)
    - `AwayScore` integer, nullable: The total points scored by the away team in the given period only
    - `HomeScore` integer, nullable: The total points scored by the home team in the given period only
  - `Plays` Play[]: The details of the plays associated with this play-by-play
    - `PlayID` integer: The unique identifier of the play.
    - `QuarterID` integer: The unique identifier of the Quarter that this play occurred in.
    - `QuarterName` string, nullable: The name of the quarter that this play occurred in
    - `Sequence` integer: The order in which this play happened over the course of the game.
    - `TimeRemainingMinutes` integer, nullable: The number of minutes remaining in the quarter when this play occurred
    - `TimeRemainingSeconds` integer, nullable: The number of seconds remaining in the quarter when the play occurred
    - `AwayTeamScore` integer, nullable: Total number of points the away team scored after this play completed
    - `HomeTeamScore` integer, nullable: Total points scored by the home team after the completion of this play
    - `PotentialPoints` integer, nullable: The points that would have been potentially scored by the shot attempt (if any).
    - `Points` integer, nullable: The points scores by the shot attempt (if any).
    - `ShotMade` boolean, nullable: Whether the shot was made (if any).
    - `Category` string, nullable: The category the play. Possible values: Period, Timeout, JumpBall, Shot, Rebound, Foul, Substitution, Turnover, Challenge.
    - `Type` string, nullable: The type of the play. Possible values: None, Period, Timeout, JumpBall, FieldGoalMade, FieldGoalMissed, FreeThrowMade, FreeThrowMissed, Rebound, Steal, Turnover, Foul, PersonalFoul, ShootingFoul, OffensiveFoul, LooseBallFoul, TechnicalFoul, FlagrantFoul, Traveling, Palming, Goaltending, KickedBall, LaneViolation, DelayOfGame, Substitution, Ejection, and Challenge.
    - `TeamID` integer, nullable: The unique ID of the team associated with this play
    - `Team` string, nullable: The abbreviation [Key] of the team associated with this play
    - `OpponentID` integer, nullable: The unique ID of the opponent team associated with this play
    - `Opponent` string, nullable: Abbreviation [Key] of the opponent team (e.g. LAL; PHI; BOS; CHI; etc.)
    - `ReceivingTeamID` integer, nullable: The TeamID of the team that won the jump ball.
    - `ReceivingTeam` string, nullable: The team abbreviation [Key] of the team that won the jump ball
    - `Description` string, nullable: The description of the play.
    - `PlayerID` integer, nullable: The player's unique PlayerID as assigned by SportsDataIO. Note: this ID will stay with the player throughout their entire career
    - `AssistedByPlayerID` integer, nullable: The PlayerID of the player who recorded an assist on a made field goal by another player (if applicable)
    - `BlockedByPlayerID` integer, nullable: The PlayerID of the player who blocked the field goal attempt on this play (if any).
    - `FastBreak` boolean, nullable: Indicates whether this play happened on a fast break.
    - `SideOfBasket` string, nullable: The side of the basket that the field goal was attempted from (if any). Possible values: L, R
    - `Updated` string, nullable: The timestamp of when this play was last updated (in US Eastern Time)
    - `Created` string, nullable: The database generated timestamp of when this play was first created (in US Eastern Time)
    - `SubstituteInPlayerID` integer, nullable: The PlayerID of the player who substituted into the game.
    - `SubstituteOutPlayerID` integer, nullable: The PlayerID of the player who substituted out of the game.
    - `AwayPlayerID` integer, nullable: The PlayerID of the player who is involved in the play from the away team (if applicable)
    - `HomePlayerID` integer, nullable: The PlayerID of the player who is involved in the play from the home team
    - `ReceivingPlayerID` integer, nullable: The PlayerID of the player who received the ball
    - `BaselineOffsetPercentage` number, nullable: The baseline offset percentage of where the ball was shot/passed
    - `SidelineOffsetPercentage` number, nullable: The sideline offset percentage of where the ball was shot/passed
    - `Coordinates` string, nullable: The x/y coordinates of where the ball was shot/passed
    - `StolenByPlayerID` integer, nullable: The PlayerID of the player who stole the ball (if applicable)

## Other responses

- `401`: Unauthorized

## Changes

- **2026-11-07** `30672152476c`: 1 info
  - added the optional property `Game/Deleted` to the response with the `200` status

[Operation history](https://skmtc.dev/sportsdata/apis/nba-api/changes/v3/nba/pbp/:format/PlayByPlayFinal/:gameid/get.md)

---

[API](https://skmtc.dev/sportsdata/apis/nba-api.md) - [All operations](https://skmtc.dev/sportsdata/apis/nba-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sportsdata/apis/nba-api/revisions/30672152476c?raw)
