Game Status Workflow
How MLB race statuses progress
Intro
Every MLB game progresses through multiple statuses during its lifecycle. Leverage the game status to determine the appropriate endpoint to use.
The status attribute is available in all Schedule and Game endpoints and reflects changes as a game moves from scheduled to inprogress and ultimately to closed.
The example below displays the status.
<game id="fffbffca-9da3-4f35-870b-71075d9114bd" status="scheduled" coverage="full" game_number="1" day_night="N" scheduled="2026-07-31T01:40:00+00:00" ...>{
"id": "fffbffca-9da3-4f35-870b-71075d9114bd",
"status": "scheduled",
"coverage": "full",
"game_number": 1,
"scheduled": "2026-07-31T01:40:00+00:00"
}Coverage
We provide three different levels of detail to ensure maximum coverage.
Full – We provide live pitch-by-pitch coverage for the entire game. We provide updated live events as well as team- and player-level data in near real time. Full coverage is available for all regular and postseason games.
Boxscore – We provide runs by inning, along with total runs, hits, and errors, updated in near real time as the game progresses. Boxscore-only coverage applies in two Spring Training scenarios:
- When an MLB team plays a non-MLB opponent, such as a college team or a World Baseball Classic team. These exhibition games may follow modified rules that supersede the official MLB ruleset.
- When Boxscore coverage is required as a failover during Spring Training.
Spring Training – We provide live play-by-play coverage, including all events where an out was recorded or a runner advanced, as well as team and player data in near real-time. Beginning with the 2026 season, all Spring Training games played between two MLB franchises—at either Grapefruit/Arizona Cactus League venues or standard MLB stadiums—feature full pitch-by-pitch coverage.
Spring Training Coverage Note:Due to varying game rules, limited on-site staff, and training of new on-venue statisticians, you may see data volatility (e.g. stat errors and prolonged game-closing process) for Spring Training games. As a result, there may be a higher than normal frequency of games with data latency or moving to fail-over mode throughout Spring Training.
Game Status Definitions
Below are the valid game statuses in the MLB API.
scheduled- The game is scheduled to occur.inprogress- The first pitch for the game has been received.complete- The last pitch for the game has been received and statistics are being reviewed.closed- The game has passed review and MLB has officially closed the game.wdelay- The game has been delayed because of weather.fdelay- The game has been delayed because of facility issues.odelay- The game has been delayed.canceled– The game has been canceled. No makeup game will be played as a result.unnecessary– The series game was scheduled to occur, but will not take place due to one team clinching the series early.if-necessary– The game will be scheduled if it is required.postponed- The game has been postponed and will be rescheduled in the future, restarting at the top of the 1st. The current game and ID will remain the same for the makeup game in the future.suspended- The game has been suspended and will be rescheduled in the future, continuing where they left off. The game ID will remain the same.maintenance- The game is being reviewed internally and having data adjusted. We do not recommend pulling data for a game while in this status.
Game Workflows
The diagrams below illustrate common game status flows. Status values are shown in bold monospace format to improve readability and consistency.
Standard Game
Below is the typical progression for an MLB game:
scheduled → inprogress → complete → closed
Key integration considerations:
- Probable pitchers are typically available [insert time] via the Push Probable Pitchers and Game Summary feeds.
- Starting lineups and rosters populate a few hours prior to the game. Rosters populate shortly after starting lineups are announced. Use the Game Summary feeds to monitor lineups and rosters.
- A game transitions to
completeimmediately after the final out. - A game transitions to
closedafter official statistical verification, typically within 15 minutes. - Once
closed, seasonal statistics feeds will be refreshed within minutes, as final game results impact cumulative player and team stats (wins, losses, ERA, batting averages, etc.).
If Necessary
An if-necessary game may appear in postseason series formats.
Flow:
if-necessary → scheduled → (Standard Game workflow)
If the game is not required based on series results, it will transition from if-necessary to unnecessary and will not transition into the Standard Game flow.
Postponed
Flow:
scheduled → postponed → scheduled → (Standard Game workflow)
Important Notes
- Postponed games restart from the beginning.
- The game ID remains the same.
- The
rescheduled_fromelement indicates the original scheduled date. - Clients should monitor Schedule feeds to detect date changes.
- Once rescheduled, the game follows the Standard Game workflow.
The following example shows a game that was postponed and later rescheduled:
<rescheduled_from reason="postponed">
2020-08-23T17:10:00+00:00
</rescheduled_from>
Suspended
Flow:
inprogress → suspended → inprogress → complete → closed
A game may move to suspended due to weather, facility issues, or other interruptions.
When suspended:
- The game resumes from the exact point of suspension.
- The game ID remains the same.
- The
rescheduled_fromelement may indicate the original date if play resumes on a different day. See game3500db7d-36fa-4298-abd8-1931854aa0b2as an example.
<rescheduled_from reason="suspended">2025-05-20T22:10:00+00:00</rescheduled_from> <rescheduled_from reason="suspended">2025-05-19T23:40:00+00:00</rescheduled_from> - Applications should continue polling the Game feeds to detect the return to
inprogressunless the game has been rescheduled to a different day.
Canceled
Flow:
scheduled → canceled
A canceled game remains in canceled status and will not transition further.
See game 6ca46499-f657-4d23-92a0-9a4dc8162f89 as an example.
MLB Weather Delay Workflow
Use the below diagram to understand possible game workflows for an MLB weather delay. Or access a pdf.
Double Headers
When two games are played between the same teams on the same day:
- Each game has a unique game ID.
- The
game_numberattribute differentiates Game 1 and Game 2. - The
double_headerattribute indicates whether the game is part of a doubleheader.
You can access these nodes in the schedule and game endpoints.
{
"id": "f8c401c6-b657-48c3-96e6-fcc0251e748c",
"status": "closed",
"coverage": "full",
"game_number": 1,
"day_night": "D",
"scheduled": "2025-08-18T18:20:00+00:00",
"home_team": "55714da8-fcaf-4574-8443-59bfb511a524",
"away_team": "dcfd5266-00ce-442c-bc09-264cd20cf455",
"attendance": 38971,
"duration": "2:38",
"double_header": true,
"entry_mode": "STOMP",
"reference": "777459",To differentiate games:
- Use
game_number - Use
scheduledtimestamp - Use unique game IDs
Both games follow independent Standard Game workflows.
Game State Samples
Sample feeds can be accessed via simulations.
SimulationsUse our Simulations to test each game state and validate your integration.
Data Entry Workflow
See below for a daily breakdown of MLB data updates.
Sunday
- Validate game times for today's games (10am CT)
- Game lineups available at least 30 minutes prior to the first pitch
- Game stats validated and moved to
closedstatus (within 60 minutes of completion of the game) - 5-day probables entered and validated (Midnight CT)
- Transactions (All day)*
- Injury updates (All day)**
- Seasonal stats validation (All day)
Monday
- Validate game times for today's games (10am CT)
- Game lineups available at least 30 minutes prior to the first pitch
- Game stats validated and moved to
closedstatus (within 60 minutes of completion of the game) - 5-day probables entered and validated (Midnight CT)
- Transactions (All day)*
- Injury updates (All day)**
- Seasonal stats validation (All day)
Tuesday
- Validate game times for today's games (10am CT)
- Game lineups available at least 30 minutes prior to the first pitch
- Game stats validated and moved to
closedstatus (within 60 minutes of completion of the game) - 5-day probables entered and validated (Midnight CT)
- Transactions (All day)*
- Injury updates (All day)**
- Seasonal stats validation (All day)
Wednesday
- Validate game times for today's games (10am CT)
- Game lineups available at least 30 minutes prior to the first pitch
- Game stats validated and moved to
closedstatus (within 60 minutes of completion of the game) - 5-day probables entered and validated (Midnight CT)
- Transactions (All day)*
- Injury updates (All day)**
- Seasonal stats validation (All day)
Thursday
- Validate game times for today's games (10am CT)
- Game lineups available at least 30 minutes prior to the first pitch
- Game stats validated and moved to
closedstatus (within 60 minutes of completion of the game) - 5-day probables entered and validated (Midnight CT)
- Transactions (All day)*
- Injury updates (All day)**
- Seasonal stats validation (All day)
Friday
- Validate game times for today's games (10am CT)
- Game lineups available at least 30 minutes prior to the first pitch
- Game stats validated and moved to
closedstatus (within 60 minutes of completion of the game) - 5-day probables entered and validated (Midnight CT)
- Transactions (All day)*
- Injury updates (All day)**
- Seasonal stats validation (All day)
Saturday
- Validate game times for today's games (10am CT)
- Game lineups available at least 30 minutes prior to the first pitch
- Game stats validated and moved to
closedstatus (within 60 minutes of completion of the game) - 5-day probables entered and validated (Midnight CT)
- Seasonal stats validation (All day)
- Transactions (All day)*
- Injury updates (All day)**
- A transaction is typically updated when an official source, or more than one trusted source, reports it as fact. ** We monitor and update injuries throughout the day during the season and as necessary during the offseason, when an injury may impact the next season. We use official and reliable sources.
Important Dates
- MLB schedule typically becomes available in September of the previous year. This release may differ year-to-year depending on seasonal demands.
Updated 3 days ago
