Global Baseball API – Improved Inning and Play Start and End Timeline Behavior
We've enhanced the behavior of inning start and inning end events in the Timeline endpoints of our Global Baseball API.
⭐ Benefit
These updates provide clearer inning and play boundaries within timeline responses, making it easier to build accurate play-by-play experiences, identify half-inning transitions, and group related events into complete play sequences.
Change 1: Removed inning_score_update Event
The event.type value of inning_score_update has been removed going forward, as it did not add meaningful value to the timeline story.
This event type was undocumented but could appear in timeline responses.
<event id="2329970266" type="inning_score_update" time="2026-04-16T11:05:23+00:00"
inning="6" inning_home_score="0" inning_away_score="0"/>Change 2: Added inning_half_end Event
We've added a new inning_half_end event type that is generated when a half-inning concludes.
Previously, timelines contained two consecutive inning_half_start events during the transition between half-innings, making it difficult to determine exactly when a half-inning ended.
Going forward, an inning_half_end event will be generated when the half-inning concludes, followed by an inning_half_start event when the next half-inning begins.
Previous Behavior:
<event id="2329970334" type="inning_half_start" time="2026-04-16T11:05:26+00:00"/>
<!-- ~3 minute break between half-innings -->
<event id="2329972868" type="inning_half_start" time="2026-04-16T11:08:44+00:00" inning_half="top"/>New Behavior:
<event id="2329970334" type="inning_half_end" time="2026-04-16T11:05:26+00:00"/>
<!-- ~3 minute break between half-innings -->
<event id="2329972868" type="inning_half_start" time="2026-04-16T11:08:44+00:00" inning_half="top"/>Change 3: play_start and play_end Events
We've added play_start and play_end event types to the Timeline endpoints to clearly identify the beginning and end of each play sequence.
Previously, consumers had to infer play boundaries from the events that occurred during a play. This could be particularly challenging for multi-run scoring plays or other sequences containing multiple timeline events.
Going forward, each play will be wrapped by play_start and play_end events, making it easier to group related events together and accurately reconstruct play-by-play action.
Previous Behavior:
<event id="2182791814" type="ball_in_play" time="2025-11-02T01:00:29+00:00" inning_half="bottom">
<players>
<player id="sr:player:1100835" name="Bichette, Bo" type="batter"/>
</players>
</event>
<event id="2182791914" type="run_scored" time="2025-11-02T01:00:37+00:00" inning_half="bottom" scored_run_type="earned_run" starting_base="1" count_balls="0" count_strikes="0" outs="1">
<players>
<player id="sr:player:1100805" name="Guerrero Jr., Vladimir" type="runner"/>
<player id="sr:player:1100835" name="Bichette, Bo" type="batter"/>
</players>
</event>
<event id="2182791918" type="run_scored" time="2025-11-02T01:00:37+00:00" inning_half="bottom" scored_run_type="earned_run" starting_base="3" count_balls="0" count_strikes="0" outs="1">
<players>
<player id="sr:player:843127" name="Springer, George" type="runner"/>
<player id="sr:player:1100835" name="Bichette, Bo" type="batter"/>
</players>
</event>
<event id="2182791920" type="run_scored" time="2025-11-02T01:00:37+00:00" inning_half="bottom" scored_run_type="home_run" count_balls="0" count_strikes="0" outs="1">
<players>
<player id="sr:player:1100835" name="Bichette, Bo" type="runner"/>
<player id="sr:player:1100835" name="Bichette, Bo" type="batter"/>
</players>
</event>New Behavior:
<event id="2382615700" type="play_start" time="2026-06-09T09:33:22+00:00" inning_half="top">
<players>
<player id="sr:player:3147924" name="Gyun-an, Na" type="pitcher"/>
<player id="sr:player:1086530" name="Cameron, Daz" type="batter"/>
</players>
</event>
<event id="2382615790" type="ball_in_play" time="2026-06-09T09:33:30+00:00" inning_half="top">
<players>
<player id="sr:player:3147924" name="Gyun-an, Na" type="pitcher"/>
</players>
</event>
<event id="2382615890" type="run_scored" time="2026-06-09T09:33:40+00:00" inning_half="top" scored_run_type="earned_run" starting_base="1" count_balls="2" count_strikes="0" outs="0">
<players>
<player id="sr:player:3148612" name="Soo-bin, Jung" type="runner"/>
<player id="sr:player:1086530" name="Cameron, Daz" type="batter"/>
</players>
</event>
<event id="2382615920" type="run_scored" time="2026-06-09T09:33:43+00:00" inning_half="top" scored_run_type="home_run" count_balls="0" count_strikes="0" outs="0">
<players>
<player id="sr:player:1086530" name="Cameron, Daz" type="runner"/>
<player id="sr:player:1086530" name="Cameron, Daz" type="batter"/>
</players>
</event>
<event id="2382615976" type="play_end" time="2026-06-09T09:33:48+00:00"/>⚠️ Integration Impact
- The undocumented
inning_score_updateevent type will no longer appear in timeline responses. - Consumers currently handling
inning_score_updateshould remove any related processing logic. - Consumers using consecutive
inning_half_startevents to infer the end of a half-inning should transition to using the newinning_half_endevent type. - New
play_startandplay_endevent types will now appear in timeline responses. - Consumers that process timeline events using event type filtering, validation rules, or enumerated event lists should update their integrations to recognize the new event types.
📋 Recommended Actions
- Review any timeline-processing logic that references
inning_score_update. - Update inning transition workflows to recognize the new
inning_half_endevent type. - If you currently infer the end of a half-inning from consecutive
inning_half_startevents, update your integration to useinning_half_enddirectly. - Update any event-type mappings, allowlists, or validation logic to support the new
play_startandplay_endevent types. - Consider using
play_startandplay_endto group related timeline events into complete play sequences. - Test timeline parsing against the updated event sequence before deployment.
☑️ Sample Request:
Sport Event Timeline
curl --request GET \
--url https://api.sportradar.com/baseball/trial/v2/en/sport_events/{sport_event_id}/timeline.json \
--header 'accept: application/json' \
--header 'x-api-key: YOUR_API_KEY'🔢 Versions
🔁 Endpoints Affected
- Live Timelines
- Live Timelines Delta
- Sport Event Timeline
