MLB API

Realtime Sports API serves MLB games through the same REST endpoints and JSON schema as every other league, using sport=baseball and league=mlb. You get the current scoreboard, live scores, game detail, play-by-play, teams, rosters and news, plus current odds and line history from a single source book and the injury report. Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA.

Slugs
sport=baseball
league=mlb
Teams
30
Season (from data)
2026 Postseason
In the scoreboard now
2 games, 1 live

Upcoming and live MLB games

MLB games from the API
DateAwayHomeTime / ResultTVVenue
Sun, Oct 4Atlanta BravesLos Angeles Dodgers2 - 1 Bottom 5thDodger Stadium · Los Angeles, California

From the /events endpoint for this league, refreshed every few minutes. Times are US Eastern. Full MLB schedule

Live example

Request

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/baseball/leagues/mlb/events?limit=1"

Response captured from live data at 2026-10-05 02:07 UTC (refreshed every few minutes). Long arrays are trimmed; meta.rateLimit values are illustrative for a Free key.

Response

{
  "success": true,
  "data": [
    {
      "id": "401908003",
      "uid": "s:1~l:10~e:401908003",
      "name": "San Diego Padres at Milwaukee Brewers",
      "shortName": "SD @ MIL",
      "date": "2026-10-04T20:00Z",
      "status": {
        "state": "post",
        "completed": true,
        "period": 9,
        "clock": "0:00",
        "detail": "Final",
        "halftime": false,
        "firstHalfEnded": true
      },
      "homeTeam": {
        "id": "8",
        "name": "Milwaukee Brewers",
        "abbreviation": "MIL",
        "logo": "https://realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR4NWF9AUlxGDkQFSkoYVg",
        "color": "13294b",
        "alternateColor": "ffc72c",
        "winner": true,
        "score": 4
      },
      "awayTeam": {
        "id": "25",
        "name": "San Diego Padres",
        "abbreviation": "SD",
        "logo": "https://realtimesportsapi.com/api/images/proxy?id=GgcVSgNPTUMITUgaFFQVVVQXBVwOHV5LRQBZD1lbBllDXR4NWF9AUlxGEElHFFQR",
        "color": "2f241d",
        "alternateColor": "ffc425",
        "winner": false,
        "score": 3
      },
      "competition": {
        "attendance": 41683,
        "neutralSite": false,
        "conferenceCompetition": true,
        "divisionCompetition": false,
        "playByPlayAvailable": true,
        "highlightsAvailable": true
      },
      "venue": {
        "id": "4242",
        "name": "American Family Field",
        "city": "Milwaukee",
        "state": "Wisconsin",
        "indoor": true,
        "grass": true
      },
      "notes": [
        "NLDS - Game 2"
      ],
      "season": {
        "year": 2026,
        "displayName": "2026",
        "type": {
          "id": "3",
          "name": "Postseason",
          "abbreviation": "post"
        },
        "week": {}
      },
      "broadcasts": [
        {
          "network": {
            "id": "1",
            "type": "National"
          },
          "type": "TV"
        },
        {
          "network": {
            "id": "1",
            "type": "National"
          },
          "type": "Radio"
        }
      ],
      "officials": [
        {
          "displayName": "Lance Barrett",
          "order": 1,
          "position": "Home Plate Umpire"
        },
        {
          "displayName": "Alfonso Marquez",
          "order": 2,
          "position": "First Base Umpire"
        },
        {
          "displayName": "Nic Lentz",
          "order": 3,
          "position": "Second Base Umpire"
        },
        "... 3 more"
      ]
    }
  ],
  "meta": {
    "rateLimit": {
      "limit": 125,
      "remaining": 124,
      "reset": 1793491200000
    }
  }
}

MLB endpoints

Checked against live data on 2026-10-04. Paths are relative to /api/v1/sports/baseball/leagues/mlb.

EndpointPathMLBNotes
Live scores/events/liveAvailable
Events (scoreboard)/eventsAvailable
Event detail/events/{eventId}Available
Play-by-play/events/{eventId}/playsAvailable
Box score/events/{eventId}/boxscoreAvailable
Odds/events/{eventId}/oddsAvailable
Win probability/events/{eventId}/winprobabilityAvailable
Teams/teamsAvailable
Rosters/teams/{teamId}/rosterAvailable
Athletes/athletes/searchAvailable
Injuries/injuriesAvailable
News/newsAvailable
Schedule / weeks/seasons/{season}/scheduleAvailable
NCAA tournament/seasons/{season}/tournamentNot available
Webhooks/webhooksAvailable
WebSocket/websocket/authAvailable
  • Schedules are by date, not week: use /events for the current scoreboard and /seasons/{season}/schedule for a season. Week parameters return SCHEDULE_WEEKS_NOT_SUPPORTED.

Event object fields

Every MLB game in the events, live and schedule endpoints uses the same Event object as other leagues.

FieldTypeNotes
idstringEvent id; use it with the detail, plays, box score and odds endpoints.
uidstring
namestringFull matchup name.
shortNamestringAbbreviated matchup, e.g. "AWAY @ HOME".
datestringStart time, ISO-8601 UTC.
statusEventStatusstate (pre, in, post), completed, period, clock and display detail.
homeTeamEventTeamid, name, abbreviation, colors, logo (proxied), record, score, winner.
awayTeamEventTeamSame shape as homeTeam.
competitionobjectattendance, neutralSite, conference/division flags, playByPlayAvailable.
venueobjectVenue id, name, city, state, indoor, grass (null when unknown).
notesstring[]Headline notes, e.g. round or rivalry names.
seasonobjectyear, type (preseason/regular/postseason) and week where the league uses weeks.
broadcastsobject[]TV/stream networks for the game.
officialsobject[]Game officials when published.
oddsOddsOnly with includeOdds=true and when the game has odds.

Code samples

curl

curl -H "Authorization: Bearer $RSA_API_KEY" \
  "https://www.realtimesportsapi.com/api/v1/sports/baseball/leagues/mlb/events?limit=5"

JavaScript (fetch)

const res = await fetch("https://www.realtimesportsapi.com/api/v1/sports/baseball/leagues/mlb/events?limit=5", {
  headers: { Authorization: `Bearer ${process.env.RSA_API_KEY}` }
});
const { success, data, meta } = await res.json();
console.log(data, meta.rateLimit);

Python (requests)

import os, requests

res = requests.get(
    "https://www.realtimesportsapi.com/api/v1/sports/baseball/leagues/mlb/events?limit=5",
    headers={"Authorization": f"Bearer {os.environ['RSA_API_KEY']}"},
    timeout=10,
)
body = res.json()
print(body["data"])

MCP prompt (Claude, Cursor, ChatGPT)

Using the Realtime Sports MCP server (https://www.realtimesportsapi.com/api/mcp), call get_events with sport "baseball" and league "mlb" and list the games it returns with start times, status and scores for MLB.

Connect the hosted MCP server first: setup guide. Each tool call counts as one API call.

Rate limits and pricing

PlanPriceCallsRateWebSocketWebhooks
Free$0125/mo (1,000 first 30 days)1/s500 msgs/moNo
Starter$29/mo ($290/yr)10,000/mo5/sShares monthly poolShares monthly pool
Growth$49/mo ($490/yr)25,000/mo10/sShares monthly poolShares monthly pool
Pro$99/mo ($990/yr)50,000/mo20/s100,000 msgs/mo25,000/mo
Scale$299/mo ($2,990/yr)500,000/mo100/s500,000 msgs/mo100,000/mo

Every successful REST call counts as one call. Over the limit you get HTTP 429 with a Retry-After header. No SLA. Full pricing.

29 leagues monitored live: NFL, college football, NBA, men's college basketball, MLB, NHL and 23 soccer competitions.

FAQ

Is there a free MLB API?
Yes. The Free plan is $0 with 125 calls per month (1,000 in the first 30 days) at 1 request per second, no card required. The same key works for all 29 leagues.
How fresh is the MLB data?
Data is aggregated from public sources and is typically 20-30 seconds behind live play (about 1 second after our source). There is no SLA. It is not intended for in-play betting that needs sub-second data.
Which MLB endpoints are available?
Available: live scores, events (scoreboard), event detail, play-by-play, box score, odds, win probability, teams, rosters, athletes, injuries, news, schedule / weeks. Not available or not verified: ncaa tournament (not available).
Does the MLB API include betting odds?
Yes. Upcoming MLB games returned a spread, moneyline and total when we checked, from a single source book, with line history. It is not a multi-book comparison feed and not suited to sub-second in-play betting.
Does it include MLB injuries?
Yes. The injuries endpoint returned current MLB designations grouped by team, and player-availability normalizes them to values like OUT and QUESTIONABLE. Pass team for a complete team report.
Can I get MLB score updates pushed instead of polling?
Yes. Webhooks are included on every paid plan (Starter, Growth, Pro, Scale). WebSocket is included on paid plans, and the Free plan gets a 500-message monthly preview. Both can be filtered to mlb.