Frequently asked questions for MLB v7.
Click on the categories below or browse questions on the right panel.
Categories
.
Coverage
How is each MLB game covered?
Coverage information for MLB can be found here.
Integration
What format are date fields presented in?
When we present date only values we present these in the ISO 8601 standard format.
ex: 2023-04-03
We use these for attributes that have date and no time (such as birthdate). For more information: https://en.wikipedia.org/wiki/ISO_8601
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 the date/time fields presented in?
All of our Date/Time attributes are in UTC, presented in the ISO 8601 standard format.
ex: 2023-04-03T18:15:00+00:00
For more information: https://en.wikipedia.org/wiki/ISO_8601
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 is a list of the entry mode values:
STOMP
LDE
How will the A's move to Sacramento affect your data feeds?
In 2025, the Oakland Athletics will temporarily relocate to Sacramento before making their permanent move to Las Vegas. With this move, the team's name will change from "Oakland Athletics" to simply "Athletics." Consequently, the data point for the market
, "Oakland", will no longer be associated with the team.
We will adjust the team's market to null, along with adjusting the alias to ATH
within 14 days after the conclusion of the 2024 World Series.
We suggest you make this change ahead of Spring Training in February 2025. Below is a preview snippet of the updated team information:
<team name="Athletics" abbr="ATH" id="27a59d3b-ff7c-48ea-b016-4798f560f5e1"
Game Statuses
What are the valid game statuses and their definitions?
Here is a list of the 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.
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.
Player Statuses
What are the valid player statuses and their definitions?
Here is a list of the 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.
What are the valid player injury statuses?
Here is a list of the player injury statuses:
D7
D10
D15
D60
Day-to-Day
Unknown
Lineup Positions
What are the valid lineup positions and their definitions?
Here is a list of the lineup positions and their definitions. Please note, this is the 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
= Centerfield9
= Right Field10
= Designated Hitter11
= Pinch Hitter12
= Pinch Runner
Here is a list of the roster positions and their definitions.
C
= CatcherDH
= Designated HitterIF
= InfieldOF
= OutfieldP
= Pitcher
Here is a list of the roster primary positions and their definitions.
C
= CatcherIF
= Infield1B
= First base2B
= Second base3B
= Third BaseSS
= ShortstopOF
= OutfieldLF
= Left FieldCF
= CenterfieldP
= 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"
}
],
Play Outcomes
What are the valid outcome types and their definitions?
Here is a list of the 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 half inning is overevent_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 is a list of the 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
= Fielders Choice - Adv 2ndaFCAD3
= Fielders Choice - Adv 3rdaFCAD4
= Fielders Choice - Adv HomeaHBP
= Hit By PitchaHR
= HomerunaIBB
= 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 HomeaS
= 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 BallbB
= BallbDB
= Dirt BallbIB
= Intentional BallbPO
= PitchoutkAK
= Enforced StrikekF
= Foul BallkFT
= Foul TipkKL
= Strike LookingkKS
= Strike SwingingoBI
= Hitter InterferenceoDT2
= Double - Tagged out at 2ndoDT3
= Double - Out at 3rdoDT4
= Double - Out at HomeoFC
= Fielders ChoiceoFCT2
= Fielders Choice - Out at 2ndoFCT3
= Fielders Choice - Out at 3rdoFCT4
= Fielders 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 is a list of the 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 RunSB2E3
= 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
& 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 zone 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 zone 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 is a list of the 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
= PitchoutOther
Hit Types & Location
What are the valid hit types I can expect to appear?
The following hit types can be displayed:
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)
Transaction Codes & Types
What are the valid transaction_code
and transaction_type
values?
transaction_code
and transaction_type
values?Here is a list of 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
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 is a list of 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 is a list of the 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 is a list of the 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 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 is a list of the pitch status values:
official
under review
overturned
upheld
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 is a list of the 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"
}
}
]
},
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 join to the team officially. 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>
Spring Training
What Spring Training games will have full pitch-by-pitch data?
We provide full coverage for games at MLB venues along with the below Spring Training venues. Please note that these games have the possibility of failover to Sportradar data entry. If this is necessary, we provide boxscore coverage until the game is over.
Florida Grapefruit League- Roger Dean Stadium (Miami and St. Louis)
- Publix Field at Joker Marchant Stadium (Detroit)
- CenturyLink Sports Complex (Minnesota)
- Clover Park (New York Mets)
- George M. Steinbrenner Field (New York Yankees)
- BayCare Ballpark (Philadelphia)
- LECOM Park (Pittsburgh)
- TD Ballpark (Toronto)
- Salt River Fields at Talking Stick (Arizona and Colorado)
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/v7/en/games/2023/AST/schedule
- Daily Schedule -
mlb/trial/v7/en/games/2023/07/11/schedule
Every game-centric feed (e.g. Play-by-Play, Game Summary, Push Events, etc) can be accessed during the game.
Click here for for a Game Summary or Play-by-Play sample of the 2022 game.
<league xmlns="http://feed.elasticstats.com/schema/baseball/v7/schedule.xsd" alias="MLB" name="Major League Baseball" id="2fa448bc-fc17-4d3d-be03-e60e080fdc26">
<season-schedule id="35ed1eb2-5b9b-4816-8a6c-7e2a3f50488e" year="2022" type="AST">
<games>
<game id="7a7a0a1b-3f9b-4773-90af-8875041170f2" status="closed" coverage="full" game_number="1" day_night="D" scheduled="2022-07-20T00:00:00+00:00" home_team="3bbb3b39-b5cb-4fc9-bd22-522521f0f329" away_team="dd59d49e-caee-4443-9220-f05d0d9bd1e1" attendance="52518" duration="3:11" double_header="false" entry_mode="STOMP" reference="663466">
<venue name="Dodger Stadium" market="Los Angeles" capacity="56000" surface="grass" address="1000 Vin Scully Avenue" city="Los Angeles" state="CA" zip="90012" country="USA" id="66a19c3d-24fe-477d-bee7-c6ef1b98352f" field_orientation="NE" stadium_type="outdoor">
<location lat="34.0745409" lng="-118.2408881"/>
</venue>
<home name="National League" market="NL" abbr="NL" id="3bbb3b39-b5cb-4fc9-bd22-522521f0f329"/>
<away name="American League" market="AL" abbr="AL" id="dd59d49e-caee-4443-9220-f05d0d9bd1e1"/>
<broadcast network="FOX"/>
</game>
</games>
</season-schedule>
</league>
{
"league": {
"alias": "MLB",
"name": "Major League Baseball",
"id": "2fa448bc-fc17-4d3d-be03-e60e080fdc26"
},
"season": {
"id": "35ed1eb2-5b9b-4816-8a6c-7e2a3f50488e",
"year": 2022,
"type": "AST"
},
"games": [
{
"id": "7a7a0a1b-3f9b-4773-90af-8875041170f2",
"status": "closed",
"coverage": "full",
"game_number": 1,
"day_night": "D",
"scheduled": "2022-07-20T00:00:00+00:00",
"home_team": "3bbb3b39-b5cb-4fc9-bd22-522521f0f329",
"away_team": "dd59d49e-caee-4443-9220-f05d0d9bd1e1",
"attendance": 52518,
"duration": "3:11",
"double_header": false,
"entry_mode": "STOMP",
"reference": "663466",
"venue": {
"name": "Dodger Stadium",
"market": "Los Angeles",
"capacity": 56000,
"surface": "grass",
"address": "1000 Vin Scully Avenue",
"city": "Los Angeles",
"state": "CA",
"zip": "90012",
"country": "USA",
"id": "66a19c3d-24fe-477d-bee7-c6ef1b98352f",
"field_orientation": "NE",
"stadium_type": "outdoor",
"location": {
"lat": "34.0745409",
"lng": "-118.2408881"
}
},
"home": {
"name": "National League",
"market": "NL",
"abbr": "NL",
"id": "3bbb3b39-b5cb-4fc9-bd22-522521f0f329"
},
"away": {
"name": "American League",
"market": "AL",
"abbr": "AL",
"id": "dd59d49e-caee-4443-9220-f05d0d9bd1e1"
},
"broadcast": {
"network": "FOX"
}
}
],
"_comment": "Generation started @ 2023-04-03 14:11:01 UTC ended @ 2023-04-03 14:11:01 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 result in a tie (example: 3-3)
- The tiebreaker of a 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.
Umpire Assignments
What are the valid umpire assignments and their definitions?
Here is a list of the umpire assignments and their definitions:
HP
= Home plate umpire1B
= 1st base umpire2B
= 2nd base umpire3B
= 3rd base umpireLF
= Left field umpireRF
= Right field umpire
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
)
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. As well, we provide overall total statistics that covers 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 have not collected data for. Those statistics will appear only for 2018 forward.
Statcast Data
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.
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.
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.
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 half inning is overevent_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
Broadcast Availability
How can I receive multiple broadcasts for a game?
To access multiple broadcasts for an MLB game, alter your syntax from v7 to v7.1 for RESTful schedule endpoints. This additional broadcast info is readily available, but version 7.1 is undocumented.
**v7 Snippet:**
broadcast:
{ network: "BSSE" }
,
______________________________________________________________
**v7.1 Snippet:**
broadcasts: [
{ network: "BSSE", type: "TV", locale: "Home", channel: "649" }
,
{ network: "BSWI", type: "TV", locale: "Away", channel: "661" }
],
More questions?
Reach out to [email protected] for further assistance.