Browse by category below. Select any group or question to jump straight to it. Use your browser's find (Ctrl/Cmd + F) to search the page.
Table of Contents
Getting Started
Coverage
How is each MLB game covered?
Coverage information for MLB can be found here.
Integration
Are simulations available for this API?
Yes! You can replay past games as though they were live using our on-demand Simulations service.
What format are date fields presented in?
Date values are presented in the ISO 8601 standard format.
Timestamp fields are in UTC. These could include scheduled start times or play-by-play event timestamps. Examples: scheduled="2024-02-11T23:30:00+00:00", created_at="2024-02-11T23:43:20+00:00"
Date-only fields reflect local league convention and are not UTC-adjusted. These could include season start dates and birth dates. Examples: start_date="2024-08-16", date_of_birth="1984-09-22"
How do I locate the TTL (Time to Live)/cache on an API endpoint?
The cache (in seconds) can be accessed in the returned header information on each RESTful API call, under cache-control.
ex. cache-control: max-age=1, public, s-maxage=1 or
cache-control: public, must-revalidate, max-age=120
Note that, for select game-centric endpoints, the TTL may adjust when an event is live. This information is available for each endpoint on our developer portal.
What are the valid entry mode values for a game?
Here are the valid entry mode values:
STOMPLDE
How do you handle the A's move to Sacramento?
Following the Oakland Athletics’ temporary relocation to Sacramento, the team name has been updated from “Oakland Athletics” to simply “Athletics.” As a result, the market value “Oakland” is no longer associated with the team.
You’ll see the team listed as shown below in the Teams endpoint, as well as in all other endpoints that include team data:
<team name="Athletics" abbr="ATH" id="27a59d3b-ff7c-48ea-b016-4798f560f5e1" />
Data Workflow
How can I find timings for data entry updates?
Our MLB Data Entry Workflow section covers data availability updates. This includes updates for transactions, lineups, injuries, stat validation, and more.
Learn more: the Update Frequencies guide details how often each feed refreshes.
How do you monitor and update probable pitchers?
We verify probable pitchers hourly against multiple sources. See our Game Status Workflow for more detailed info.
ID Handling
Other sports like NBA and NFL have SR_IDs available for entities such as teams and players. How can I access those SR_IDs for MLB?
We do not support SR_IDs at this time within the MLB API. Our current suggestion is to utilize two of our Odds Comparison Prematch v2 feeds to retrieve this data. For players, please use the Player Mappings endpoint. For games, please use the Sport Event Mappings endpoint. Please note that these feeds will have IDs for a variety of sports that Sportradar covers.
Learn more: the ID Handling guide explains how MLB UUIDs are structured and reused across feeds to link related data.
Game Data
Game Statuses
What are the valid game statuses and their definitions?
Here are the valid game statuses and their definitions. This information can also be found in our glossary feed:
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.
Learn more: see the Game Status Workflow guide for how each status maps to the right endpoint.
Play Outcomes
What are the valid outcome types and their definitions?
Here are the valid outcome types and their definitions:
pitch- The last event logged was a pitchsteal- The last event logged was a steallineup- The last event logged was a lineup changehalf_start- The last event logged is the start of an inning halfhalf_over- The last event logged is the end of an inning halfevent_start- The game has begunevent_over- The game is overrunner_placed- The last event logged was a runner placed on second base to start an extra inning
<outcome type="pitch" current_inning="4" current_inning_half="T">"outcome": {
"type": "pitch",
"current_inning": 4,
"current_inning_half": "T",
"count": {
"balls": 1,
"strikes": 2,
"outs": 1,
"inning": 4,
"inning_half": "T",
"half_over": false
},What are the valid pitch outcomes and their definitions?
Here are the valid pitch outcomes and their definitions. This information can also be found in our glossary feed:
aBK- BalkaCI- Catcher InterferenceaD- DoubleaDAD3- Double - Adv 3rdaDAD4- Double - Adv HomeaFCAD2- Fielder's Choice - Adv 2ndaFCAD3- Fielder's Choice - Adv 3rdaFCAD4- Fielder's Choice - Adv HomeaHBP- Hit By PitchaHR- Home RunaIBB- Intentional WalkaKLAD1- Strike Looking - Adv 1staKLAD2- Strike Looking - Adv 2ndaKLAD3- Strike Looking - Adv 3rdaKLAD4- Strike Looking - Adv HomeaKSAD1- Strike Swinging - Adv 1staKSAD2- Strike Swinging - Adv 2ndaKSAD3- Strike Swinging - Adv 3rdaKSAD4- Strike Swinging - Adv HomeaROE- Reached On ErroraROEAD2- Reached On Error - Adv 2ndaROEAD3- Reached On Error - Adv 3rdaROEAD4- Reached On Error - Adv HomeaROV- Reached on ViolationaS- SingleaSAD2- Single - Adv 2ndaSAD3- Single - Adv 3rdaSAD4- Single - Adv HomeaSBAD1- Sacrifice Bunt - Adv 1staSBAD2- Sacrifice Bunt - Adv 2ndaSBAD3- Sacrifice Bunt - Adv 3rdaSBAD4- Sacrifice Bunt - Adv HomeaSFAD1- Sacrifice Fly - Adv 1staSFAD2- Sacrifice Fly - Adv 2ndaSFAD3- Sacrifice Fly - Adv 3rdaSFAD4- Sacrifice Fly - Adv HomeaT- TripleaTAD4- Triple - Adv HomebAB- Enforced BallbABP- Ball - Automatic (Pitch Timer Violation - Pitcher)bABC- Ball - Automatic (Pitch Timer Violation - Catcher)bABS- Ball - Automatic (Shift Violation)bB- BallbDB- Dirt BallbIB- Intentional BallbPO- PitchoutkAK- Enforced StrikekAKP- Strike - Automatic (Pitch Timer Violation)kAKB- Strike - Automatic (Batter Timeout Violation)kF- Foul BallkFT- Foul TipkKL- Strike LookingkKS- Strike SwingingoBI- Hitter InterferenceoDT2- Double - Tagged out at 2ndoDT3- Double - Out at 3rdoDT4- Double - Out at HomeoFC- Fielder's ChoiceoFCT2- Fielder's Choice - Out at 2ndoFCT3- Fielder's Choice - Out at 3rdoFCT4- Fielder's Choice - Out at HomeoFO- Fly OutoGO- Ground OutoKLT1- Strike Looking - Out at 1stoKLT2- Strike Looking - Out at 2ndoKLT3- Strike Looking - Out at 3rdoKLT4- Strike Looking - Out at HomeoKST1- Strike Swinging - Out at 1stoKST2- Strike Swinging - Out at 2ndoKST3- Strike Swinging - Out at 3rdoKST4- Strike Swinging - Out at HomeoLO- Line OutoOBB- Out of Batters BoxoOP- Out on AppealoPO- Pop OutoROET2- Reached On Error - Out at 2ndoROET3- Reached On Error - Out at 3rdoROET4- Reached On Error - Out at HomeoSB- Sacrifice BuntoSBT2- Sacrifice Bunt - Out at 2ndoSBT3- Sacrifice Bunt - Out at 3rdoSBT4- Sacrifice Bunt - Out at HomeoSF- Sacrifice FlyoSFT2- Sacrifice Fly - Out at 2ndoSFT3- Sacrifice Fly - Out at 3rdoSFT4- Sacrifice Fly - Out at HomeoST1- Single - Tagged out at 1stoST2- Single - Out at 2ndoST3- Single - Out at 3rdoST4- Single - Out at HomeoTT3- Triple - Tagged out at 3rdoTT4- Triple - Out at HomerPABC- Ruling Pending, At Bat ContinuesrPABO- Ruling Pending, At Bat Over
<pitch status="official" id="1f3f6dbf-2313-4863-b94a-2053e4e3ee3d" outcome_id="kF" created_at="2023-09-20T19:01:20+00:00" updated_at="2023-09-20T19:01:46+00:00" sequence_number="129" official="true">"events": [
{
"status": "official",
"id": "69969a8c-5926-4483-a04c-d5e627fe83ce",
"outcome_id": "kKL",
"created_at": "2023-09-20T18:12:09+00:00",
"updated_at": "2023-09-20T18:14:42+00:00",
"sequence_number": 3,
"official": true,
"type": "pitch",
"wall_clock": {
"start_time": "2023-09-20T18:11:54+00:00",
"end_time": "2023-09-20T18:12:11+00:00"
}What are the valid runner outcomes and their definitions?
Here are the valid runner outcomes and their definitions. This information can also be found in our glossary feed:
CK- CheckedERN- Earned Run/RBIeRN- Earned Run/No RBIERNu- Player earned run, team unearned/RBIeRNu- Player earned run, team unearned/ no RBIURN- Unearned Run/RBIuRN- Unearned Run/No RBIPO- PickoffPOCSC- Catcher PickoffPOCS2- Pickoff/Caught Stealing 2ndPOCS3- Pickoff/Caught Stealing 3rdPOCS4- Pickoff/Caught Stealing HomeAD1- Advance 1stAD2- Advance 2ndAD3- Advance 3rdSB2- Stole 2ndSB2E4E- Stole 2nd, error to home (earned)SB2O2- Stole 2nd, out at 2ndSB2O3- Stole 2nd, out at 3rdSB2O4- Stole 2nd, out at HomeSB3- Stole 3rdSB3E4E- Stole 3rd, error to home (earned)SB3O3- Stole 3rd, out at 3rdSB3O4- Stole 3rd, out at HomeSB4- Stole HomeTO- Tag out 1stTO2- Tag out 2ndTO3- Tag out 3rdTO4- Tag out HomeFO1- Force out 1stFO2- Force out 2ndFO3- Force out 3rdFO4- Force out HomeCS2- Caught Stealing 2ndCS3- Caught Stealing 3rdCS4- Caught Stealing HomeCS2AD3- Caught stealing 2nd, advanced 3rdCS2AD4- Caught stealing 2nd, advanced HomeCS2AD4u- Caught stealing 2nd, advanced Home, Unearned RunCS3AD4- Caught stealing 3rd, advanced HomeCS3AD4u- Caught stealing 3rd, advanced Home, Unearned RunSB2AD3- Steal 2nd, advanced 3rdSB2AD4- Steal 2nd, advanced HomeSB2AD4u- Steal 2nd, advanced Home, Unearned RunSB2E2- Stole 2nd, error to 2ndSB2E3- Stole 2nd, error to 3rdSB2E4- Stole 2nd, error to HomeSB3AD4- Steal 3rd, advanced HomeSB3AD4u- Steal 3rd, advanced Home, Unearned RunSB3E4- Stole 3rd, error to HomeSB4u- Stole Home, Unearned RunDI2- Indifference to 2ndDI3- Indifference to 3rdDO1- Doubled off 1stDO2- Doubled off 2ndDO3- Doubled off 3rdRI- Runner InterferenceOOA- Out on AppealOBP- Out of Base PathHBB- Hit by Batted Ball
<runners>
<runner starting_base="0" ending_base="4" out="false" outcome_id="ERN" preferred_name="Nelson" first_name="Nelson" last_name="Velázquez" jersey_number="17" id="ea7b7c30-a1e8-4a30-abd6-dd777ab75b35"/>
<runner outcome_id="URN" starting_base="1" ending_base="4" out="false" preferred_name="Bobby" first_name="Robert" last_name="Witt Jr." jersey_number="7" id="0f20f69e-28c9-4fb4-8b1e-cde154780682">
<description>Bobby Witt Jr. scores.</description>
</runner>
<runner outcome_id="ERN" starting_base="3" ending_base="4" out="false" preferred_name="Maikel" first_name="Maikel" last_name="Garcia" jersey_number="11" id="3c07814a-966e-4358-82f5-f59c32af8c94">
<description>Maikel Garcia scores.</description>
</runner>
</runners>"runners": [
{
"starting_base": 0,
"ending_base": 4,
"out": false,
"outcome_id": "ERN",
"preferred_name": "Nelson",
"first_name": "Nelson",
"last_name": "Velázquez",
"jersey_number": "17",
"id": "ea7b7c30-a1e8-4a30-abd6-dd777ab75b35"
},
{
"starting_base": 1,
"ending_base": 4,
"out": false,
"outcome_id": "URN",
"description": "Bobby Witt Jr. scores.",
"preferred_name": "Bobby",
"first_name": "Robert",
"last_name": "Witt Jr.",
"jersey_number": "7",
"id": "0f20f69e-28c9-4fb4-8b1e-cde154780682"
},
{
"starting_base": 3,
"ending_base": 4,
"out": false,
"outcome_id": "ERN",
"description": "Maikel Garcia scores.",
"preferred_name": "Maikel",
"first_name": "Maikel",
"last_name": "Garcia",
"jersey_number": "11",
"id": "3c07814a-966e-4358-82f5-f59c32af8c94"
}
]Pitch Zone, Speed, Types & Location
You are tracking pitch speed and location. Can I expect this information to show up for all pitches and all games?
Pitch speed and location are expected for all games played in all 30 MLB home venues. However, these data points may not be present for all Spring Training venues or for games played in non-MLB venues (example: Williamsport, PA – ID 2c26f3ab-4d19-4b64-93b0-3279b13d7314).
What do the pitch zone attributes represent, and why are there more than one?
We have two pitch zone attributes available (pitch_zone and zone), and it is important to distinguish between the two.
pitcher - pitch_zone
The pitch_zone attribute is from the pitcher's point of view and divides the pitch location into 13 zones. The strike zone is represented by zones 1-9. This data is available beginning in the 2013 season.
mlb_pitch_data - zone
The zone attribute within mlb_pitch_data is from the batter's point of view and divides the pitch location into 14 zones. The strike zone is represented by zones 1-9. This data is available beginning in the 2020 season.
You are tracking pitch x/y location. How can I expect this information to appear?
The pitch x/y values will be a percentage distance from the center of the strike zone, in positive or negative values from approximately -300% to +300% for x, and approximately -200% to +200% for y.
For pitch_x, -100 represents the right edge of the strike zone (zones 3, 6, & 9) and +100 represents the left edge of the strike zone (zones 1, 4, and 7). The middle zones (2, 5, and 8) are -35 to +35.
Which valid pitch types you track and what are their definitions?
Here are the valid pitch types and their definitions. This information can also be found in our glossary feed:
FA- FastballSI- SinkerCT- CutterCU- CurveballSL- SliderCH- ChangeupKN- KnuckleballSP- SplitterSC- ScrewballFO- ForkballEP- EephusIB- Intentional BallPI- Pitchout- Null (empty)
Hit Types & Location
What are the valid hit types I can expect to appear?
Here are the valid hit types:
GB- Ground ballFB- Fly ballLD- Line drivePU- Popup
<pitch hit_location="16" hit_type="GB" status="official" id="0da18b87-c514-4ac4-b0ca-2a0a0e88131c" outcome_id="aROE" created_at="2023-09-20T18:19:29+00:00" updated_at="2023-09-20T18:19:45+00:00" sequence_number="22" official="true">You are tracking hit location. Do you have a diagram showing the field and its corresponding zones?
We break the field up into 35 zones. Here is an illustration:
What are the x,y coordinates for on-field hit location?
Here are the coordinates for each MLB base (x,y):
- 1B - (150,175)
- 2B - (125,150)
- 3B - (100,175)
- Pitching Rubber - (125,177)
- Back tip of Home Plate - (125,200)
Pitch / Hit Data Descriptions
What are the valid values for mlb_pitch_data – code and what are their descriptions?
mlb_pitch_data – code and what are their descriptions?Here are the valid pitch codes and their descriptions:
FA- FastballFF- Four-seam FBFC- CutterSI- SinkerFS- SplitterFO- ForkballCH- ChangeupSC- ScrewballSL- SliderCU- CurveballCS- Slow CurveKC- Knuckle CurveSV- SlurveST- SweeperFL- SlutterGY- GyroballKN- KnuckleballEP- Eephus PitchIN- Intentional BallPO- PitchoutAB- Automatic BallAS- Automatic StrikeNP- No PitchUN- Unknown
<mlb_pitch_data speed="79.2" strike_zone_top="3.5" strike_zone_bottom="1.64" zone="8" code="CH" description="Changeup">What are the definitions for the data points within mlb_hit_data?
mlb_hit_data?Here are the valid data point descriptions:
launch_speed- Measured speed of the hit ball in miles per hourlaunch_angle- Vertical angle relative to the horizon at which the hit was launchedtotal_distance- Total distance a ball traveled in feettrajectory- The trajectory description of a hit ballhardness- Soft, Medium, or Hard descriptionlocation- Positional number of ball locationcoordinates- Coordinates entered by operator in pressbox of where the ball is fielded. Based on 250x250 field graphic, where 0,0 is in the upper left corner, in very deep left field, and 250,250 is in the lower right corner, in foul territory between 1B and home plate. The fields are centered in that space, the x=125 axis runs through the middle of 2B, the pitcher’s mound and home plate; the 1B and 3B bases are roughly aligned on the y=175 line.coord_x- X coordinate marked by operator of where the ball was fieldedcoord_y- Y coordinate marked by operator of where the ball was fielded
What are the definitions for the data points within mlb_pitch_data?
mlb_pitch_data?Here are the valid data point descriptions:
break_angle- Degrees clockwise (batter’s view) that the plane ofthe pitch deviates from the vertical.break_length- Max distance (in inches) that the pitch separates from the straight line between pitch start and pitch endbreak_y- Distance (in feet) from home plate where the break is greatestcode- The pitch type classification code (see above for a list of values).coordinate a_x- Ball acceleration on the x axis.coordinate a_y- Ball acceleration on the y axis.coordinate a_z- Ball acceleration on the z axis.coordinate pfx_x- Horizontal movement of the ball in inches.coordinate pfx_z- Vertical movement of the ball in inches.coordinate p_x- Horizontal position in feet of the ball as it crosses the front axis of home plate.coordinate p_z- Vertical position in feet above home plate of the ball as it crosses the front axis of home plate.coordinate v_x0- Velocity of the ball from the x axis.coordinate v_y0- Velocity of the ball from the y axis; this is negative because 0,0,0 is behind the batter and the ball travels from pitcher mound towards 0,0,0.coordinate v_z0- Velocity of the ball from the z axis.coordinate x- X coordinate where pitch crossed front of home plate.coordinate y- Y coordinate where pitch crossed front of home plate.coordinate x0- Coordinate location of the ball at the point it was released from the pitchers hand on the x axis (time = 0).coordinate y0- Coordinate location of the ball at the point it was released from the pitchers hand on the y axis (time = 0).coordinate z0- Coordinate location of the ball at the point it was released from the pitchers hand on the z axis (time = 0).description- Text description of the pitch type.end_speed- Speed in MPH of the ball as it crosses the front edge of home plate (0,0 in the x axis).extension- Measure of the true release point from the pitching rubber; distance in feet closer to home plate than the 60.5 ft from pitching rubber to home.plate_time- Time from pitchers release until the ball is projected to reach the back tip of home plate or struck by the bat.spin_direction- The axis of rotation for the ball at release given as an angle that reflects how the spin will influence the ball trajectory. Pure back-spin is 180 degrees, pure side-spin that puts the ball to the 1b side is 90 degrees, pure-side spin that pulls the ball to the 3b side is 270 degrees, and pure top-spin is 0 or 360 degrees.spin_rate- Rate of spin on the ball after it was released by pitcher. RPMs.start_speed- Speed in MPH of the ball at 50 feet in front of homeplate.strike_zone_bottom- Distance in inches from ground to bottom of batter strike zone.strike_zone_top- Distance in inches from ground to top of batter strike zone.
What are the valid pitch status values?
Here are the valid pitch status values:
officialunder reviewoverturnedupheld
Data Failover
What events will be logged during a failover game?
During a failover game, you should expect a minimized data point set.
Event Types
pitch- The last event logged was a pitchsteal- The last event logged was a steallineup- The last event logged was a lineup changehalf_start- The last event logged is the start of an inning halfhalf_over- The last event logged is the end of an inning halfevent_start- The game has begunevent_over- The game is over
Event Data Points
- Current Batter
- Current Pitcher
- Batter handedness
- Pitcher handedness
- Starting Base
- Ending Base
- Pitch Outcome
- Runner Outcome
- Putouts
- Assists
- Errors
Players & Personnel
Player Statuses
What are the valid player statuses and their definitions?
Here are the valid player statuses and their definitions. This information can also be found in our glossary feed:
A- ActivatedBRV- Bereavement ListD7- 7 Day Injured ListD10- 10 Day Injured ListD15- 15 Day Injured ListD60- 60 Day Injured ListDFA- Designated for assignmentFA- Free AgentFME- Family Medical EmergencyLV- Paid LeaveMIN- MinorsNRI- Non-roster InvitePL- Paternity LeaveRST- RestrictedRET- RetiredSUS- SuspendedUDP- Unsigned Draft PickWV- Waivers- Null (blank) = Traded or not activated*
- Traded players temporarily have no status listed after they are traded to a new team and are either activated by the MLB club or assigned to a minor league affiliate.
Learn more: the Tracking Lineups and Game Rosters guide covers how roster and lineup data is retrieved.
What are the valid player injury statuses?
Here are the valid player injury statuses:
D7D10D15D60Day-to-DayUnknown
Lineup Positions
What are the valid lineup positions and their definitions?
Here are the valid lineup positions and their definitions. Please note, this is how the information is presented in the following feeds: Daily Summary, Game Summary, and Play-by-Play.
1- Pitcher2- Catcher3- First Base4- Second Base5- Third Base6- Shortstop7- Left Field8- Center Field9- Right Field10- Designated Hitter11- Pinch Hitter12- Pinch Runner
Here are the valid roster positions and their definitions.
C- CatcherDH- Designated HitterIF- InfieldOF- OutfieldP- Pitcher
Here are the valid roster primary positions and their definitions.
C- Catcher1B- First Base2B- Second Base3B- Third BaseSS- ShortstopLF- Left FieldCF- Center FieldP- PitcherRF- Right FieldRP- Relief PitcherSP- Starting PitcherDH- Designated Hitter
<roster>
<player preferred_name="Mookie" first_name="Markus" last_name="Betts" jersey_number="50" id="084d2514-9ffb-414e-ae16-3bc690aaad51" status="A" position="OF" primary_position="RF"/>
<player preferred_name="Corey" first_name="Corey" last_name="Seager" jersey_number="5" id="ca159e78-05a9-410a-be7b-3ebad5496a88" status="A" position="IF" primary_position="SS"/>
<player preferred_name="AJ" first_name="Allen" last_name="Pollock" jersey_number="11" id="d5b0fb7b-93d4-4c45-820f-069f622855c8" status="A" position="OF" primary_position="LF"/>
<player preferred_name="Albert" first_name="Jose" last_name="Pujols" jersey_number="55" id="fb061c77-5253-4181-ad7b-c68ef18aa511" status="A" position="IF" primary_position="1B"/>
</roster>
<lineup>
<player id="084d2514-9ffb-414e-ae16-3bc690aaad51" inning="0" order="1" position="9" sequence="1"/>
<player id="ca159e78-05a9-410a-be7b-3ebad5496a88" inning="0" order="2" position="6" sequence="2"/>
<player id="67dc86a1-cc03-41ae-ba7d-e5b8434c83e8" inning="0" order="3" position="4" sequence="3"/>
<player id="893e5243-1278-476c-8801-280b9b14aea7" inning="0" order="4" position="5" sequence="4"/>
<player id="317b24ac-6a9b-4735-a4c5-64d879cd6bf7" inning="0" order="5" position="2" sequence="5"/>
<player id="d5b0fb7b-93d4-4c45-820f-069f622855c8" inning="0" order="6" position="7" sequence="6"/>
<player id="4f68ff33-816e-4038-a4fb-8676758f8f0b" inning="0" order="7" position="3" sequence="7"/>
<player id="bbe79e92-c56f-4e17-b5e4-6427c9fb7dce" inning="0" order="8" position="8" sequence="8"/>
<player id="2527770b-cf48-42b9-81fa-9323756fb311" inning="0" order="9" position="1" sequence="9"/>"roster": [
{
"preferred_name": "Mookie",
"first_name": "Markus",
"last_name": "Betts",
"jersey_number": "50",
"id": "084d2514-9ffb-414e-ae16-3bc690aaad51",
"status": "A",
"position": "OF",
"primary_position": "RF"
},
{
"preferred_name": "Corey",
"first_name": "Corey",
"last_name": "Seager",
"jersey_number": "5",
"id": "ca159e78-05a9-410a-be7b-3ebad5496a88",
"status": "A",
"position": "IF",
"primary_position": "SS"
},
{
"preferred_name": "AJ",
"first_name": "Allen",
"last_name": "Pollock",
"jersey_number": "11",
"id": "d5b0fb7b-93d4-4c45-820f-069f622855c8",
"status": "A",
"position": "OF",
"primary_position": "LF"
},
{
"preferred_name": "Albert",
"first_name": "Jose",
"last_name": "Pujols",
"jersey_number": "55",
"id": "fb061c77-5253-4181-ad7b-c68ef18aa511",
"status": "A",
"position": "IF",
"primary_position": "1B"
}
],
"lineup": [
{
"id": "084d2514-9ffb-414e-ae16-3bc690aaad51",
"inning": 0,
"order": 1,
"position": 9,
"sequence": 1
},
{
"id": "ca159e78-05a9-410a-be7b-3ebad5496a88",
"inning": 0,
"order": 2,
"position": 6,
"sequence": 2
},
{
"id": "67dc86a1-cc03-41ae-ba7d-e5b8434c83e8",
"inning": 0,
"order": 3,
"position": 4,
"sequence": 3
},
{
"id": "893e5243-1278-476c-8801-280b9b14aea7",
"inning": 0,
"order": 4,
"position": 5,
"sequence": 4
},
{
"id": "317b24ac-6a9b-4735-a4c5-64d879cd6bf7",
"inning": 0,
"order": 5,
"position": 2,
"sequence": 5
},
{
"id": "d5b0fb7b-93d4-4c45-820f-069f622855c8",
"inning": 0,
"order": 6,
"position": 7,
"sequence": 6
},
{
"id": "4f68ff33-816e-4038-a4fb-8676758f8f0b",
"inning": 0,
"order": 7,
"position": 3,
"sequence": 7
},
{
"id": "bbe79e92-c56f-4e17-b5e4-6427c9fb7dce",
"inning": 0,
"order": 8,
"position": 8,
"sequence": 8
},
{
"id": "2527770b-cf48-42b9-81fa-9323756fb311",
"inning": 0,
"order": 9,
"position": 1,
"sequence": 9
},
{
"id": "5189f789-b0fd-426a-96ef-2e1706f12cfd",
"inning": 5,
"order": 9,
"position": 1,
"sequence": 10,
"inning_half": "T"
},
{
"id": "4d98a6ec-d2d4-4b23-8e4d-d44e0e828512",
"inning": 5,
"order": 9,
"position": 11,
"sequence": 11,
"inning_half": "B"
},
{
"id": "43862b88-c119-4625-b138-f3c5ea1b8b06",
"inning": 6,
"order": 9,
"position": 1,
"sequence": 12,
"inning_half": "T"
},
{
"id": "a6d72a5b-db58-48c4-9bda-7b8eb22ab5d0",
"inning": 7,
"order": 9,
"position": 7,
"sequence": 13,
"inning_half": "T"
},
{
"id": "abf9a77c-6b7f-40f8-a0ea-df8353ae7a8b",
"inning": 7,
"order": 6,
"position": 1,
"sequence": 14,
"inning_half": "T"
},
{
"id": "227d4963-6493-4bcc-ad19-8c66cf8fa9e0",
"inning": 8,
"order": 7,
"position": 3,
"sequence": 15,
"inning_half": "T"
},
{
"id": "b6840f51-9f1c-4f25-b40b-32e360397be9",
"inning": 8,
"order": 6,
"position": 1,
"sequence": 16,
"inning_half": "T"
},
{
"id": "9e798b78-22d9-44df-a4c3-fc9db6c0133d",
"inning": 9,
"order": 6,
"position": 1,
"sequence": 17,
"inning_half": "T"
},
{
"id": "bee1e3eb-c746-40c1-a129-e487e27312de",
"inning": 9,
"order": 6,
"position": 11,
"sequence": 18,
"inning_half": "B"
},
{
"id": "fb061c77-5253-4181-ad7b-c68ef18aa511",
"inning": 9,
"order": 6,
"position": 11,
"sequence": 19,
"inning_half": "B"
},
{
"id": "2cfe41eb-a26d-45b0-8b7c-22536e59db28",
"inning": 9,
"order": 7,
"position": 11,
"sequence": 20,
"inning_half": "B"
}
],Transaction Codes & Types
What are the valid transaction_code and transaction_type values?
transaction_code and transaction_type values?Here are the valid transaction codes and types:
ACT- ActivatedMIN- Assigned to MinorsCL- ClaimedCEXP- Contract ExpiredCEXT- Contract ExtensionDEC- DeceasedFA- Declared Free AgencyDFA- Designated for AssignmentDRA- DraftedR5- Drafted Via Rule 5 DraftSUS- League SuspensionABS- Leave of AbsenceNRI- Non-Roster InviteeNWT- Not with TeamTRAN- Other TransactionIL10- Placed on the 10-Day Injury ListIL60- Placed on the 60-Day Injury ListIL7- Placed on the 7-Day Injured ListBRV- Placed on Bereavement ListFME- Placed on Family Medical Emergency LeavePL- Placed on Paternity LeaveRST- Placed on Restricted ListIL15- Placed on the 15-Day Injury ListRSGN- Re-SignedREC- Recalled from MinorsRRST- Reinstated from Restricted ListRSUS- Reinstated from SuspensionREL- ReleasedRET- RetiredEDRA- Selected in Expansion DraftSGN- SignedTSUS- Team SuspensionTRD- TradedWA- Waived
Roster Updates
How do you handle players who are scheduled to start a future game, but are not currently on the team profile?
There is a case where a team has set a pitcher as a probable starter, but he is not on the profile. When this occurs, we will update the player, denoting that he has not officially joined the squad but is scheduled to join. The entry will be found in the Team Profile feed. We will include all the information about the player, including the date he is expected to officially join the team. Here is a sample of what this will look like:
<expected_players>
<player id="29a80d91-946d-4701-af7d034850bdef00" status="A" position="IF" primary_position="2B" first_name="James" last_name="Dozier" preferred_name="Brian" jersey_number="2" full_name="Brian Dozier" mlbam_id="572821" height="71" weight="200" throw_hand="R" bat_hand="R" college="Southern Mississippi" high_school="Itawamba Agricultural, Fulton, MS" birthdate="1987-05-15" birthstate="MS" birthcountry="USA" birthcity="Tupelo" pro_debut="2012-05-07" updated="2017-02-14T15:15:47Z" expected_date="2017-02-14" />
</expected_players>Umpire Assignments
What are the valid umpire assignments and their definitions?
Here are the valid umpire assignments and their definitions:
HP- Home plate umpire1B- 1st base umpire2B- 2nd base umpire3B- 3rd base umpireLF- Left field umpireRF- Right field umpire
Statistics
Seasonal Statistics
When can I expect seasonal data to update in the Player Profile and Seasonal Statistics endpoints?
Most statistics will be available once a game is finalized, but the following seasonal stats are updated each morning during the MLB season.
- Position Player WAR (
war) - Batting WAR (
bwar) - Baserunning WAR (
brwar) - Fielding WAR (
fwar) - Weighted Grounded into Double Plays (
wgdp) - Weighted On-Base Average (
woba) - Weighted Runs Above Average (
wraa) - ERA- (
era_minus) - Pitching WAR (
war) - Fielding Independent Pitching (
fip) - Expected Fielding Independent Pitching (
xfip)
Please note that these statistics are available per team and season only. They are not available as a cumulative total (season.totals) should a player appear for more than one team in a season.
How are statistics handled for players who switch teams mid-season?
The player profile feed divides statistics by team, so there would be a relevant team entry for each team that the player played on. We also provide overall total statistics that cover the whole season.
Why are some data points missing for years prior to 2018?
In version 6.5 we added several data points that we previously had not collected data for. Those statistics will appear only for 2018 forward.
Statcast Data
What is Statcast data and how can I gain access?
See our Statcast Data section for info on this package.
What metrics do you track in the Event Tracking endpoint, and how far back does this data go?
Event tracking is available beginning in the 2022 postseason. Click here for a comprehensive list of metrics and their definitions.
Reference Data
Standings & Rankings
What are the valid clinched playoff values for a team in the Rankings endpoint?
clinched playoff values for a team in the Rankings endpoint?Here are the valid clinched values and their definitions:
division- The team has clinched the division titledivision_homefield- The team has clinched the division title as well as home field advantageplayoff_berth- The team has clinched a berth into the postseasonwildcard- The team has clinched a wildcard bertheliminated- The team has been eliminated from playoff contention
<division alias="W" name="West" id="dd76b332-7cfa-45f0-bed0-a6944d924a61">
<team name="Dodgers" market="Los Angeles" abbr="LAD" id="ef64da7f-cfaf-4300-87b0-9313386b977c">
<rank division="1" league="1" clinched="division"/>
</team>
<team name="Padres" market="San Diego" abbr="SD" id="d52d5339-cbdd-43f3-9dfa-a42fd588b9a3">
<rank division="2" league="4" clinched="wildcard"/>
</team>
<team name="Diamondbacks" market="Arizona" abbr="AZ" id="25507be1-6a68-4267-bd82-e097d94b359b">
<rank division="3" league="6"/>
</team>
<team name="Giants" market="San Francisco" abbr="SF" id="a7723160-10b7-4277-a309-d8dd95a8ae65">
<rank division="4" league="10" clinched="eliminated"/>
</team>
<team name="Rockies" market="Colorado" abbr="COL" id="29dd9a87-5bcc-4774-80c3-7f50d985068b">
<rank division="5" league="14" clinched="eliminated"/>
</team>
</division>{
"alias": "NL",
"name": "National League",
"id": "fbe91704-36df-4e7c-864a-06d236425999",
"divisions": [
{
"alias": "W",
"name": "West",
"id": "dd76b332-7cfa-45f0-bed0-a6944d924a61",
"teams": [
{
"name": "Dodgers",
"market": "Los Angeles",
"abbr": "LAD",
"id": "ef64da7f-cfaf-4300-87b0-9313386b977c",
"rank": {
"division": 1,
"league": 1,
"clinched": "division"
}
},
{
"name": "Padres",
"market": "San Diego",
"abbr": "SD",
"id": "d52d5339-cbdd-43f3-9dfa-a42fd588b9a3",
"rank": {
"division": 2,
"league": 4,
"clinched": "wildcard"
}
},
{
"name": "Diamondbacks",
"market": "Arizona",
"abbr": "AZ",
"id": "25507be1-6a68-4267-bd82-e097d94b359b",
"rank": {
"division": 3,
"league": 6
}
},
{
"name": "Giants",
"market": "San Francisco",
"abbr": "SF",
"id": "a7723160-10b7-4277-a309-d8dd95a8ae65",
"rank": {
"division": 4,
"league": 10,
"clinched": "eliminated"
}
},
{
"name": "Rockies",
"market": "Colorado",
"abbr": "COL",
"id": "29dd9a87-5bcc-4774-80c3-7f50d985068b",
"rank": {
"division": 5,
"league": 14,
"clinched": "eliminated"
}
}
]
},Learn more: the Retrieving Standings and Rankings guide explains how to interpret the rank.clinched field.
Ohtani Rule
How does Sportradar handle the amended 5.11(a) DH rule, aka the Shohei Ohtani rule?
"lineup": [
{
"id": "80de60c9-74e3-4a50-b128-b3dc7456a254",
"inning": 0,
"order": 0,
"position": 1,
"sequence": 1
},
{
"id": "80de60c9-74e3-4a50-b128-b3dc7456a254",
"inning": 0,
"order": 1,
"position": 10,
"sequence": 2
},In the event the starting pitcher will bat for himself, the player will be considered two separate people on his team’s opening lineup card, in accordance with the amended rule.
In the starting lineup node, the starting pitcher will appear twice, once as position 1 (Pitcher) and once as position 10 (Designated Hitter).
If the starting pitcher is replaced, he can continue as the Designated Hitter, and if the Designated Hitter is replaced, he can continue as the pitcher (but can no longer hit for himself). When he is substituted out as a pitcher and remains as a designated hitter, there will be two substitution events.
Events & Special Coverage
Spring Training
What Spring Training games will have full pitch-by-pitch data?
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—will feature full pitch-by-pitch coverage.
Data Availability Note: Live pitch-by-pitch data may be unavailable due to technical or connectivity issues at the venue. In these instances, boxscore coverage will be provided for the remainder of the game.
Note: Prior to 2026, pitch-by-pitch data was only available for select venues equipped with specific tracking technology.
Why does player X not appear in the Team Profile endpoint?
The Team Profile endpoint returns players currently on the 40-man roster. Spring Training non-roster invitees will ONLY appear on game-level endpoints and ONLY if they play in a game.
All-Star Game
How do I locate the All-Star game?
The game can be found in the League Schedule or Daily Schedule endpoint. In the League Schedule path use AST in the season parameter to retrieve the All-Star game only. For example:
- League Schedule -
mlb/trial/v8/en/games/2024/AST/schedule - Daily Schedule -
mlb/trial/v8/en/games/2024/07/16/schedule
Every game-centric feed (e.g. Play-by-Play, Game Summary, Push Events, etc) can be accessed during the game.
Click here for a Game Summary or Game Play-by-Play sample of the 2024 game.
<league xmlns="http://feed.elasticstats.com/schema/baseball/v8/schedule.xsd" alias="MLB" name="Major League Baseball" id="2fa448bc-fc17-4d3d-be03-e60e080fdc26">
<daily-schedule date="2025-07-15">
<games>
<game id="ba541933-6cb4-4580-bd00-cb0e37f82751" status="scheduled" coverage="full" game_number="1" day_night="N" scheduled="2025-07-16T00:00:00+00:00" home_team="3bbb3b39-b5cb-4fc9-bd22-522521f0f329" away_team="dd59d49e-caee-4443-9220-f05d0d9bd1e1" parent_id="34e4cbbe-0086-4fad-bb08-840cbcfcabf0" double_header="false" entry_mode="STOMP" reference="778566">
<venue name="Truist Park" market="Atlanta" capacity="41149" surface="grass" address="755 Battery Avenue" city="Atlanta" state="GA" zip="30339" country="USA" id="3ca8b577-5844-42ed-81a5-bd5d5cbe350c" field_orientation="S" stadium_type="outdoor" time_zone="US/Eastern">
<location lat="33.890672" lng="-84.467641"/>
</venue>
<home name="National League" market="NL" abbr="NL" id="3bbb3b39-b5cb-4fc9-bd22-522521f0f329" win="0" loss="0"/>
<away name="American League" market="AL" abbr="AL" id="dd59d49e-caee-4443-9220-f05d0d9bd1e1" win="0" loss="0"/>
<broadcasts>
<broadcast network="FOX" type="TV" locale="National"/>
</broadcasts>
</game>
</games>
</daily-schedule>
</league>{
"league": {
"alias": "MLB",
"name": "Major League Baseball",
"id": "2fa448bc-fc17-4d3d-be03-e60e080fdc26"
},
"date": "2025-07-15",
"games": [
{
"id": "ba541933-6cb4-4580-bd00-cb0e37f82751",
"status": "scheduled",
"coverage": "full",
"game_number": 1,
"day_night": "N",
"scheduled": "2025-07-16T00:00:00+00:00",
"home_team": "3bbb3b39-b5cb-4fc9-bd22-522521f0f329",
"away_team": "dd59d49e-caee-4443-9220-f05d0d9bd1e1",
"parent_id": "34e4cbbe-0086-4fad-bb08-840cbcfcabf0",
"double_header": false,
"entry_mode": "STOMP",
"reference": "778566",
"venue": {
"name": "Truist Park",
"market": "Atlanta",
"capacity": 41149,
"surface": "grass",
"address": "755 Battery Avenue",
"city": "Atlanta",
"state": "GA",
"zip": "30339",
"country": "USA",
"id": "3ca8b577-5844-42ed-81a5-bd5d5cbe350c",
"field_orientation": "S",
"stadium_type": "outdoor",
"time_zone": "US/Eastern",
"location": {
"lat": "33.890672",
"lng": "-84.467641"
}
},
"home": {
"name": "National League",
"market": "NL",
"abbr": "NL",
"id": "3bbb3b39-b5cb-4fc9-bd22-522521f0f329",
"win": 0,
"loss": 0
},
"away": {
"name": "American League",
"market": "AL",
"abbr": "AL",
"id": "dd59d49e-caee-4443-9220-f05d0d9bd1e1",
"win": 0,
"loss": 0
},
"broadcasts": [
{
"network": "FOX",
"type": "TV",
"locale": "National"
}
]
}
],
"_comment": "Generation started @ 2025-01-28 21:22:34 UTC ended @ 2025-01-28 21:22:34 UTC"
}Is the All-Star game covered in realtime?
Yes. The game is covered in realtime, including the same level of team and player statistics as a regular season game (including Statcast data).
When are the All-Star rosters set?
All-Star rosters will be available within 24 hours after they are announced by MLB. Sportradar updates each roster with any additions from the announcement of the original starters to the replacement players.
Please note that we only provide game rosters (not team rosters) for each game. Request the Game Summary or Daily Summary endpoint prior to the game to receive rosters.
What if the game ends in a tie?
In the case of a tie, the All-Star game will be decided by a Home Run Derby. Should this happen, the data will appear as follows in our MLB API:
- The game will be moved from
inprogresstoodelayduring the derby - The game will result in a tie (example: 3-3)
- The tiebreaker of the home run derby will not be shown in any feed
- There will not be an indication of who won the Home Run Derby portion of the event
World Baseball Classic
How do I access World Baseball Classic data?
MLB API
- Use
WBCas the season type in the League Schedule endpoint to access all 2023 and 2026 World Baseball Classic games (including Pool and Knockout stages). https://api.sportradar.com/mlb/trial/v8/en/games/2026/WBC/schedule
Global Baseball API
- Current and past World Baseball Classics are available under competition 640 (
sr:competition:640) - The 2026 event is available under
sr:season:126007
Check your account or reach out to your account representative for access to the Global Baseball API.
What is the format of the World Baseball Classic?
The 2026 WBC is a 20-team field, beginning with four, five-team round-robin pools. The top two teams from each pool advance to a single-elimination knockout bracket.
Game-level data points of is_game_pool and is_game_bracket indicate whether a game is part of pool play or the elimination bracket.
What is the coverage level of WBC games?
All 2026 WBC games are available at full coverage in the MLB API. Games played in Miami and Houston feature full Statcast-level data, with event tracking. Games played in Tokyo and Puerto Rico feature pitch-tracking data only.
Minor differences compared to standard MLB API coverage include:
- No seasonal data for Game Extended Summary
- No WBC statistics in Player Profile
- Absence of WBC teams in the League Hierarchy
2023 games are available for testing and historical purposes.
Supported endpoints include:
- Game Boxscore, Game Play-by-Play, Game Summary, Pitch Metrics, Event Tracking (Statcast only), Schedule, Daily Schedule, Daily Boxscore, Daily Summary, Daily Change Log, Seasonal Statistics, Seasonal Splits, Seasons, Teams, Venues, Glossary, and Officials
The APIs do not include coverage for:
- League Depth Chart, League Leaders, Series Schedules, Series Statistics, Series Summaries, Statcast Leaders, Team Profile, and Team Depth Chart
Note: WBC exhibition games are covered at the boxscore level.
How can I link teams, games, and players between the MLB API and the Global Baseball API?
To ensure a seamless experience, download these CSV mapping files between the MLB and Global Baseball APIs.
How do I access team rosters for the World Baseball Classic?
The MLB API does not include WBC rosters in the Team Profile endpoint. Individual game lineups (including a full team roster) are expected at least two hours prior to each game.
Use the Global Baseball API’s Competitor Profile endpoint to retrieve a current team roster.
How do I access standings for the WBC?
The MLB API does not include WBC standings.
Use the Global Baseball API’s Season Standings endpoint to retrieve WBC standings.
What MLB API data points are used specifically for the World Baseball Classic?
New Season Type
A new season type of WBC to represent the World Baseball Classic
Games
Game-level data points of is_game_pool and is_game_bracket indicate whether a game is part of pool play or the elimination bracket
Players
Player-level data point of is_wbc_only indicates whether a player is expected to be part of an MLB team
What is the behavior of TBD matchups in the MLB API?
All unknown bracket matchups have placeholder TBD competitors with separate, unique identifiers. Team IDs are added as competitors are known.
<game id="cfe0cf8c-5be4-4b0d-bef3-c6f5c097b584" status="scheduled" coverage="full" game_number="1" day_night="N" scheduled="2026-03-13T22:30:00+00:00" home_team="a9ae1210-b58e-476c-b384-065edfe22d28" away_team="1d2f56bd-2e71-4f4c-a8ba-1385ac9b1186" is_game_pool="true" is_game_bracket="true" double_header="false" entry_mode="STOMP" reference="788095">
<venue name="loanDepot park" market="Miami" capacity="37446" surface="turf" address="501 Marlins Way" city="Miami" state="FL" zip="33125" country="USA" id="d5a66fb3-ff26-4f36-910c-3df5cedb36b3" field_orientation="SE" stadium_type="retractable" time_zone="US/Eastern">
<location lat="25.7780567" lng="-80.2194087"/>
</venue>
<home name="Pool D Winner" market="Pool" abbr="TBD" id="a9ae1210-b58e-476c-b384-065edfe22d28" win="0" loss="0"/>
<away name="Pool C Runner-Up" market="Pool" abbr="TBD" id="1d2f56bd-2e71-4f4c-a8ba-1385ac9b1186" win="0" loss="0"/>
</game>{
"id": "d63a4460-fb29-49ac-bbe4-e9379fd8f47c",
"status": "scheduled",
"coverage": "full",
"game_number": 1,
"day_night": "D",
"scheduled": "2026-03-14T19:00:00+00:00",
"home_team": "67d9ff2a-3003-4c58-9bb4-ed7920bf07d4",
"away_team": "ef2dbe91-dfda-4b2d-ac31-5a9c15f826e4",
"is_game_pool": true,
"is_game_bracket": true,
"double_header": false,
"entry_mode": "STOMP",
"reference": "788098",
"venue": {
"name": "Daikin Park",
"market": "Houston",
"capacity": 41000,
"surface": "grass",
"address": "501 Crawford Street",
"city": "Houston",
"state": "TX",
"zip": "77002",
"country": "USA",
"id": "f0600f04-1386-4c61-a412-804960c46cb1",
"field_orientation": "N",
"stadium_type": "retractable",
"time_zone": "US/Central",
"location": {
"lat": "29.7577058",
"lng": "-95.35453989999999"
}
},
"home": {
"name": "Pool A Winner",
"market": "Pool",
"abbr": "TBD",
"id": "67d9ff2a-3003-4c58-9bb4-ed7920bf07d4",
"win": 0,
"loss": 0
},
"away": {
"name": "Pool B Runner-Up",
"market": "Pool",
"abbr": "TBD",
"id": "ef2dbe91-dfda-4b2d-ac31-5a9c15f826e4",
"win": 0,
"loss": 0
}
},
More questions?Reach out to [email protected] for further assistance.
