GuidesRelease Log
Coverage MatrixDocumentationChange LogLog InContact Us
Release Log

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_update event type will no longer appear in timeline responses.
  • Consumers currently handling inning_score_update should remove any related processing logic.
  • Consumers using consecutive inning_half_start events to infer the end of a half-inning should transition to using the new inning_half_end event type.
  • New play_start and play_end event 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_end event type.
  • If you currently infer the end of a half-inning from consecutive inning_half_start events, update your integration to use inning_half_end directly.
  • Update any event-type mappings, allowlists, or validation logic to support the new play_start and play_end event types.
  • Consider using play_start and play_end to 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