MLB schedule and box scores

Baseball API

Clubs, the day's schedule, and the box score for one game. Pass a date, then the game id. No betting lines.

Capabilities

Season, club, and game

For scoreboards and game pages. Pass a date, then the game id. No betting lines.

The season

Seasons and leagues are the frame. A team and a game both belong to one. See examples

The clubs

A club comes back with its league, division, and park. History, coaches, and the roster are separate calls.

The people

Look up a player, or the free agents, without opening a box score.

The day

The schedule is the games on a date: who played, the score, and whether it is final. The date is YYYY-MM-DD, and you can leave it off. See examples

One game

The game, the box score, and the play-by-play are three calls. Start with the game.

The side feeds

Matrix, timestamps, probability, and the diff patch sit beside the play-by-play, for a live view that needs them.

How a call is made

The path

The key goes in the Authorization header as a bearer token. These three calls are the usual order.

The date

GET /api/v1/mlb/schedule takes date as YYYY-MM-DD. Leave it off to let the call choose, or pass the day you want on the card.

The game id

Each game has a gamePk. That number is required on /api/v1/mlb/games, the box score, the play-by-play, and the side feeds.

The club

GET /api/v1/mlb/teams lists the clubs. Pass teamId when you want one. The roster, coaches, and affiliates are separate calls on that club.

Shortened examples

Sample responses

Shortened examples of a club, a finished game, a player, a box score, and a play. A date in a sample is the date in that example, not a promise about today's card.

{
    "id": 133,
    "name": "Oakland Athletics",
    "abbreviation": "OAK",
    "season": 2023,
    "league": {
        "name": "American League"
    },
    "division": {
        "name": "American League West"
    },
    "venue": {
        "name": "Oakland Coliseum"
    },
    "active": true
}
{
    "id": 676265,
    "fullName": "Cory Abbott",
    "primaryNumber": "77",
    "birthDate": "1995-09-20",
    "birthCity": "San Diego",
    "height": "6' 2\"",
    "weight": 217,
    "primaryPosition": {
        "abbreviation": "P",
        "name": "Pitcher"
    }
}
{
    "result": {
        "event": "Flyout",
        "description": "Tim Anderson flies out to right fielder Austin Hays.",
        "rbi": 0,
        "awayScore": 0,
        "homeScore": 0,
        "isOut": true
    },
    "about": {
        "inning": 1,
        "halfInning": "top"
    }
}
{
    "gamePk": 633094,
    "season": "2021",
    "officialDate": "2021-07-30",
    "status": {
        "detailedState": "Final"
    },
    "teams": {
        "away": {
            "score": 3,
            "team": {
                "name": "Chicago Cubs"
            }
        },
        "home": {
            "score": 4,
            "team": {
                "name": "Washington Nationals"
            }
        }
    },
    "venue": {
        "name": "Nationals Park"
    }
}
{
    "team": {
        "name": "Chicago White Sox",
        "abbreviation": "CWS"
    },
    "batting": {
        "runs": 7,
        "hits": 8,
        "homeRuns": 3,
        "strikeOuts": 11,
        "baseOnBalls": 5,
        "avg": ".257"
    },
    "pitching": {
        "inningsPitched": "10.0",
        "earnedRuns": 4,
        "strikeOuts": 14,
        "era": "3.58"
    }
}

Before you integrate

Common questions

Short answers to the questions that decide whether this is the feed you want.

JSON for one part of the game: the clubs, the players, the schedule for a date, or a single game. A schedule row is not a box score. You ask for the box score with the game's gamePk.

No. There is a probability feed for a game, and it is not a sportsbook. Betting prices are not part of this API.

No. They show the shape of a response. A date in a sample is the date in that example.

Call the schedule for the date and read gamePk. Pass that value to /api/v1/mlb/games, /api/v1/mlb/games-boxscore, or /api/v1/mlb/games-playbyplay.

Seasons need seasonId as a four-digit year. The game calls need gamePk. The schedule date is optional. Teams can be listed with no teamId.

Documentation

Schedule, box score, and roster calls are in the baseball docs, in four languages.

Code samples

A sample for each endpoint, in Shell, JavaScript, PHP, and Python.

View documentation

Related APIs

Also in the catalog

Other feeds on the same key. Open one if this page isn't quite what you needed.

Hockey

Tonight's games, the standings, and a club's roster. You get the score. Betting lines are not in this feed. Hockey API

Football

Live matches, clubs, and lineups. One call returns the prices already attached to a match, if you need the number. You can't place a bet from here. Football API

Markets

Quotes, price history, option chains, and the earnings and dividend calendars. The right feed when the job is prices. Stock and Options API

Pricing

Same plans, whole catalog

Plans cover the whole SteadyAPI catalog, not only this API. The monthly allowance is on the table. For a larger volume, email [email protected].

Starter
$14.95
$19.95
per month
Developer Popular
$39.95
$59.95
per month
Business
$89.95
$99.95
per month
Enterprise
$299.95
$499.95
per month
Start 7-Day TrialStart 7-Day TrialStart 7-Day TrialStart 7-Day Trial
Requests per month10,000250,0002,500,000
Stock Market API
Options Data API
Crypto Data API
AliExpress API
Reddit API
Booking.com API
Real Estate API
Baseball (MLB) API
Hockey API
Football API
Amazon API
eBay API
Walmart API
Instagram API
Twitter / X API
TikTok API
YouTube API
AutoHub API
ScrapeFlow
Commercial Use
Optional overage rate*$1.50 per 1,000 requests$0.50 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 1,250,000 extraup to 12,500,000 extra
Starter
$11.96
$14.35
per month$143.52 billed yearly
Developer Popular
$31.96
$40.00
per month$383.52 billed yearly
Business
$71.96
$90.00
per month$863.52 billed yearly
Enterprise
$320.83
$400.00
per month$3,849.95 billed yearly
Start 7-Day TrialStart 7-Day TrialStart 7-Day TrialStart 7-Day Trial
Requests per month10,000250,0002,500,000
Stock Market API
Options Data API
Crypto Data API
AliExpress API
Reddit API
Booking.com API
Real Estate API
Baseball (MLB) API
Hockey API
Football API
Amazon API
eBay API
Walmart API
Instagram API
Twitter / X API
TikTok API
YouTube API
AutoHub API
ScrapeFlow
Commercial Use
Optional overage rate*$1.50 per 1,000 requests$0.50 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 1,250,000 extraup to 12,500,000 extra

* Overage stays off until you turn it on in Billing, and only for Stripe card subscriptions. Usage is counted in monthly periods that start on your billing day, yearly plans included. Requests past the included limit are billed after the period ends, up to the cap. If you switch plans during a period, the limit and overage rate of the plan you are on when that period ends apply to the whole period.

Why SteadyAPI

The schedule, then the game

The schedule tells you what was played. The box score is the next call, using the game id.

Date, then game

The schedule answers what was played. The game id is what you pass when you want the box score or the pitches.

Club, then roster

The club call is the name, the league, and the park. The roster is its own call.

One feed, several shapes

A schedule row and a play-by-play are not the same object. Each endpoint returns the shape named in the docs.

Your monthly plan

A box score and a play-by-play each count as their own request against the plan on the account.

Also on the blog

From the blog

These posts come from across SteadyAPI, so the one at the top may be about a different API. The reference for this page is the documentation above.

How to Read TikTok Video Comments Using SteadyAPIOct 05, 2026

How to Read TikTok Video Comments Using SteadyAPI

Read TikTok comments 20 at a time. Video 7106594312292453675 has 1269 comments. The next cursor is the string 20.

READ MORE
How to Look Up a Crypto Profile Using SteadyAPIOct 09, 2026

How to Look Up a Crypto Profile Using SteadyAPI

Look up one coin by slug. Store the symbol, status, and website list. Quotes are a later call and use data, not body.

READ MORE
How to Read Stock Financials Using SteadyAPIOct 09, 2026

How to Read Stock Financials Using SteadyAPI

Annual income, balance sheet, and cash flow for one ticker. Amounts come back as formatted strings in three tables.

READ MORE
How to Check Vehicle Recalls Using SteadyAPIOct 08, 2026

How to Check Vehicle Recalls Using SteadyAPI

Learn how to check vehicle recalls with SteadyAPI. Read component, summary, and remedy for a vehicle id.

READ MORE