Overview
The improved NPB/KBO timeline moves from a generic, score-only event stream to a pitch-by-pitch, player-attributed feed with baseball-native terminology. The following documents 5 representative updates
demonstrating the key structural changes.
Source game: Hanwha Eagles vs Samsung Lions — sr:sport_event:67203934 — KBO League 2026, 14 April
2026
https://api.sportradar.com/baseball/trial/v2/en/sport_events/sr:sport_event:67203934/timeline.json
Endpoints Affected
Update 1 — Inning Start
Old — period_start (generic, sport-agnostic language)
{
"id": "2328046560",
"type": "period_start",
"time": "2026-04-14T10:01:52+00:00",
"period_name": "1st_half"
}New — inning_half_start (baseball-native)
{
"id": 2328025702,
"type": "inning_half_start",
"time": "2026-04-14T09:31:01+00:00",
"inning_half": "top"
}
period_start+period_name: "1st_half" is replaced byinning_half_start+inning_half(top,bottom) — terminology now maps directly to baseball convention.
Update 2 — Individual Pitch
Old — No equivalent
New — pitch-result
{
"id":2328026198,
"type":"pitch_result",
"time":"2026-04-14T09:31:46+00:00",
"players":[
{
"id":"sr:player:2777589",
"name":"Dong-Ju, Moon",
"type":"pitcher"
}
],
"inning_half":"top",
"result":"ball",
"count_balls":1,
"count_strikes":0,
"outs":1
}The old feed had no pitch-level data. The new feed emits every pitch with pitcher ID, result (
ball,strike,foul), and running ball-strike count.
Update 3 — Out Recorded
Old — No equivalent
New — out_recorded
{
"id":2328026064,
"type":"out_recorded",
"time":"2026-04-14T09:31:32+00:00",
"players":[
{
"id":"sr:player:3167744",
"name":"Seung-kyu, Park",
"type":"batter"
}
],
"inning_half":"top",
"out_type":"ground_out",
"outs":1,
"count_balls":0,
"count_strikes":0,
"home_score":0,
"away_score":0
}The old feed had no out events. The new feed captures each out with batter identity, out type (
ground_out,fly_out,strikeout, etc.) and a running out count.
Update 4 — Run Scored (replaces score_change)
score_change)Old — score_change (no player context)
{
"id": "2328053324",
"type": "score_change",
"time": "2026-04-14T10:10:51+00:00",
"competitor": "away",
"home_score": 0,
"away_score": 1
}New — run_scored + inning_score_update
{
"id":2328056170,
"type":"run_scored",
"time":"2026-04-14T10:14:35+00:00",
"players":[
{
"id":"sr:player:3155642",
"name":"Won-seok, Lee",
"type":"runner"
}
],
"inning_half":"bottom",
"scored_run_type":"earned_run",
"starting_base":1,
"count_balls":0,
"count_strikes":0,
"outs":2
}
score_changeis replaced byrun_scored(identifies the scoring runner, earned/unearned, and the base they started from) paired withinning_score_updatefor the inning-level score ledger.
Update 5 — At-Bat Result
Old — No equivalent
New — at_bat_result
{
"id": 2328194098,
"type": "at_bat_result",
"time": "2026-04-14T13:15:13+00:00",
"players": [
{
"id": "sr:player:3166756",
"name": "Sei-hyok, Park",
"type": "batter"
}
],
"outcome": "single",
"is_out": false,
"outs_on_play": 0,
"outs": 0,
"inning_half": "top",
"advancement_type": "single",
"starting_base": 0,
"ending_base": 1,
"count_balls": 0,
"count_strikes": 0,
"pitch_count": 0,
"errors": 0
},The old feed only tracked scoring plays. The new feed closes every at-bat with its final outcome
(walk,single,double, etc.), whether it resulted in an out, and how the batter advanced.
Summary of Changes
| Aspect | Old (Global) | New (Baseball-Specific) |
|---|---|---|
| Granularity | Score changes only | Every pitch |
| Terminology | Generic (period_start, break_start) | Baseball-native (inning_half_start, out_recorded) |
| Player Attribution | None | Pitcher, batter, runner on every event |
| Out Tracking | Not present | out_recorded with out_type + running count |
| Score events | Single score_change | run_scored (runner detail) + inning_score_update |
| At-bat outcomes | Not present | at_bat_result with outcome + advancement type |
| Count tracking | Not present | count_balls / count_strikes on every pitch/out |
Timeline Data Points
Browse drop-downs below for definitions of all new Timeline data points. Or reference the updated Global Baseball OpenAPI spec.
Game Timeline
| Attribute | Parent Element | Type | Description |
|---|---|---|---|
advancement_type | timeline - event | String | Information on how a batter advanced on a playunknown, catcher_interference, hit_by_pitch, on_error, single, double, triple, sacrifice_bunt, sacrifice_fly, walk, fielders_choice, other |
ball_in_play_type | timeline - event | String | Indicates, along with type="ball_in_play, that a batter struck a ball into play. The following event indicates the outcome of the ball in play. |
base | timeline - event | Integer | Base associated with a runner_check event type |
count_balls | timeline - event | Integer | Number of balls in an at bat, after an event |
count_strikes | timeline - event | Integer | Number of strikes in an at bat, after an event |
ending_base | timeline - event | Integer | Ending base number for a player after an event |
errors | timeline - event | Integer | Number of errors in a play |
id | timeline - event | String | Unique Id of a timeline event ex. 2182830584 |
inning | timeline - event | Integer | Inning number associated with a timeline event. Typically populates at the end of a full innning along with a inning_score_update. |
inning_half | timeline - event | String | Indicates the type of inning associated with a timeline event ex. top, bottom |
inning_away_score | timeline - event | Integer | Number of runs scored for the away team in an inning. Typically populates at the end of a full innning along with a inning_score_update. |
inning_home_score | timeline - event | Integer | Number of runs scored for the home team in an inning. Typically populates at the end of a full innning along with a inning_score_update. |
is_out | timeline - event | Boolean | Signifies an out was recorded for an event when true |
on_base_type | timeline - event | String | Method of reaching base for a player. Typically associated with a player_on_base event type.ex. single, walk, hit_by_pitchSee enum_on_base_type in our Global Baseball spec for a complete list of types |
outcome | timeline - event | String | Outcome of an at bat ex. single, double, walk |
out_base | timeline - event | Integer | Base number where an out was recorded |
out_type | timeline - event | String | Type of out recorded for an event. Typically associated with a player_out event type.ex. strikeout, force_out, ground_outSee enum_out_type in our Global Baseball spec for a complete list of types |
outs | timeline - event | Integer | Number of current outs in an inning |
outs_on_play | timeline - event | Integer | Number of outs assocated with an event |
pitch_number | timeline - event | Integer | Pitch number of an at bat |
qualifier | timeline - event | String | Designation of a competitor for a timeline event. Typically used for a substitution event type.home, away |
result | timeline - event | String | Result of a pitch ex. ball, strike, foul |
scored_run_type | timeline - event | String | Type of out run for an event. Typically associated with a run_scored event type.ex. strikeout, force_out, ground_outSee enum_scored_run_type in our Global Baseball spec for a complete list of types |
starting_base | timeline - event | Integer | Starting base number for a player after an event |
time | timeline - event | Date-time | Timestamp of a timeline event ex. 2024-04-16T20:49:49+00:00 |
type | timeline - event | String | Type of timeline event ex. match_started, run_scored, player_out, substitution, strikeSee enum_event_type in our Global Baseball spec for a complete list of event types |
Player (Timeline Event)
| Attribute | Parent Element | Type | Description |
|---|---|---|---|
id | timeline - event - player | String | Unique ID of a player associated with an event ex. sr:player:1396097 |
name | timeline - event - player | String | Name of a player associated with an event ex. Varsho, Daulton |
type | timeline - event - player | String | Player type associated with an event ex. batter, pitcher, runner, substituted_out, substituted_in |
