Major League Baseball League API
Operations pertaining to leagues
Operations pertaining to leagues
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/major-league-baseball-league-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Stats API Documentation Analytics League API
description: Official API for Major League Baseball.
version: 2.0.0
servers:
- url: https://statsapi.mlb.com
description: Production
- url: https://beta-statsapi.mlb.com
description: Beta
- url: https://qa-statsapi.mlb.com
description: QA
- url: http://localhost:8080
description: Local
tags:
- name: League
description: Operations pertaining to leagues
paths:
/api/v1/league:
get:
tags:
- League
summary: View league info
operationId: league
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: seasons
in: query
description: Comma delimited list of Seasons of play
required: false
schema:
type: array
items:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
- name: sportId
in: query
description: Top level organization of a sport
required: false
schema:
type: integer
format: int32
x-lookup:
name: Sports
- name: activeStatus
in: query
description: Flag for fetching leagues that are currently active (Y), inactive (N), pending (P), or all teams (B)
required: false
schema:
$ref: '#/components/schemas/LeagueActiveStatusEnum'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LeaguesRestObject'
post:
tags:
- League
summary: Update league cache
operationId: leagueIdsUpdate
parameters:
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: sportId
in: query
description: Top level organization of a sport
required: false
schema:
type: integer
format: int32
x-lookup:
name: Sports
responses:
'200':
description: OK
content:
'*/*':
schema:
type: string
/api/v1/leagues:
get:
tags:
- League
summary: View league info
operationId: league_2
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: seasons
in: query
description: Comma delimited list of Seasons of play
required: false
schema:
type: array
items:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
- name: sportId
in: query
description: Top level organization of a sport
required: false
schema:
type: integer
format: int32
x-lookup:
name: Sports
- name: activeStatus
in: query
description: Flag for fetching leagues that are currently active (Y), inactive (N), pending (P), or all teams (B)
required: false
schema:
$ref: '#/components/schemas/LeagueActiveStatusEnum'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LeaguesRestObject'
post:
tags:
- League
summary: Update league cache
operationId: leagueIdsUpdate_1
parameters:
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: sportId
in: query
description: Top level organization of a sport
required: false
schema:
type: integer
format: int32
x-lookup:
name: Sports
responses:
'200':
description: OK
content:
'*/*':
schema:
type: string
/api/v1/league/{leagueId}/allStarWriteIns:
get:
tags:
- League
summary: All-Star write-ins
operationId: allStarWriteIns
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/leagues/{leagueId}/allStarWriteIns:
get:
tags:
- League
summary: All-Star write-ins
operationId: allStarWriteIns_1
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/league/{leagueId}/allStarFinalVote:
get:
tags:
- League
summary: All-Star final vote
operationId: allStarFinalVote
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/leagues/{leagueId}/allStarFinalVote:
get:
tags:
- League
summary: All-Star final vote
operationId: allStarFinalVote_1
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/league/allStarBallot:
get:
tags:
- League
summary: All-Star Ballot
operationId: allStarBallot
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/league/{leagueId}/allStarBallot:
get:
tags:
- League
summary: All-Star Ballot
operationId: allStarBallot_1
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/leagues/allStarBallot:
get:
tags:
- League
summary: All-Star Ballot
operationId: allStarBallot_2
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/leagues/{leagueId}/allStarBallot:
get:
tags:
- League
summary: All-Star Ballot
operationId: allStarBallot_3
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PeopleRestObject'
/api/v1/league/{leagueId}:
get:
tags:
- League
summary: View league info
operationId: league_1
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: seasons
in: query
description: Comma delimited list of Seasons of play
required: false
schema:
type: array
items:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
- name: sportId
in: query
description: Top level organization of a sport
required: false
schema:
type: integer
format: int32
x-lookup:
name: Sports
- name: activeStatus
in: query
description: Flag for fetching leagues that are currently active (Y), inactive (N), pending (P), or all teams (B)
required: false
schema:
$ref: '#/components/schemas/LeagueActiveStatusEnum'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LeaguesRestObject'
/api/v1/leagues/{leagueId}:
get:
tags:
- League
summary: View league info
operationId: league_3
parameters:
- name: leagueId
in: path
description: Unique League Identifier
required: true
schema:
type: integer
format: int32
- name: leagueIds
in: query
description: Comma delimited list of Unique league identifiers
required: false
schema:
type: array
items:
type: integer
format: int32
- name: season
in: query
description: Season of play
required: false
schema:
type: string
- name: seasons
in: query
description: Comma delimited list of Seasons of play
required: false
schema:
type: array
items:
type: string
- name: fields
in: query
description: 'Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute'
required: false
schema:
uniqueItems: true
type: array
items:
type: string
- name: sportId
in: query
description: Top level organization of a sport
required: false
schema:
type: integer
format: int32
x-lookup:
name: Sports
- name: activeStatus
in: query
description: Flag for fetching leagues that are currently active (Y), inactive (N), pending (P), or all teams (B)
required: false
schema:
$ref: '#/components/schemas/LeagueActiveStatusEnum'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LeaguesRestObject'
components:
schemas:
TeamStatData:
type: object
properties:
requestingUserRole:
$ref: '#/components/schemas/Role'
note:
type: string
summary:
type: object
additionalProperties:
type: string
writeOnly: true
catchersInterference:
type: integer
format: int32
average:
type: string
onBasePercentage:
type: string
onBasePlusSlugging:
type: string
stolenBases:
type: integer
format: int32
caughtStealing:
type: integer
format: int32
slugging:
type: string
outs:
type: integer
format: int32
gidp:
type: integer
format: int32
gitp:
type: integer
format: int32
homeRuns:
type: integer
format: int32
numberOfPitches:
type: integer
format: int32
totalBases:
type: integer
format: int32
gidpOpportunites:
type: integer
format: int32
walks:
type: integer
format: int32
hitByPitch:
type: integer
format: int32
strikeouts:
type: integer
format: int32
airOuts:
type: integer
format: int32
goAo:
type: string
pitchesPerPlateAppearance:
type: number
format: double
intentionalWalks:
type: integer
format: int32
groundOuts:
type: integer
format: int32
flyOuts:
type: integer
format: int32
games:
type: integer
format: int32
gamesStarted:
type: integer
format: int32
doubles:
type: integer
format: int32
hits:
type: integer
format: int32
triples:
type: integer
format: int32
singles:
type: integer
format: int32
runs:
type: integer
format: int32
atBats:
type: integer
format: int32
pickoffs:
type: integer
format: int32
stolenBasePercentage:
type: string
wildPitches:
type: integer
format: int32
sacFlies:
type: integer
format: int32
sacBunts:
type: integer
format: int32
putouts:
type: integer
format: int32
assists:
type: integer
format: int32
chances:
type: integer
format: int32
streak:
type: integer
format: int32
battingOrder:
type: string
totalSwings:
type: integer
format: int32
swingsAndMisses:
type: integer
format: int32
ballsInPlay:
type: integer
format: int32
popOuts:
type: integer
format: int32
lineOuts:
type: integer
format: int32
flyHits:
type: integer
format: int32
popHits:
type: integer
format: int32
lineHits:
type: integer
format: int32
groundHits:
type: integer
format: int32
winStreak:
type: integer
format: int32
lossStreak:
type: integer
format: int32
plateAppearances:
type: integer
format: int32
stolenBasePercentageOrNull:
type: string
pitchesPerPlateAppearanceStr:
type: string
InningTeamInfoRestObject:
type: object
properties:
copyright:
type: string
runs:
type: integer
format: int32
hits:
type: integer
format: int32
errors:
type: integer
format: int32
leftOnBase:
type: integer
format: int32
BaseballPitch:
type: object
properties:
ballColor:
type: string
trailColor:
type: string
startSpeed:
type: number
format: double
endSpeed:
type: number
format: double
nastyFactor:
type: number
format: double
strikeZoneTop:
type: number
format: double
strikeZoneBottom:
type: number
format: double
strikeZoneWidth:
type: number
format: double
strikeZoneDepth:
type: number
format: double
getaX:
type: number
format: double
getaY:
type: number
format: double
getaZ:
type: number
format: double
pfxX:
type: number
format: double
pfxZ:
type: number
format: double
getpX:
type: number
format: double
getpZ:
type: number
format: double
getvX0:
type: number
format: double
getvY0:
type: number
format: double
getvZ0:
type: number
format: double
x:
type: number
format: double
y:
type: number
format: double
z0:
type: number
format: double
y0:
type: number
format: double
x0:
type: number
format: double
breakAngle:
type: number
format: double
breakLength:
type: number
format: double
breakX:
type: number
format: double
breakY:
type: number
format: double
breakZ:
type: number
format: double
zone:
type: integer
format: int32
spinRate:
type: integer
format: int32
spinDirection:
type: integer
format: int32
typeConfidence:
type: number
format: double
plateTime:
type: number
format: double
extension:
type: number
format: double
WeatherRestObject:
type: object
properties:
copyright:
type: string
condition:
type: string
temp:
type: string
wind:
type: string
BaseballTeamStandingsRecord:
type: object
properties:
team:
$ref: '#/components/schemas/BaseballTeam'
wins:
type: integer
format: int32
losses:
type: integer
format: int32
ties:
type: integer
format: int32
gamesBack:
type: string
wildCardGamesBack:
type: string
leagueGamesBack:
type: string
springLeagueGamesBack:
type: string
sportGamesBack:
type: string
divisionGamesBack:
type: string
conferenceGamesBack:
type: string
divisionChamp:
type: boolean
season:
type: string
streak:
type: string
lastUpdated:
type: string
format: date-time
home:
type: string
away:
type: string
lastTen:
type: string
points:
type: integer
format: int32
clinchIndicator:
type: string
divisionRank:
type: string
conferenceRank:
type: string
springLeagueRank:
type: string
leagueRank:
type: string
sportRank:
type: string
wildCardRank:
type: string
gamesPlayed:
type: integer
format: int32
place:
type: integer
format: int32
wildcardPlace:
type: integer
format: int32
wildcardOdds:
type: number
format: double
divisionOdds:
type: number
format: double
playoffOdds:
type: number
format: double
runsAllowed:
type: integer
format: int32
runsScored:
type: integer
format: int32
hasWildcard:
type: boolean
clinched:
type: boolean
eliminationNumber:
type: string
eliminationNumberWildcard:
type: string
magicNumber:
type: string
hasPlayoffPoints:
type: boolean
vsWest:
type: string
vsCentral:
type: string
vsEast:
type: string
vsInterleague:
type: string
vsRight:
type: string
vsRightHomeWin:
type: string
vsRightHomeLoss:
type: string
vsRightAwayWin:
type: string
vsRightAwayLoss:
type: string
vsLeft:
type: string
vsLeftHomeWin:
type: string
vsLeftHomeLoss:
type: string
vsLeftAwayWin:
type: string
vsLeftAwayLoss:
type: string
vsWinners:
type: string
extraInnings:
type: string
expectedWinLoss:
type: string
expectedWinLossSeason:
type: string
oneRunGames:
type: string
turf:
type: string
grass:
type: string
night:
type: string
day:
type: string
isWildCardTeam:
type: boolean
writeOnly: true
isDivisionLeader:
type: boolean
writeOnly: true
divisionRecords:
type: array
items:
$ref: '#/components/schemas/WinLossRecord'
conferenceRecords:
type: array
items:
$ref: '#/components/schemas/WinLossRecord'
leagueRecords:
type: array
items:
$ref: '#/components/schemas/WinLossRecord'
splitRecords:
type: array
items:
$ref: '#/components/schemas/WinLossRecord'
expectedRecords:
type: array
items:
$ref: '#/components/schemas/WinLossRecord'
overallRecords:
type: array
items:
$ref: '#/components/schemas/WinLossRecord'
conference:
$ref: '#/components/schemas/Conference'
wildCardLeader:
type: boolean
runDifferental:
type: integer
format: int32
winningPercentage:
type: number
format: double
XrefIdRestObject:
type: object
properties:
copyright:
type: string
xrefId:
type: string
xrefType:
type: string
xrefIdTwo:
type: string
season:
type: string
FranchiseRestObject:
type: object
properties:
copyright:
type: string
franchiseId:
type: integer
format: int32
firstSeasonId:
type: integer
format: int32
lastSeasonId:
type: integer
format: int32
mostRecentTeamId:
type: integer
format: int32
teamName:
type: string
locationName:
type: string
link:
type: string
roster:
$ref: '#/components/schemas/RosterRestObject'
VenueRestObject:
type: object
properties:
copyright:
type: string
hydrations:
type: array
items:
type: string
id:
type: integer
format: int32
name:
type: string
link:
type: string
location:
$ref: '#/components/schemas/LocationRestObject'
timeZone:
$ref: '#/components/schemas/TimeZoneRestObject'
fieldInfo:
$ref: '#/components/schemas/FieldInfoRestObject'
relatedApplications:
type: array
items:
$ref: '#/components/schemas/ApplicationRestObject'
images:
type: object
additionalProperties:
$ref: '#/components/schemas/ImageRestObject'
social:
$ref: '#/components/schemas/SocialMediaRestObject'
relatedVenues:
type: array
items:
$ref: '#/components/schemas/VenueRestObject'
parentVenues:
type: array
items:
$ref: '#/components/schemas/VenueRestObject'
residentVenues:
type: array
items:
$ref: '#/components/schemas/VenueRestObject'
menu:
$ref: '#/components/schemas/JsonNode'
schedule:
$ref: '#/components/schemas/ScheduleRestObject'
nextSchedule:
$ref: '#/components/schemas/ScheduleRestObject'
previousSchedule:
$ref: '#/components/schemas/ScheduleRestObject'
metadata:
$ref: '#/components/schemas/VenueMetadataRestObject'
appEnabled:
type: boolean
xrefIds:
type: array
items:
$ref: '#/components/schemas/XrefIdRestObject'
trackingVersion:
$ref: '#/components/schemas/TrackingVersion'
coachingVideo:
uniqueItems: true
type: array
items:
$ref: '#/components/schemas/MediaSourceType'
ruleSettings:
type: array
items:
$ref: '#/components/schemas/RuleSettingsRestObject'
active:
type: boolean
season:
type: string
StatType:
type: string
enum:
- PROJECTED
- PROJECTED_ROS
- YEAR_BY_YEAR
- YEAR_BY_YEAR_ADVANCED
- YEAR_BY_YEAR_PLAYOFFS
- SEASON
- STANDARD
- ADVANCED
- CAREER
- CAREER_REGULAR_SEASON
- CAREER_ADVANCED
- SEASON_ADVANCED
- CAREER_STAT_SPLITS
- CAREER_PLAYOFFS
- GAME_LOG
- PLAY_LOG
- PITCH_LOG
- METRIC_LOG
- METRIC_AVERAGES
- PITCH_ARSENAL
- OUTS_ABOVE_AVERAGE
- EXPECTED_STATISTICS
- SABERMETRICS
- SPRAY_CHART
- TRACKING_STATISTICS
- VS_PLAYER
- VS_PLAYER_TOTAL
- VS_PLAYER_5Y
- VS_TEAM
- VS_TEAM_5Y
- VS_TEAM_TOTAL
- LAST_X_GAMES
- BY_DATE_RANGE
- BY_DATE_RANGE_AD
# --- truncated at 32 KB (239 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/major-league-baseball/refs/heads/main/openapi/major-league-baseball-league-api-openapi.yml