MENU navbar-image

⚾ Baseball (MLB)

The MLB API offers comprehensive endpoints to access schedules, leagues, seasons, venues, and detailed game information such as box scores, play-by-play actions, probabilities, and matrices. It also provides data on teams including rosters, historical records, personnel, affiliates, and coaching staff, enabling developers to integrate rich baseball data into their applications with ease.

General

These endpoints allow developers to retrieve up-to-date data on game schedules, league details, current seasons, and venue specifics, facilitating the integration of comprehensive baseball information into applications and services.

GET /v1/seasons

requires authentication

Get baseball season information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/seasons'
params = {
  'seasonId': '2023',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/seasons';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'seasonId' => '2023',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/seasons"
);

const params = {
    "seasonId": "2023",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/seasons?seasonId=2023" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com"
    },
    "body": [
        {
            "seasonId": "2023",
            "hasWildcard": true,
            "preSeasonStartDate": "2023-01-01",
            "preSeasonEndDate": "2023-02-23",
            "seasonStartDate": "2023-02-24",
            "springStartDate": "2023-02-24",
            "springEndDate": "2023-03-28",
            "regularSeasonStartDate": "2023-03-30",
            "lastDate1stHalf": "2023-07-09",
            "allStarDate": "2023-07-11",
            "firstDate2ndHalf": "2023-07-14",
            "regularSeasonEndDate": "2023-10-02",
            "postSeasonStartDate": "2023-10-03",
            "postSeasonEndDate": "2023-11-04",
            "seasonEndDate": "2023-11-04",
            "offseasonStartDate": "2023-11-05",
            "offSeasonEndDate": "2023-12-31",
            "seasonLevelGamedayType": "P",
            "gameLevelGamedayType": "P",
            "qualifierPlateAppearances": 3.1,
            "qualifierOutsPitched": 3
        }
    ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/seasons

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
seasonId required integer

Provide a season year. Example: 2023

GET /v1/leagues

requires authentication

Get baseball league information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/leagues'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/leagues';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/leagues"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/leagues" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": [
      {
        "id": 103,
        "name": "American League",
        "abbreviation": "AL",
        "nameShort": "American",
        "seasonState": "postseason",
        "hasWildCard": true,
        "hasSplitSeason": false,
        "numGames": 162,
        "hasPlayoffPoints": false,
        "numTeams": 15,
        "numWildcardTeams": 3,
        "seasonDateInfo": {
          "seasonId": "2023",
          "preSeasonStartDate": "2023-01-01",
          "preSeasonEndDate": "2023-02-23",
          "seasonStartDate": "2023-02-24",
          "springStartDate": "2023-02-24",
          "springEndDate": "2023-03-28",
          "regularSeasonStartDate": "2023-03-30",
          "lastDate1stHalf": "2023-07-09",
          "allStarDate": "2023-07-11",
          "firstDate2ndHalf": "2023-07-14",
          "regularSeasonEndDate": "2023-10-01",
          "postSeasonStartDate": "2023-10-03",
          "postSeasonEndDate": "2023-11-04",
          "seasonEndDate": "2023-11-04",
          "offseasonStartDate": "2023-11-05",
          "offSeasonEndDate": "2023-12-31",
          "seasonLevelGamedayType": "P",
          "gameLevelGamedayType": "P",
          "qualifierPlateAppearances": 3.1,
          "qualifierOutsPitched": 3
        },
        "season": "2023",
        "orgCode": "AL",
        "conferencesInUse": false,
        "divisionsInUse": true,
        "sport": {
          "id": 1
        },
        "sortOrder": 21,
        "active": true
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/leagues

Headers

Authorization Bearer {YOUR_AUTH_KEY}

GET /v1/venues

requires authentication

Get baseball venues information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/venues'
params = {
  'seasonId': '2023',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/venues';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'seasonId' => '2023',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/venues"
);

const params = {
    "seasonId": "2023",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/venues?seasonId=2023" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": [
      {
        "id": 1,
        "name": "Angel Stadium",
        "active": true,
        "season": "2023"
      },
      {
        "id": 2,
        "name": "Oriole Park at Camden Yards",
        "active": true,
        "season": "2023"
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/venues

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
seasonId required integer

Provide a season year. Example: 2023

GET /v1/players

requires authentication

Get baseball player information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/players'
params = {
  'personIds': '676265',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/players';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'personIds' => '676265',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/players"
);

const params = {
    "personIds": "676265",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/players?personIds=676265" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com"
    },
    "body": [
        {
            "id": 676265,
            "fullName": "Cory Abbott",
            "firstName": "Cory",
            "lastName": "Abbott",
            "primaryNumber": "77",
            "birthDate": "1995-09-20",
            "currentAge": 28,
            "birthCity": "San Diego",
            "birthStateProvince": "CA",
            "birthCountry": "USA",
            "height": "6' 2\"",
            "weight": 217,
            "active": true,
            "primaryPosition": {
                "code": "1",
                "name": "Pitcher",
                "type": "Pitcher",
                "abbreviation": "P"
            },
            "useName": "Cory",
            "useLastName": "Abbott",
            "middleName": "James",
            "boxscoreName": "Abbott, C",
            "gender": "M",
            "isPlayer": true,
            "isVerified": true,
            "draftYear": 2017,
            "mlbDebutDate": "2021-06-05",
            "batSide": {
                "code": "R",
                "description": "Right"
            },
            "pitchHand": {
                "code": "R",
                "description": "Right"
            },
            "nameFirstLast": "Cory Abbott",
            "nameSlug": "cory-abbott-676265",
            "firstLastName": "Cory Abbott",
            "lastFirstName": "Abbott, Cory",
            "lastInitName": "Abbott, C",
            "initLastName": "C Abbott",
            "fullFMLName": "Cory James Abbott",
            "fullLFMName": "Abbott, Cory James",
            "strikeZoneTop": 3.467,
            "strikeZoneBottom": 1.589
        }
    ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/players

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
personIds required integer

Provide a player person ID. Example: 676265

GET /v1/free-agents

requires authentication

Get free agent information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/free-agents'
params = {
  'seasonId': '2023',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/free-agents';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'seasonId' => '2023',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/free-agents"
);

const params = {
    "seasonId": "2023",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/free-agents?seasonId=2023" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": {
      "season": "2023",
      "freeAgents": [
        {
          "player": {
            "id": 501659,
            "fullName": "Abraham Almonte"
          },
          "originalTeam": {
            "id": 121,
            "name": "New York Mets"
          },
          "newTeam": [],
          "notes": "Minor League Free Agent",
          "dateDeclared": "2023-10-04",
          "position": {
            "code": "O",
            "name": "Outfield",
            "type": "Outfielder",
            "abbreviation": "OF"
          }
        },
        {
          "player": {
            "id": 605119,
            "fullName": "Brian Anderson"
          },
          "originalTeam": {
            "id": 158,
            "name": "Milwaukee Brewers"
          },
          "newTeam": [],
          "dateDeclared": "2023-10-03",
          "position": {
            "code": "5",
            "name": "Third Base",
            "type": "Infielder",
            "abbreviation": "3B"
          }
        },
        { ... }
      ]
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/free-agents

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
seasonId required integer

Provide a season ID. Example: 2023

GET /v1/schedule

requires authentication

Get baseball schedule information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/schedule'
params = {
  'date': '2021-07-30',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/schedule';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'date' => '2021-07-30',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/schedule"
);

const params = {
    "date": "2021-07-30",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/schedule?date=2021-07-30" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "date": "2021-07-30",
      "totalEvents": 0,
      "totalGames": 15,
      "totalGamesInProgress": 0
    },
    "body": {
      "0": {
        "gamePk": 633094,
        "gameGuid": "cedf2489-1963-4910-b66a-ea0f2d0206d3",
        "gameType": "R",
        "season": "2021",
        "gameDate": "2021-07-30T23:05:00Z",
        "officialDate": "2021-07-30",
        "status": {
          "abstractGameState": "Final",
          "codedGameState": "F",
          "detailedState": "Final",
          "statusCode": "F",
          "startTimeTBD": false,
          "abstractGameCode": "F"
        },
        "teams": {
          "away": {
            "leagueRecord": {
              "wins": 50,
              "losses": 55,
              "pct": ".476"
            },
            "score": 3,
            "team": {
              "id": 112,
              "name": "Chicago Cubs"
            },
            "isWinner": false,
            "splitSquad": false,
            "seriesNumber": 34
          },
          "home": {
            "leagueRecord": {
              "wins": 48,
              "losses": 55,
              "pct": ".466"
            },
            "score": 4,
            "team": {
              "id": 120,
              "name": "Washington Nationals"
            },
            "isWinner": true,
            "splitSquad": false,
            "seriesNumber": 34
          }
        },
        "venue": {
          "id": 3309,
          "name": "Nationals Park"
        },
        "content": [],
        "isTie": false,
        "gameNumber": 1,
        "publicFacing": true,
        "doubleHeader": "N",
        "gamedayType": "P",
        "tiebreaker": "N",
        "calendarEventID": "14-633094-2021-07-30",
        "seasonDisplay": "2021",
        "dayNight": "night",
        "scheduledInnings": 9,
        "reverseHomeAwayStatus": false,
        "inningBreakLength": 120,
        "gamesInSeries": 3,
        "seriesGameNumber": 1,
        "seriesDescription": "Regular Season",
        "recordSource": "S",
        "ifNecessary": "N",
        "ifNecessaryDescription": "Normal Game"
      },
      { .. },

      "events": []
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/schedule

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
date required string

Provide a date. Example: 2021-07-30

Teams

Team section offers a range of endpoints that provide detailed information about baseball teams. Developers can access general team data, team rosters, historical records, personnel details, affiliated teams, and coaching staff information.

GET /v1/teams

requires authentication

Get baseball team information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/teams'
params = {
  'teamId': '4164',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/teams';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'teamId' => '4164',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/teams"
);

const params = {
    "teamId": "4164",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/teams?teamId=4164" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": [
      {
        "springLeague": {
          "id": 114,
          "name": "Cactus League",
          "abbreviation": "CL"
        },
        "allStarStatus": "N",
        "id": 133,
        "name": "Oakland Athletics",
        "season": 2023,
        "venue": {
          "id": 10,
          "name": "Oakland Coliseum"
        },
        "springVenue": {
          "id": 2507
        },
        "teamCode": "oak",
        "fileCode": "oak",
        "abbreviation": "OAK",
        "teamName": "Athletics",
        "locationName": "Oakland",
        "firstYearOfPlay": "1901",
        "league": {
          "id": 103,
          "name": "American League"
        },
        "division": {
          "id": 200,
          "name": "American League West"
        },
        "sport": {
          "id": 1,
          "name": "Major League Baseball"
        },
        "shortName": "Oakland",
        "franchiseName": "Oakland",
        "clubName": "Athletics",
        "active": true
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/teams

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
teamId required integer

Provide a team ID. Example: 4164

GET /v1/teams-history

requires authentication

Get baseball team's history information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/teams-history'
params = {
  'teamIds': '145',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/teams-history';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'teamIds' => '145',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/teams-history"
);

const params = {
    "teamIds": "145",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/teams-history?teamIds=145" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com"
    },
    "body": [
        {
            "allStarStatus": "N",
            "id": 149,
            "name": "Middletown Mansfields",
            "season": 1872,
            "venue": {
                "id": 401,
                "name": "TBD"
            },
            "teamCode": "mid",
            "fileCode": "t149",
            "abbreviation": "MID",
            "teamName": "Mansfields",
            "firstYearOfPlay": "1872",
            "league": {
                "id": 102,
                "name": "National Association"
            },
            "sport": {
                "id": 6,
                "name": "Historical Professional League"
            },
            "shortName": "Middletown",
            "franchiseName": "Middletown",
            "clubName": "Mansfields",
            "active": false
        }
    ]
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/teams-history

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
teamIds required integer

Provide a team ID. Example: 145

GET /v1/teams-coaches

requires authentication

Get baseball team's coaches information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/teams-coaches'
params = {
  'teamIds': '145',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/teams-coaches';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'teamIds' => '145',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/teams-coaches"
);

const params = {
    "teamIds": "145",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/teams-coaches?teamIds=145" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": {
      "roster": [
        {
          "person": {
            "id": 437073,
            "fullName": "Pedro Grifol"
          },
          "jerseyNumber": "5",
          "job": "Manager",
          "jobId": "MNGR",
          "title": "Manager"
        },
        {
          "person": {
            "id": 119271,
            "fullName": "Charlie Montoyo"
          },
          "jerseyNumber": "75",
          "job": "Bench Coach",
          "jobId": "COAB",
          "title": "Bench Coach"
        },
        { ... }
      ],
      "teamId": 145,
      "rosterType": "coach"
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/teams-coaches

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
teamIds required integer

Provide a team ID. Example: 145

GET /v1/teams-personnel

requires authentication

Get baseball team's personnel information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/teams-personnel'
params = {
  'teamIds': '145',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/teams-personnel';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'teamIds' => '145',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/teams-personnel"
);

const params = {
    "teamIds": "145",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/teams-personnel?teamIds=145" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com"
    },
    "body": {
        "roster": [
            {
                "person": {
                    "id": 580104,
                    "fullName": "Geoff Head"
                },
                "jerseyNumber": "",
                "job": "Director of Conditioning",
                "jobId": "DCON",
                "title": "Senior Director of Sports Performance"
            }
        ]
    }
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/teams-personnel

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
teamIds required integer

Provide a teamn ID. Example: 145

GET /v1/teams-affiliates

requires authentication

Get baseball team's affiliates information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/teams-affiliates'
params = {
  'teamIds': '145',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/teams-affiliates';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'teamIds' => '145',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/teams-affiliates"
);

const params = {
    "teamIds": "145",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/teams-affiliates?teamIds=145" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": {
      "teams": [
        {
          "springLeague": {
            "id": 114,
            "name": "Cactus League",
            "abbreviation": "CL"
          },
          "allStarStatus": "N",
          "id": 145,
          "name": "Chicago White Sox",
          "season": 2023,
          "venue": {
            "id": 4,
            "name": "Guaranteed Rate Field"
          },
          "springVenue": {
            "id": 3809
          },
          "teamCode": "cha",
          "fileCode": "cws",
          "abbreviation": "CWS",
          "teamName": "White Sox",
          "locationName": "Chicago",
          "firstYearOfPlay": "1901",
          "league": {
            "id": 103,
            "name": "American League"
          },
          "division": {
            "id": 202,
            "name": "American League Central"
          },
          "sport": {
            "id": 1,
            "name": "Major League Baseball"
          },
          "shortName": "Chi White Sox",
          "franchiseName": "Chicago",
          "clubName": "White Sox",
          "active": true
        },
        { ... }
      ]
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/teams-affiliates

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
teamIds required integer

Provide a team ID. Example: 145

GET /v1/teams-roster

requires authentication

Get baseball team's roster information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/teams-roster'
params = {
  'teamIds': '145',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/teams-roster';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'teamIds' => '145',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/teams-roster"
);

const params = {
    "teamIds": "145",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/teams-roster?teamIds=145" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": {
      "roster": [
        {
          "person": {
            "id": 607481,
            "fullName": "Aaron Bummer"
          },
          "jerseyNumber": "39",
          "position": {
            "code": "1",
            "name": "Pitcher",
            "type": "Pitcher",
            "abbreviation": "P"
          },
          "status": {
            "code": "A",
            "description": "Active"
          },
          "parentTeamId": 145
        },
        {
          "person": {
            "id": 656514,
            "fullName": "Adam Haseley"
          },
          "jerseyNumber": "51",
          "position": {
            "code": "9",
            "name": "Outfielder",
            "type": "Outfielder",
            "abbreviation": "RF"
          },
          "status": {
            "code": "A",
            "description": "Active"
          },
          "parentTeamId": 145
        },
        {
          "person": {
            "id": 666208,
            "fullName": "Alex Speas"
          },
          "jerseyNumber": "",
          "position": {
            "code": "1",
            "name": "Pitcher",
            "type": "Pitcher",
            "abbreviation": "P"
          },
          "status": {
            "code": "A",
            "description": "Active"
          },
          "parentTeamId": 145
        },
        { ... }
      ],
      "teamId": 145,
      "rosterType": "active"
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/teams-roster

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
teamIds required integer

Provide a team ID. Example: 145

Games

Game section includes endpoints for retrieving detailed box score data, play-by-play descriptions, statistical probabilities, and visual game matrices.

GET /v1/games

requires authentication

Get baseball games information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/games'
params = {
  'gamePk': '633282',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/games';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'gamePk' => '633282',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/games"
);

const params = {
    "gamePk": "633282",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/games?gamePk=633282" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
  "meta": {
    "version": "v1.0",
    "status": 200,
    "copywrite": "https://steadyapi.com",
    "wait": 10,
    "timeStamp": "20210711_205415",
    "gameEvents": [
      "field_out",
      "game_finished"
    ],
    "logicalEvents": [
      "midInning",
      "countChange",
      "count10",
      "newLeftHandedHit",
      "basesEmpty",
      "gameStateChangeToGameOver"
    ]
  },
  "body": {
    "game": {
      "pk": 633282,
      "type": "R",
      "doubleHeader": "N",
      "id": "2021/07/11/chamlb-balmlb-1",
      "gamedayType": "P",
      "tiebreaker": "N",
      "gameNumber": 1,
      "calendarEventID": "14-633282-2021-07-11",
      "season": "2021",
      "seasonDisplay": "2021"
    },
    "datetime": {
      {...}
    },
    "status": {
      {...}
    },
    "teams": {
      {...}
    },
    "players": {
      {...}
    },
    "venue": {
      {...}
    },
    "officialVenue": {
      {...}
    },
    "weather": {
      {...}
    },
    "gameInfo": {
      {...}
    },
    "review": {
      {...}
    },
    "flags": {
      {...}
    },
    "alerts": [],
    "probablePitchers": {
      {...}
    },
    "officialScorer": {
      {...}
    },
    "primaryDatacaster": {
      {...}
    },
    "moundVisits": {
      {...}
    }
  }
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/games

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
gamePk required string

Provide a game primary key. Example: 633282

GET /v1/games-boxscore

requires authentication

Get baseball game's boxscore information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/games-boxscore'
params = {
  'gamePk': '633282',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/games-boxscore';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'gamePk' => '633282',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/games-boxscore"
);

const params = {
    "gamePk": "633282",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/games-boxscore?gamePk=633282" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": {
      "away": {
        "team": {
          "springLeague": {
            "id": 114,
            "name": "Cactus League",
            "abbreviation": "CL"
          },
          "allStarStatus": "N",
          "id": 145,
          "name": "Chicago White Sox",
          "season": 2021,
          "venue": {
            "id": 4,
            "name": "Guaranteed Rate Field"
          },
          "springVenue": {
            "id": 3809
          },
          "teamCode": "cha",
          "fileCode": "cws",
          "abbreviation": "CWS",
          "teamName": "White Sox",
          "locationName": "Chicago",
          "firstYearOfPlay": "1901",
          "league": {
            "id": 103,
            "name": "American League"
          },
          "division": {
            "id": 202,
            "name": "American League Central"
          },
          "sport": {
            "id": 1,
            "name": "Major League Baseball"
          },
          "shortName": "Chi White Sox",
          "record": {
            "gamesPlayed": 89,
            "wildCardGamesBack": "-",
            "leagueGamesBack": "-",
            "springLeagueGamesBack": "-",
            "sportGamesBack": "-",
            "divisionGamesBack": "-",
            "conferenceGamesBack": "-",
            "leagueRecord": {
              "wins": 54,
              "losses": 35,
              "ties": 0,
              "pct": ".607"
            },
            "records": [],
            "divisionLeader": false,
            "wins": 54,
            "losses": 35,
            "winningPercentage": ".607"
          },
          "franchiseName": "Chicago",
          "clubName": "White Sox",
          "active": true
        },
        "teamStats": {
          "batting": {
            "flyOuts": 4,
            "groundOuts": 7,
            "runs": 7,
            "doubles": 1,
            "triples": 0,
            "homeRuns": 3,
            "strikeOuts": 11,
            "baseOnBalls": 5,
            "intentionalWalks": 0,
            "hits": 8,
            "hitByPitch": 1,
            "avg": ".257",
            "atBats": 35,
            "obp": ".341",
            "slg": ".417",
            "ops": ".758",
            "caughtStealing": 1,
            "stolenBases": 0,
            "stolenBasePercentage": ".000",
            "groundIntoDoublePlay": 0,
            "groundIntoTriplePlay": 0,
            "plateAppearances": 42,
            "totalBases": 18,
            "rbi": 7,
            "leftOnBase": 13,
            "sacBunts": 1,
            "sacFlies": 0,
            "catchersInterference": 0,
            "pickoffs": 1,
            "atBatsPerHomeRun": "11.67"
          },
          "pitching": {
            "groundOuts": 0,
            "airOuts": 0,
            "runs": 5,
            "doubles": 0,
            "triples": 0,
            "homeRuns": 2,
            "strikeOuts": 14,
            "baseOnBalls": 4,
            "intentionalWalks": 0,
            "hits": 5,
            "hitByPitch": 1,
            "atBats": 34,
            "obp": ".250",
            "caughtStealing": 0,
            "stolenBases": 1,
            "stolenBasePercentage": "1.000",
            "numberOfPitches": 167,
            "era": "3.58",
            "inningsPitched": "10.0",
            "saveOpportunities": 0,
            "earnedRuns": 4,
            "whip": "1.21",
            "battersFaced": 40,
            "outs": 30,
            "completeGames": 0,
            "shutouts": 0,
            "pitchesThrown": 167,
            "balls": 60,
            "strikes": 107,
            "strikePercentage": ".640",
            "hitBatsmen": 1,
            "balks": 0,
            "wildPitches": 2,
            "pickoffs": 0,
            "groundOutsToAirouts": "-.--",
            "rbi": 5,
            "pitchesPerInning": "16.70",
            "runsScoredPer9": "4.50",
            "homeRunsPer9": "1.80",
            "inheritedRunners": 0,
            "inheritedRunnersScored": 0,
            "catchersInterference": 0,
            "sacBunts": 0,
            "sacFlies": 1,
            "passedBall": 0
          },
          "fielding": {
            "caughtStealing": 0,
            "stolenBases": 1,
            "stolenBasePercentage": "1.000",
            "assists": 6,
            "putOuts": 30,
            "errors": 1,
            "chances": 37,
            "passedBall": 0,
            "pickoffs": 0
          }
        },
        "players": {
          "ID621114": {
            "person": {
              "id": 621114,
              "fullName": "Ryan Burr"
            },
            "jerseyNumber": "61",
            "position": {
              "code": "1",
              "name": "Pitcher",
              "type": "Pitcher",
              "abbreviation": "P"
            },
            "status": {
              "code": "A",
              "description": "Active"
            },
            "parentTeamId": 145,
            "stats": {
              "batting": [],
              "pitching": [],
              "fielding": []
            },
            "seasonStats": {
              "batting": {
                "gamesPlayed": 2,
                "flyOuts": 0,
                "groundOuts": 0,
                "runs": 0,
                "doubles": 0,
                "triples": 0,
                "homeRuns": 0,
                "strikeOuts": 0,
                "baseOnBalls": 0,
                "intentionalWalks": 0,
                "hits": 0,
                "hitByPitch": 0,
                "avg": ".000",
                "atBats": 0,
                "obp": ".000",
                "slg": ".000",
                "ops": ".000",
                "caughtStealing": 0,
                "stolenBases": 0,
                "stolenBasePercentage": ".---",
                "groundIntoDoublePlay": 0,
                "groundIntoTriplePlay": 0,
                "plateAppearances": 0,
                "totalBases": 0,
                "rbi": 0,
                "leftOnBase": 0,
                "sacBunts": 0,
                "sacFlies": 0,
                "babip": ".---",
                "catchersInterference": 0,
                "pickoffs": 0,
                "atBatsPerHomeRun": "-.--"
              },
              "pitching": {
                "gamesPlayed": 14,
                "gamesStarted": 1,
                "groundOuts": 19,
                "airOuts": 15,
                "runs": 2,
                "doubles": 1,
                "triples": 0,
                "homeRuns": 1,
                "strikeOuts": 14,
                "baseOnBalls": 8,
                "intentionalWalks": 0,
                "hits": 5,
                "hitByPitch": 0,
                "atBats": 52,
                "obp": ".217",
                "caughtStealing": 0,
                "stolenBases": 1,
                "stolenBasePercentage": "1.000",
                "numberOfPitches": 262,
                "era": "1.08",
                "inningsPitched": "16.2",
                "wins": 1,
                "losses": 0,
                "saves": 0,
                "saveOpportunities": 0,
                "holds": 2,
                "blownSaves": 0,
                "earnedRuns": 2,
                "whip": "0.78",
                "battersFaced": 61,
                "outs": 50,
                "gamesPitched": 14,
                "completeGames": 0,
                "shutouts": 0,
                "pitchesThrown": 262,
                "balls": 104,
                "strikes": 158,
                "strikePercentage": ".600",
                "hitBatsmen": 0,
                "balks": 0,
                "wildPitches": 4,
                "pickoffs": 0,
                "groundOutsToAirouts": "1.27",
                "rbi": 0,
                "winPercentage": "1.000",
                "pitchesPerInning": "15.72",
                "gamesFinished": 3,
                "strikeoutWalkRatio": "1.75",
                "strikeoutsPer9Inn": "7.56",
                "walksPer9Inn": "4.32",
                "hitsPer9Inn": "2.70",
                "runsScoredPer9": "1.08",
                "homeRunsPer9": "0.54",
                "inheritedRunners": 6,
                "inheritedRunnersScored": 2,
                "catchersInterference": 0,
                "sacBunts": 1,
                "sacFlies": 0,
                "passedBall": 0
              },
              "fielding": {
                "caughtStealing": 0,
                "stolenBases": 0,
                "stolenBasePercentage": ".---",
                "assists": 1,
                "putOuts": 2,
                "errors": 0,
                "chances": 3,
                "fielding": "1.000",
                "passedBall": 0,
                "pickoffs": 0
              }
            },
            "gameStatus": {
              "isCurrentBatter": false,
              "isCurrentPitcher": false,
              "isOnBench": true,
              "isSubstitute": false
            }
          },
          { ... },
        },
        "batters": [
          641313,
          660162,
          547989,
          571718,
          641553,
          544725,
          683734,
          657757,
          571740,
          664874,
          656302,
          656629,
          676051,
          676979,
          521230,
          614179,
          641582
        ],
        "pitchers": [
          656302,
          656629,
          676051,
          676979,
          521230,
          614179,
          641582
        ],
        "bench": [
          669394,
          641470,
          664901
        ],
        "bullpen": [
          621114,
          605240,
          608337,
          572971,
          458681,
          607074
        ],
        "battingOrder": [
          641313,
          660162,
          547989,
          571718,
          641553,
          544725,
          683734,
          571740,
          664874
        ],
        "info": [
          {
            "title": "BATTING",
            "fieldList": [
              {
                "label": "2B",
                "value": "Zavala (2, Watkins)."
              },
              {
                "label": "HR",
                "value": "Vaughn 2 (10, 4th inning off Watkins, 0 on, 2 out, 6th inning off Sulser, 2 on, 1 out); Engel (5, 10th inning off Wells, T, 2 on, 2 out)."
              },
              {
                "label": "TB",
                "value": "Abreu, J; Anderson, Ti; Engel 5; García; Vaughn 8; Zavala 2."
              },
              {
                "label": "RBI",
                "value": "Engel 3 (11); Vaughn 4 (26)."
              },
              {
                "label": "2-out RBI",
                "value": "Engel 3; Vaughn."
              },
              {
                "label": "Runners left in scoring position, 2 out",
                "value": "Goodwin 2."
              },
              {
                "label": "SAC",
                "value": "García."
              },
              {
                "label": "Team RISP",
                "value": "2-for-7."
              },
              {
                "label": "Team LOB",
                "value": "6."
              }
            ]
          },
          {
            "title": "BASERUNNING",
            "fieldList": [
              {
                "label": "CS",
                "value": "Engel (1, 3rd base by Watkins/Severino)."
              },
              {
                "label": "PO",
                "value": "Engel (2nd base by Watkins)."
              }
            ]
          },
          {
            "title": "FIELDING",
            "fieldList": [
              {
                "label": "E",
                "value": "Zavala (1, throw)."
              }
            ]
          }
        ],
        "note": []
      },
      "home": {
        "team": {
          "springLeague": {
            "id": 115,
            "name": "Grapefruit League",
            "abbreviation": "GL"
          },
          "allStarStatus": "N",
          "id": 110,
          "name": "Baltimore Orioles",
          "season": 2021,
          "venue": {
            "id": 2,
            "name": "Oriole Park at Camden Yards"
          },
          "springVenue": {
            "id": 2508
          },
          "teamCode": "bal",
          "fileCode": "bal",
          "abbreviation": "BAL",
          "teamName": "Orioles",
          "locationName": "Baltimore",
          "firstYearOfPlay": "1901",
          "league": {
            "id": 103,
            "name": "American League"
          },
          "division": {
            "id": 201,
            "name": "American League East"
          },
          "sport": {
            "id": 1,
            "name": "Major League Baseball"
          },
          "shortName": "Baltimore",
          "record": {
            "gamesPlayed": 89,
            "wildCardGamesBack": "-",
            "leagueGamesBack": "-",
            "springLeagueGamesBack": "-",
            "sportGamesBack": "-",
            "divisionGamesBack": "-",
            "conferenceGamesBack": "-",
            "leagueRecord": {
              "wins": 28,
              "losses": 61,
              "ties": 0,
              "pct": ".315"
            },
            "records": [],
            "divisionLeader": false,
            "wins": 28,
            "losses": 61,
            "winningPercentage": ".315"
          },
          "franchiseName": "Baltimore",
          "clubName": "Orioles",
          "active": true
        },
        { ... }
      }
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/games-boxscore

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
gamePk required string

Provide a game primary key. Example: 633282

GET /v1/games-playbyplay

requires authentication

Get baseball game playbyplay information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/games-playbyplay'
params = {
  'gamePk': '633282',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/games-playbyplay';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'gamePk' => '633282',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/games-playbyplay"
);

const params = {
    "gamePk": "633282",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/games-playbyplay?gamePk=633282" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": [
      {
        "result": {
          "type": "atBat",
          "event": "Flyout",
          "eventType": "field_out",
          "description": "Tim Anderson flies out to right fielder Austin Hays.",
          "rbi": 0,
          "awayScore": 0,
          "homeScore": 0,
          "isOut": true
        },
        "about": {
          "atBatIndex": 0,
          "halfInning": "top",
          "isTopInning": true,
          "inning": 1,
          "startTime": "2021-07-11T17:06:43.879Z",
          "endTime": "2021-07-11T17:07:08.386Z",
          "isComplete": true,
          "isScoringPlay": false,
          "hasReview": false,
          "hasOut": true,
          "captivatingIndex": 0
        },
        "count": {
          "balls": 1,
          "strikes": 0,
          "outs": 1
        },
        "matchup": {
          "batter": {
            "id": 641313,
            "fullName": "Tim Anderson"
          },
          "batSide": {
            "code": "R",
            "description": "Right"
          },
          "pitcher": {
            "id": 657093,
            "fullName": "Spenser Watkins"
          },
          "pitchHand": {
            "code": "R",
            "description": "Right"
          },
          "batterHotColdZones": [],
          "pitcherHotColdZones": [],
          "splits": {
            "batter": "vs_RHP",
            "pitcher": "vs_RHB",
            "menOnBase": "Empty"
          }
        },
        "pitchIndex": [
          3,
          4
        ],
        "actionIndex": [
          0,
          1,
          2
        ],
        "runnerIndex": [
          0
        ],
        "runners": [
          {
            "movement": {
              "originBase": null,
              "start": null,
              "end": null,
              "outBase": "1B",
              "isOut": true,
              "outNumber": 1
            },
            "details": {
              "event": "Flyout",
              "eventType": "field_out",
              "movementReason": null,
              "runner": {
                "id": 641313,
                "fullName": "Tim Anderson"
              },
              "responsiblePitcher": null,
              "isScoringEvent": false,
              "rbi": false,
              "earned": false,
              "teamUnearned": false,
              "playIndex": 4
            },
            "credits": [
              {
                "player": {
                  "id": 669720
                },
                "position": {
                  "code": "9",
                  "name": "Outfielder",
                  "type": "Outfielder",
                  "abbreviation": "RF"
                },
                "credit": "f_putout"
              }
            ]
          }
        ],
        "playEvents": [
          {
            "details": {
              "description": "Status Change - Pre-Game",
              "event": "Game Advisory",
              "eventType": "game_advisory",
              "awayScore": 0,
              "homeScore": 0,
              "isScoringPlay": false,
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "index": 0,
            "startTime": "2021-07-11T15:44:37.970Z",
            "endTime": "2021-07-11T16:44:02.445Z",
            "isPitch": false,
            "type": "action",
            "player": {
              "id": 641313
            }
          },
          {
            "details": {
              "description": "Status Change - Warmup",
              "event": "Game Advisory",
              "eventType": "game_advisory",
              "awayScore": 0,
              "homeScore": 0,
              "isScoringPlay": false,
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "index": 1,
            "startTime": "2021-07-11T16:44:02.445Z",
            "endTime": "2021-07-11T17:05:06.480Z",
            "isPitch": false,
            "type": "action",
            "player": {
              "id": 641313
            }
          },
          {
            "details": {
              "description": "Status Change - In Progress",
              "event": "Game Advisory",
              "eventType": "game_advisory",
              "awayScore": 0,
              "homeScore": 0,
              "isScoringPlay": false,
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "index": 2,
            "startTime": "2021-07-11T17:05:06.480Z",
            "endTime": "2021-07-11T17:06:46.187Z",
            "isPitch": false,
            "type": "action",
            "player": {
              "id": 641313
            }
          },
          {
            "details": {
              "call": {
                "code": "B",
                "description": "Ball"
              },
              "description": "Ball",
              "code": "B",
              "ballColor": "rgba(39, 161, 39, 1.0)",
              "trailColor": "rgba(188, 0, 33, 1.0)",
              "isInPlay": false,
              "isStrike": false,
              "isBall": true,
              "type": {
                "code": "FF",
                "description": "Four-Seam Fastball"
              },
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 1,
              "strikes": 0,
              "outs": 0
            },
            "pitchData": {
              "startSpeed": 91.2,
              "endSpeed": 83,
              "strikeZoneTop": 3.40999999999662,
              "strikeZoneBottom": 1.5949440880005,
              "coordinates": {
                "aY": 29.99485647835065,
                "aZ": -14.188669282525067,
                "pfxX": -0.23275926979375328,
                "pfxZ": 10.119957913784841,
                "pX": -0.8404390482023597,
                "pZ": 3.5539286414226545,
                "vX0": 0.23585784006349836,
                "vY0": -132.84404166305208,
                "vZ0": -4.391249208564353,
                "x": 149.04,
                "y": 142.82,
                "x0": -0.900379505009517,
                "y0": 50.00158299770269,
                "z0": 6.2688366315464625,
                "aX": -0.4136018115942549
              },
              "breaks": {
                "breakAngle": 1.2,
                "breakLength": 3.6,
                "breakY": 24,
                "breakVertical": -15.5,
                "breakVerticalInduced": 17.5,
                "breakHorizontal": 0.4,
                "spinRate": 2176,
                "spinDirection": 188
              },
              "zone": 11,
              "typeConfidence": 0.92,
              "plateTime": 0.4132325218665098,
              "extension": 6.385069523352935
            },
            "index": 3,
            "playId": "87340bd5-da0a-4ca0-9ece-17adb65967b8",
            "pitchNumber": 1,
            "startTime": "2021-07-11T17:06:46.187Z",
            "endTime": "2021-07-11T17:06:50.197Z",
            "isPitch": true,
            "type": "pitch"
          },
          {
            "details": {
              "call": {
                "code": "X",
                "description": "In play, out(s)"
              },
              "description": "In play, out(s)",
              "code": "X",
              "ballColor": "rgba(26, 86, 190, 1.0)",
              "trailColor": "rgba(188, 0, 33, 1.0)",
              "isInPlay": true,
              "isStrike": false,
              "isBall": false,
              "type": {
                "code": "FF",
                "description": "Four-Seam Fastball"
              },
              "isOut": true,
              "hasReview": false
            },
            "count": {
              "balls": 1,
              "strikes": 0,
              "outs": 0
            },
            "pitchData": {
              "startSpeed": 91.6,
              "endSpeed": 82.9,
              "strikeZoneTop": 3.411,
              "strikeZoneBottom": 1.565,
              "coordinates": {
                "aY": 31.674777114213374,
                "aZ": -13.747835784020623,
                "pfxX": -0.3926811158439465,
                "pfxZ": 10.38313783739772,
                "pX": -0.4738551978738176,
                "pZ": 2.535457568165602,
                "vX0": 1.211448304759197,
                "vY0": -133.1441610441423,
                "vZ0": -6.912802115526949,
                "x": 135.06,
                "y": 170.32,
                "x0": -0.8860750373551041,
                "y0": 50.00458439281981,
                "z0": 6.1829605164761166,
                "aX": -0.6971762080581045
              },
              "breaks": {
                "breakAngle": 1.2,
                "breakLength": 3.6,
                "breakY": 24,
                "breakVertical": -15.6,
                "breakVerticalInduced": 17.3,
                "breakHorizontal": 0.4,
                "spinRate": 2178,
                "spinDirection": 189
              },
              "zone": 4,
              "typeConfidence": 0.93,
              "plateTime": 0.41322251347201533,
              "extension": 6.394053303916425
            },
            "hitData": {
              "launchSpeed": 93.5,
              "launchAngle": 36,
              "totalDistance": 325,
              "trajectory": "fly_ball",
              "hardness": "medium",
              "location": "9",
              "coordinates": {
                "coordX": 181.16,
                "coordY": 80.51
              }
            },
            "index": 4,
            "playId": "445c6e78-ce7e-4a48-8b12-0aa974317530",
            "pitchNumber": 2,
            "startTime": "2021-07-11T17:07:00.736Z",
            "endTime": "2021-07-11T17:07:08.386Z",
            "isPitch": true,
            "type": "pitch"
          }
        ],
        "playEndTime": "2021-07-11T17:07:08.386Z",
        "atBatIndex": 0
      },
      { ... }

    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/games-playbyplay

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
gamePk required string

Provide a game primary key. Example: 633282

GET /v1/games-matrix

requires authentication

Get baseball game matrix information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/games-matrix'
params = {
  'gamePk': '633282',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/games-matrix';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'gamePk' => '633282',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/games-matrix"
);

const params = {
    "gamePk": "633282",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/games-matrix?gamePk=633282" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
        "version": "v1.0",
        "status": 200,
        "copywrite": "https://steadyapi.com"
    },
    "body": {
        "game": {
            "gamePk": 633282,
            "gameGuid": "151b2de5-9939-4305-849c-41b8a806d5a1",
            "gameType": "R",
            "season": "2021",
            "gameDate": "2021-07-11T17:05:00Z",
            "officialDate": "2021-07-11",
            "status": {
                "abstractGameState": "Final",
                "codedGameState": "F",
                "detailedState": "Final",
                "statusCode": "F",
                "startTimeTBD": false,
                "abstractGameCode": "F"
            },
            "teams": {
                "away": {
                    "leagueRecord": {
                        "wins": 54,
                        "losses": 35,
                        "pct": ".607"
                    },
                    "score": 7,
                    "team": {
                        "id": 145,
                        "name": "Chicago White Sox"
                    },
                    "isWinner": true,
                    "probablePitcher": {
                        "id": 656302,
                        "fullName": "Dylan Cease"
                    },
                    "splitSquad": false,
                    "seriesNumber": 29
                },
                "home": {
                    "leagueRecord": {
                        "wins": 28,
                        "losses": 61,
                        "pct": ".315"
                    },
                    "score": 5,
                    "team": {
                        "id": 110,
                        "name": "Baltimore Orioles"
                    },
                    "isWinner": false,
                    "probablePitcher": {
                        "id": 657093,
                        "fullName": "Spenser Watkins"
                    },
                    "splitSquad": false,
                    "seriesNumber": 29
                }
            },
            "venue": {
                "id": 2,
                "name": "Oriole Park at Camden Yards"
            },
            "content": [],
            "isTie": false,
            "gameNumber": 1,
            "publicFacing": true,
            "doubleHeader": "N",
            "gamedayType": "P",
            "tiebreaker": "N",
            "calendarEventID": "14-633282-2021-07-11",
            "seasonDisplay": "2021",
            "dayNight": "day",
            "scheduledInnings": 9,
            "reverseHomeAwayStatus": false,
            "inningBreakLength": 120,
            "gamesInSeries": 3,
            "seriesGameNumber": 3,
            "seriesDescription": "Regular Season",
            "recordSource": "S",
            "ifNecessary": "N",
            "ifNecessaryDescription": "Normal Game",
            "gameId": "2021/07/11/chamlb-balmlb-1"
        },
        "leftFieldSacFlyProbability": [],
        "centerFieldSacFlyProbability": [],
        "rightFieldSacFlyProbability": [],
        "awayWinProbability": 100,
        "homeWinProbability": 0
    }
}
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/games-matrix

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
gamePk required string

Provide a game primary key. Example: 633282

GET /v1/games-timestamps

requires authentication

Get baseball game timestamps information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/games-timestamps'
params = {
  'gamePk': '633282',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/games-timestamps';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'gamePk' => '633282',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/games-timestamps"
);

const params = {
    "gamePk": "633282",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/games-timestamps?gamePk=633282" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": [
      "20210711_154437",
      "20210711_164402",
      "20210711_170506",
      "20210711_170643",
      "20210711_170646",
      "20210711_170700",
      "20210711_170708",
      "20210711_170713",
      "20210711_170737",
      ...
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/games-timestamps

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
gamePk required string

Provide a game primary key. Example: 633282

GET /v1/games-probability

requires authentication

Get baseball game probabilities information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/games-probability'
params = {
  'gamePk': '633282',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/games-probability';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'gamePk' => '633282',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/games-probability"
);

const params = {
    "gamePk": "633282",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/games-probability?gamePk=633282" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com"
    },
    "body": [
      {
        "result": {
          "type": "atBat",
          "event": "Flyout",
          "eventType": "field_out",
          "description": "Tim Anderson flies out to right fielder Austin Hays.",
          "rbi": 0,
          "awayScore": 0,
          "homeScore": 0,
          "isOut": true
        },
        "about": {
          "atBatIndex": 0,
          "halfInning": "top",
          "isTopInning": true,
          "inning": 1,
          "startTime": "2021-07-11T17:06:43.879Z",
          "endTime": "2021-07-11T17:07:08.386Z",
          "isComplete": true,
          "isScoringPlay": false,
          "hasReview": false,
          "hasOut": true,
          "captivatingIndex": 0
        },
        "count": {
          "balls": 1,
          "strikes": 0,
          "outs": 1
        },
        "matchup": {
          "batter": {
            "id": 641313,
            "fullName": "Tim Anderson"
          },
          "batSide": {
            "code": "R",
            "description": "Right"
          },
          "pitcher": {
            "id": 657093,
            "fullName": "Spenser Watkins"
          },
          "pitchHand": {
            "code": "R",
            "description": "Right"
          },
          "batterHotColdZones": [],
          "pitcherHotColdZones": [],
          "splits": {
            "batter": "vs_RHP",
            "pitcher": "vs_RHB",
            "menOnBase": "Empty"
          }
        },
        "pitchIndex": [
          3,
          4
        ],
        "actionIndex": [
          0,
          1,
          2
        ],
        "runnerIndex": [
          0
        ],
        "runners": [
          {
            "movement": {
              "originBase": null,
              "start": null,
              "end": null,
              "outBase": "1B",
              "isOut": true,
              "outNumber": 1
            },
            "details": {
              "event": "Flyout",
              "eventType": "field_out",
              "movementReason": null,
              "runner": {
                "id": 641313,
                "fullName": "Tim Anderson"
              },
              "responsiblePitcher": null,
              "isScoringEvent": false,
              "rbi": false,
              "earned": false,
              "teamUnearned": false,
              "playIndex": 4
            },
            "credits": [
              {
                "player": {
                  "id": 669720
                },
                "position": {
                  "code": "9",
                  "name": "Outfielder",
                  "type": "Outfielder",
                  "abbreviation": "RF"
                },
                "credit": "f_putout"
              }
            ]
          }
        ],
        "playEvents": [
          {
            "details": {
              "description": "Status Change - Pre-Game",
              "event": "Game Advisory",
              "eventType": "game_advisory",
              "awayScore": 0,
              "homeScore": 0,
              "isScoringPlay": false,
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "preCount": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "index": 0,
            "startTime": "2021-07-11T15:44:37.970Z",
            "endTime": "2021-07-11T16:44:02.445Z",
            "isPitch": false,
            "type": "action",
            "player": {
              "id": 641313
            },
            "contextMetrics": []
          },
          {
            "details": {
              "description": "Status Change - Warmup",
              "event": "Game Advisory",
              "eventType": "game_advisory",
              "awayScore": 0,
              "homeScore": 0,
              "isScoringPlay": false,
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "preCount": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "index": 1,
            "startTime": "2021-07-11T16:44:02.445Z",
            "endTime": "2021-07-11T17:05:06.480Z",
            "isPitch": false,
            "type": "action",
            "player": {
              "id": 641313
            },
            "contextMetrics": []
          },
          {
            "details": {
              "description": "Status Change - In Progress",
              "event": "Game Advisory",
              "eventType": "game_advisory",
              "awayScore": 0,
              "homeScore": 0,
              "isScoringPlay": false,
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "preCount": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "index": 2,
            "startTime": "2021-07-11T17:05:06.480Z",
            "endTime": "2021-07-11T17:06:46.187Z",
            "isPitch": false,
            "type": "action",
            "player": {
              "id": 641313
            },
            "contextMetrics": []
          },
          {
            "details": {
              "call": {
                "code": "B",
                "description": "Ball"
              },
              "description": "Ball",
              "code": "B",
              "ballColor": "rgba(39, 161, 39, 1.0)",
              "trailColor": "rgba(188, 0, 33, 1.0)",
              "isInPlay": false,
              "isStrike": false,
              "isBall": true,
              "type": {
                "code": "FF",
                "description": "Four-Seam Fastball"
              },
              "isOut": false,
              "hasReview": false
            },
            "count": {
              "balls": 1,
              "strikes": 0,
              "outs": 0
            },
            "preCount": {
              "balls": 0,
              "strikes": 0,
              "outs": 0
            },
            "pitchData": {
              "startSpeed": 91.2,
              "endSpeed": 83,
              "strikeZoneTop": 3.40999999999662,
              "strikeZoneBottom": 1.5949440880005,
              "coordinates": {
                "aY": 29.99485647835065,
                "aZ": -14.188669282525067,
                "pfxX": -0.23275926979375328,
                "pfxZ": 10.119957913784841,
                "pX": -0.8404390482023597,
                "pZ": 3.5539286414226545,
                "vX0": 0.23585784006349836,
                "vY0": -132.84404166305208,
                "vZ0": -4.391249208564353,
                "x": 149.04,
                "y": 142.82,
                "x0": -0.900379505009517,
                "y0": 50.00158299770269,
                "z0": 6.2688366315464625,
                "aX": -0.4136018115942549
              },
              "breaks": {
                "breakAngle": 1.2,
                "breakLength": 3.6,
                "breakY": 24,
                "breakVertical": -15.5,
                "breakVerticalInduced": 17.5,
                "breakHorizontal": 0.4,
                "spinRate": 2176,
                "spinDirection": 188
              },
              "zone": 11,
              "typeConfidence": 0.92,
              "plateTime": 0.4132325218665098,
              "extension": 6.385069523352935
            },
            "index": 3,
            "playId": "87340bd5-da0a-4ca0-9ece-17adb65967b8",
            "pitchNumber": 1,
            "startTime": "2021-07-11T17:06:46.187Z",
            "endTime": "2021-07-11T17:06:50.197Z",
            "isPitch": true,
            "type": "pitch",
            "defense": {
              "pitcher": {
                "id": 657093,
                "pitchHand": {
                  "code": "R",
                  "description": "Right"
                }
              },
              "catcher": {
                "id": 600474
              },
              "first": {
                "id": 663624
              },
              "second": {
                "id": 642736
              },
              "third": {
                "id": 642721
              },
              "shortstop": {
                "id": 602104
              },
              "left": {
                "id": 663630
              },
              "center": {
                "id": 656775
              },
              "right": {
                "id": 669720
              }
            },
            "offense": {
              "batter": {
                "id": 641313,
                "batSide": {
                  "code": "R",
                  "description": "Right"
                }
              },
              "batterPosition": {
                "code": "6",
                "name": "Shortstop",
                "type": "Infielder",
                "abbreviation": "SS"
              }
            },
            "officials": [
              {
                "official": {
                  "id": 598411
                },
                "officialType": "Home Plate"
              },
              {
                "official": {
                  "id": 427235
                },
                "officialType": "First Base"
              },
              {
                "official": {
                  "id": 484499
                },
                "officialType": "Second Base"
              },
              {
                "official": {
                  "id": 483912
                },
                "officialType": "Third Base"
              }
            ],
            "contextMetrics": []
          },
          {
            "details": {
              "call": {
                "code": "X",
                "description": "In play, out(s)"
              },
              "description": "In play, out(s)",
              "code": "X",
              "ballColor": "rgba(26, 86, 190, 1.0)",
              "trailColor": "rgba(188, 0, 33, 1.0)",
              "isInPlay": true,
              "isStrike": false,
              "isBall": false,
              "type": {
                "code": "FF",
                "description": "Four-Seam Fastball"
              },
              "isOut": true,
              "hasReview": false
            },
            "count": {
              "balls": 1,
              "strikes": 0,
              "outs": 0
            },
            "preCount": {
              "balls": 1,
              "strikes": 0,
              "outs": 0
            },
            "pitchData": {
              "startSpeed": 91.6,
              "endSpeed": 82.9,
              "strikeZoneTop": 3.411,
              "strikeZoneBottom": 1.565,
              "coordinates": {
                "aY": 31.674777114213374,
                "aZ": -13.747835784020623,
                "pfxX": -0.3926811158439465,
                "pfxZ": 10.38313783739772,
                "pX": -0.4738551978738176,
                "pZ": 2.535457568165602,
                "vX0": 1.211448304759197,
                "vY0": -133.1441610441423,
                "vZ0": -6.912802115526949,
                "x": 135.06,
                "y": 170.32,
                "x0": -0.8860750373551041,
                "y0": 50.00458439281981,
                "z0": 6.1829605164761166,
                "aX": -0.6971762080581045
              },
              "breaks": {
                "breakAngle": 1.2,
                "breakLength": 3.6,
                "breakY": 24,
                "breakVertical": -15.6,
                "breakVerticalInduced": 17.3,
                "breakHorizontal": 0.4,
                "spinRate": 2178,
                "spinDirection": 189
              },
              "zone": 4,
              "typeConfidence": 0.93,
              "plateTime": 0.41322251347201533,
              "extension": 6.394053303916425
            },
            "hitData": {
              "launchSpeed": 93.5,
              "launchAngle": 36,
              "totalDistance": 325,
              "trajectory": "fly_ball",
              "hardness": "medium",
              "location": "9",
              "coordinates": {
                "coordX": 181.16,
                "coordY": 80.51
              }
            },
            "index": 4,
            "playId": "445c6e78-ce7e-4a48-8b12-0aa974317530",
            "pitchNumber": 2,
            "startTime": "2021-07-11T17:07:00.736Z",
            "endTime": "2021-07-11T17:07:08.386Z",
            "isPitch": true,
            "type": "pitch",
            "defense": {
              "pitcher": {
                "id": 657093,
                "pitchHand": {
                  "code": "R",
                  "description": "Right"
                }
              },
              "catcher": {
                "id": 600474
              },
              "first": {
                "id": 663624
              },
              "second": {
                "id": 642736
              },
              "third": {
                "id": 642721
              },
              "shortstop": {
                "id": 602104
              },
              "left": {
                "id": 663630
              },
              "center": {
                "id": 656775
              },
              "right": {
                "id": 669720
              }
            },
            "offense": {
              "batter": {
                "id": 641313,
                "batSide": {
                  "code": "R",
                  "description": "Right"
                }
              },
              "batterPosition": {
                "code": "6",
                "name": "Shortstop",
                "type": "Infielder",
                "abbreviation": "SS"
              }
            },
            "officials": [
              {
                "official": {
                  "id": 598411
                },
                "officialType": "Home Plate"
              },
              {
                "official": {
                  "id": 427235
                },
                "officialType": "First Base"
              },
              {
                "official": {
                  "id": 484499
                },
                "officialType": "Second Base"
              },
              {
                "official": {
                  "id": 483912
                },
                "officialType": "Third Base"
              }
            ],
            "contextMetrics": []
          }
        ],
        "credits": [
          {
            "player": {
              "id": 641313
            },
            "credit": "b_ab"
          },
          {
            "player": {
              "id": 657093
            },
            "credit": "p_ab"
          },
          {
            "player": {
              "id": 641313
            },
            "credit": "b_pa"
          },
          {
            "player": {
              "id": 657093
            },
            "credit": "p_pa"
          }
        ],
        "flags": [],
        "homeTeamWinProbability": 52.2,
        "awayTeamWinProbability": 47.8,
        "homeTeamWinProbabilityAdded": 2.200000000000003,
        "contextMetrics": [],
        "playEndTime": "2021-07-11T17:07:08.386Z",
        "atBatIndex": 0
      },
      { ... }
    ]
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/games-probability

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
gamePk required string

Provide a game primary key. Example: 633282

GET /v1/games-diffPatch

requires authentication

Get baseball game diffPatch information.

Example request:
import requests
import json

url = 'https://api.steadyapi.com/v1/mlb/games-diffPatch'
params = {
  'gamePk': '633282',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()
$client = new \GuzzleHttp\Client();
$url = 'https://api.steadyapi.com/v1/mlb/games-diffPatch';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
        ],
        'query' => [
            'gamePk' => '633282',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.steadyapi.com/v1/mlb/games-diffPatch"
);

const params = {
    "gamePk": "633282",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
curl --request GET \
    --get "https://api.steadyapi.com/v1/mlb/games-diffPatch?gamePk=633282" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}"

Example response (200, Success):


{
    "meta": {
      "version": "v1.0",
      "status": 200,
      "copywrite": "https://steadyapi.com",
      "wait": 10,
      "timeStamp": "20210711_205415",
      "gameEvents": [
        "field_out",
        "game_finished"
      ],
      "logicalEvents": [
        "midInning",
        "countChange",
        "count10",
        "newLeftHandedHit",
        "basesEmpty",
        "gameStateChangeToGameOver"
      ]
    },
    "body": {
      "game": {
        "pk": 633282,
        "type": "R",
        "doubleHeader": "N",
        "id": "2021/07/11/chamlb-balmlb-1",
        "gamedayType": "P",
        "tiebreaker": "N",
        "gameNumber": 1,
        "calendarEventID": "14-633282-2021-07-11",
        "season": "2021",
        "seasonDisplay": "2021"
      },
      "datetime": {
        "dateTime": "2021-07-11T17:05:00Z",
        "originalDate": "2021-07-11",
        "officialDate": "2021-07-11",
        "dayNight": "day",
        "time": "1:05",
        "ampm": "PM"
      },
      "status": {
        {...}
      },
      "teams": {
        {...}
      },
      "players": {
        {...}
      }
      "venue": {
        {...}
      },
      "officialVenue": {
        {...}
      },
      "weather": {
        {...}
      },
      "gameInfo": {
        {...}
      },
      "review": {
        {...}
      },
      "flags": {
        {...}
      },
      { ... }
    }
  }
 

Example response (401, Unauthenticated):


{
    "message": "Unauthenticated."
}
 

Example response (403, Unauthorized):


{
    "message": "This action is unauthorized."
}
 

Example response (404, Not Found):


{
    "success": false,
    "message": "Resource Not Found"
}
 

Example response (422, Error Validations):


{
    "message": "The ticker field is required.",
    "errors": {
        "ticker": [
            "The ticker field is required."
        ]
    }
}
 

Request      

GET v1/mlb/games-diffPatch

Headers

Authorization Bearer {YOUR_AUTH_KEY}

Query Parameters

Parameter Type Description
gamePk required string

Provide a game primary key. Example: 633282