---
title: "Play By Play [Live & Final]"
method: GET
path: "/v3/mlb/pbp/{format}/PlayByPlay/{gameid}"
tags: ["MLB v3 Play-by-Play"]
---

# Play By Play \[Live & Final\]

`GET /v3/mlb/pbp/{format}/PlayByPlay/{gameid}`

## Request

- Base URL: `https://api.sportsdata.io`
- URL: `https://api.sportsdata.io/v3/mlb/pbp/{format}/PlayByPlay/{gameid}`
- Auth: one of:
  - API key in header `Ocp-Apim-Subscription-Key`
  - API key in query parameter `key`
- TypeScript: <https://skmtc.dev/sportsdata/apis/mlb-api/docs/v3/mlb/pbp/:format/PlayByPlay/: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 live in real-time, 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 MLB season of the game
    - `SeasonType` integer: The type of season stage the game belongs to, e.g. Regular season, Post-season. For a description of possible values and how they work, see <a href="https://support.sportsdata.io/hc/en-us/articles/15196612633623-Process-Guide-Season-Types-and-Parameters" target="_blank">here.
    - `Status` string, nullable: The status of the game. For a description of possible values, see <a href="https://sportsdata.io/help/faq#what-are-all-of-the-game-statuses-used-across-sports" target="_blank">here.</a> For how suspended and postponed games are handled specifically, see <a href="https://sportsdata.io/help/faq#how-do-you-handle-postponed-suspended-and-canceled-games" target="_blank">here</a>.
    - `Day` string, nullable: The date of the game
    - `DateTime` string, nullable: The date and time of the game (in US Eastern Time)
    - `AwayTeam` string, nullable: The abbreviation [Key] of the away team
    - `HomeTeam` string, nullable: The abbreviation [Key] of the home team
    - `AwayTeamID` integer: The unique TeamID of the away team
    - `HomeTeamID` integer: The unique ID of the home team
    - `RescheduledGameID` integer, nullable: The GameID of the game that was rescheduled from this game. This only pertains to postponed games that require rescheduling.
    - `StadiumID` integer, nullable: The unique ID of the stadium
    - `Channel` string, nullable: The television station broadcasting the game
    - `Inning` integer, nullable: The inning that the game is currently in, or the inning in which the game ended. Possible values include: NULL, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, etc)
    - `InningHalf` string, nullable: The inning half that the game is currently in; or the inning half in which the game ended (possible values: T; B; E: M: NULL)
    - `AwayTeamRuns` integer, nullable: Number of runs scored by the away team in the game
    - `HomeTeamRuns` integer, nullable: Number of runs scored by the home team in the game
    - `AwayTeamHits` integer, nullable: Total hits by the away team in the game
    - `HomeTeamHits` integer, nullable: Total hits by the home team in the game
    - `AwayTeamErrors` integer, nullable: Total errors committed by the away team in the game
    - `HomeTeamErrors` integer, nullable: Total errors committed by the home team in the game
    - `WinningPitcherID` integer, nullable: The PlayerID of the pitcher who recorded the win in the game
    - `LosingPitcherID` integer, nullable: The PlayerID of the losing pitcher in the game
    - `SavingPitcherID` integer, nullable: The PlayerID of the pitcher who recorded the save in the game
    - `Attendance` integer, nullable: Total number of people who attended the game
    - `AwayTeamProbablePitcherID` integer, nullable: The PlayerID of the away team's probable pitcher
    - `HomeTeamProbablePitcherID` integer, nullable: The PlayerID of the home team's probable pitcher
    - `Outs` integer, nullable: The number of outs recorded in the current inning of the game
    - `Balls` integer, nullable: The number of balls thrown for the current at bat
    - `Strikes` integer, nullable: The number of strikes thrown for the current at bat
    - `CurrentPitcherID` integer, nullable: The PlayerID of the current pitcher
    - `CurrentHitterID` integer, nullable: The PlayerID of the current hitter
    - `AwayTeamStartingPitcherID` integer, nullable: The PlayerID of the away team's starting pitcher
    - `HomeTeamStartingPitcherID` integer, nullable: The PlayerID of the home team starting pitcher in the game
    - `CurrentPitchingTeamID` integer, nullable: The TeamID of the current pitcher's team
    - `CurrentHittingTeamID` integer, nullable: The TeamID of the current hitter's team
    - `PointSpread` number, nullable: The consensus Run Line at game start from the perspective of the HomeTeam (in the Game table, the PointSpread field's negative numbers indicate the HomeTeam is favored; positive numbers indicate the AwayTeam is favored. Note that this rule does not hold in betting-related tables, where the run line is contingent on the bet line). Note: In MLB, Point Spread may also be referred to as Run Line
    - `OverUnder` number, nullable: The oddsmaker total points line at game start
    - `AwayTeamMoneyLine` integer, nullable: Moneyline from the perspective of the away team
    - `HomeTeamMoneyLine` integer, nullable: Moneyline from the perspective of the home team
    - `ForecastTempLow` integer, nullable: The forecasted low temperature on game day at this venue (in Fahrenheit)
    - `ForecastTempHigh` integer, nullable: The forecasted high temperature on game day at this venue (in Fahrenheit)
    - `ForecastDescription` string, nullable: The description of the weather forecast. Posible values include: Broken Clouds, Clear Sky, Few Clouds, Heavy Intensity Rain, Light Rain, Moderate Rain, Mostly Cloudy, Mostly Sunny, Overcast Clouds, Partly Cloudy, Scattered Clouds, Showers, Thunderstorms
    - `ForecastWindChill` integer, nullable: The forecasted wind chill on game day at this venue.
    - `ForecastWindSpeed` integer, nullable: The forecasted wind speed on game day at this venue.
    - `ForecastWindDirection` integer, nullable: The wind direction isn't baseball specific. It refers to the direction that the wind is coming from. 90 would be wind coming from the east. 180 is wind from the south. 270 is a wind from the west ... and so on.
    - `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.
    - `RunnerOnFirst` boolean, nullable: Indicates if there is a runner on first base
    - `RunnerOnSecond` boolean, nullable: Indicates if there is a runner on second base
    - `RunnerOnThird` boolean, nullable: Indicates if there is a runner on third base
    - `AwayTeamStartingPitcher` string, nullable: The first and last name of the away team's starting pitcher for the game
    - `HomeTeamStartingPitcher` string, nullable: The first and last name of the home team starting pitcher for the game
    - `CurrentPitcher` string, nullable: Indicates the current pitcher's name
    - `CurrentHitter` string, nullable: Indicates the current hitter's name
    - `WinningPitcher` string, nullable: The name of the pitcher who recorded the win in the game
    - `LosingPitcher` string, nullable: The first and last name of the losing pitcher in the game
    - `SavingPitcher` string, nullable: The name of the pitcher who recorded the save in the game
    - `DueUpHitterID1` integer, nullable: The PlayerID of the hitter due up first from the current hitter
    - `DueUpHitterID2` integer, nullable: The PlayerID of the hitter due up second from the current hitter
    - `DueUpHitterID3` integer, nullable: The PlayerID of the hitter due up third from the current hitter
    - `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 moneyline payout odds when betting on the away team with the run line
    - `PointSpreadHomeTeamMoneyLine` integer, nullable: The moneyline payout odds when betting on the home team with the run line
    - `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
    - `Updated` string, nullable: The date and time of the late update made to this record (in US Eastern Time)
    - `Innings` Inning[]: The inning details associated with the game
      - `InningID` integer: The unique ID of this specific inning
      - `GameID` integer: The unique ID of the game tied to this Inning
      - `InningNumber` integer: The current inning number of the game
      - `AwayTeamRuns` integer, nullable: Number of runs scored by the away team in the specific inning
      - `HomeTeamRuns` integer, nullable: Number of runs scored by the home team in the specific inning
    - `GameEndDateTime` string, nullable: The date and time that the game ended in US Eastern Time
    - `HomeRotationNumber` integer, nullable: Rotation number of home team for this game
    - `AwayRotationNumber` integer, nullable: Rotation number of away team for this game
    - `NeutralVenue` boolean, nullable: Indicates whether this game is played in a neutral venue. Note: Neutral = True, not neutral = False
    - `InningDescription` string, nullable: The current status of the inning for display purposes (possible values: Top 2, Mid 2, Bot 2, End 2, etc)
    - `OverPayout` integer, nullable: The sportsbook's payout for the over
    - `UnderPayout` integer, nullable: The sportsbook's payout for the under
    - `SeriesInfo` Series
      - `HomeTeamWins` integer: Number of wins by the home team on in the series. Note: this is for postseason series only.
      - `AwayTeamWins` integer: Number of wins by the away team in the series. Note: This is for postseason series only.
      - `GameNumber` integer: Game number in series. Note: this applies to postseason series only.
      - `MaxLength` integer: Maximum number of games in the series. Note: this is for postseason series only.
    - `DateTimeUTC` string, nullable: The date and time of the game in UTC
    - `HomeTeamOpener` boolean, nullable: Indicates whether the home team will use an opener as the starting pitcher. NOTE: An opener is a pitcher (typically a relief pitcher) that is only scheduled to pitch the first 1-3 innings of the game
    - `AwayTeamOpener` boolean, nullable: Indicates whether the away team will use an opener as the starting pitcher.. NOTE: An opener is a pitcher (typically a relief pitcher) that is only scheduled to pitch the first 1-3 innings of the game
    - `SuspensionResumeDay` string, nullable: The date a game that was suspended in play will be resumed for play. Useful for tracking when a Suspended game will return to an InProgress status.
    - `SuspensionResumeDateTime` string, nullable: The date and start-time that the suspended in play game will be resumed for play. Useful for tracking when a Suspended game will return to an InProgress status.
    - `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.
  - `Plays` Play[]: The details of the plays associated with this play-by-play
    - `PlayID` integer: The unique ID of the play assigned by SportsDataIO
    - `InningID` integer: The unique ID associated with this specific inning in which the play occurred
    - `InningNumber` integer, nullable: The inning number in which the particular play occurred
    - `InningHalf` string, nullable: The inning half that the game is currently in; or the inning half in which the game ended (possible values: T; B; E: M: NULL)
    - `PlayNumber` integer, nullable: The order in which plays occurred in a game
    - `InningBatterNumber` integer, nullable: The batter number in the inning where the play occurred.
    - `AwayTeamRuns` integer, nullable: Number of runs scored by the away team on this specific play
    - `HomeTeamRuns` integer, nullable: Number of runs scored by the home team on this specific play
    - `HitterID` integer, nullable: The unique PlayerID of the hitter involved with the play
    - `PitcherID` integer, nullable: The PlayerID of the pitcher involved in the play
    - `HitterTeamID` integer, nullable: The TeamID of the hitter's team.
    - `PitcherTeamID` integer, nullable: The ID of the pitcher's team
    - `HitterName` string, nullable: The first and last name of the hitter involved in the play
    - `PitcherName` string, nullable: The full name of the pitcher involved in the play
    - `PitcherThrowHand` string, nullable: The throwing hand of the pitcher in which the play occurred. (right or left)
    - `HitterBatHand` string, nullable: The batter's handedness for which the play occurred. (R; L; S)
    - `HitterPosition` string, nullable: TheÂ position of the player in which the play occrred. (e.g. P;C;1B; SS; OF)
    - `Outs` integer, nullable: The number of outs in which the play occurred
    - `Balls` integer, nullable: The number of balls in the count in which the play occurred
    - `Strikes` integer, nullable: The number of strikes in the count in which the play occurred
    - `PitchNumberThisAtBat` integer, nullable: The number of pitches in the at bat in which the play occurred
    - `Result` string, nullable: The result of the play. Possible values include: Batter's Interference, Bunted into Double Play, Catcher's Interference, Double, Error, Fielder's Choice, Fly into Double Play, Fly Out, Foul Out, Fouled into Double Play, Ground into Double Play, Ground Out, Hit by Pitch, Home Run, Infield Fly Out, Intentional Walk, Line into Double Play, Lineout, Pop Out, Popped into Double Play, Sacrifice, Sacrifice Fly, Single, Strikeout Bunting, Strikeout Looking, Strikeout Swinging, Triple, Triple Play, Walk, Stolen Base, Caught Stealing, Passed Ball, Wild Pitch, Pick Off, Balk, Error, Fielders Indifference
    - `NumberOfOutsOnPlay` integer, nullable: The number of outs recorded on the play
    - `RunsBattedIn` integer, nullable: The number of runs batted in on the play
    - `AtBat` boolean, nullable: Whether this plate appearance resulted in an at bat
    - `Strikeout` boolean, nullable: Whether the play resulted with a strikeout (returns true/false)
    - `Walk` boolean, nullable: Indicates whether the play resulted in a walk for the hitter (returns true/false)
    - `Hit` boolean, nullable: Whether this play resulted in a hit (true/false)
    - `Out` boolean, nullable: Whether this play resutled in an out (true/false)
    - `Sacrifice` boolean, nullable: Whether the play resulted in a sacrifice (returns true/false)
    - `Error` boolean, nullable: Whether this play resulted in an error (true/false)
    - `Updated` string, nullable: The database generated timestamp of when this record was last updated (in US Eastern Time)
    - `Description` string, nullable: The description of the play for display purposes
    - `Pitches` Pitch[]: The details of the pitches associated with this play
      - `PitchID` integer: The unique ID of the pitch
      - `PlayID` integer: The unique ID of the play assigned by SportsDataIO
      - `PitchNumberThisAtBat` integer, nullable: The number of pitches in the at bat in which the pitch occurred.
      - `PitcherID` integer, nullable: The PlayerID of the pitcher who threw the pitch
      - `HitterID` integer, nullable: The unique PlayerID of the hitter who represents the play
      - `Outs` integer, nullable: The number of outs when the pitch occurred
      - `BallsBeforePitch` integer, nullable: The number of balls the pitcher has thrown before the current pitch
      - `StrikesBeforePitch` integer, nullable: The number of strikes the pitcher has thrown before the current pitch
      - `Strike` boolean, nullable: Whether the pitch was a strike (true/false)
      - `Ball` boolean, nullable: Whether the pitch was a ball (true/false)
      - `Foul` boolean, nullable: Whether the pitch was hit foul (true/false)
      - `Swinging` boolean, nullable: Whether the hitter struck out swinging (true/false)
      - `Looking` boolean, nullable: Whether or not the hitter struck out looking (returns true/false)
    - `Runner1ID` integer, nullable: The PlayerID of the player on first as a result of the play (post-play)
    - `Runner2ID` integer, nullable: The PlayerID of the player on second as a result of the play (post-play)
    - `Runner3ID` integer, nullable: The PlayerID of the player on third as a result of the play (post-play)

## Other responses

- `401`: Unauthorized

## Changes

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

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

---

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