Mlb Stats Scraper avatar

Mlb Stats Scraper

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Mlb Stats Scraper

Mlb Stats Scraper

Get official MLB player stats, team rosters, schedules, standings and league leaders. Search by player or team name, no need for internal IDs. No login. Built for fantasy baseball players, bettors, analysts and journalists who need clean, accurate baseball data fast.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Fabricio

Fabricio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

⚾ MLB Stats Scraper

Extract official MLB baseball data: player profiles, team rosters, schedules, standings, and league leaders, as clean, structured records. Search by player and team name. No need to know internal numeric IDs. No login, no account, no manual copying.

🎯 Who uses it?

🎮 Fantasy baseball players

Pull season stats and rosters by name to set weekly lineups. No ID lookups first.

🎲 Bettors & model builders

Build predictive models from season and career hitting, pitching, and fielding lines.

📊 Analysts & researchers

Track standings, streaks, and league leaders across a season or a player's whole career.

✍️ Journalists & content creators

Pull accurate stat lines and schedules for game previews, recaps, and player profiles.

✨ What it does

  • Player profiles: bio (age, bats/throws, height, weight, birthplace, MLB debut) plus season or career hitting, pitching, or fielding stats, auto-detected by position, or forced to one group.
  • Teams: abbreviation, league, division, venue, and (optionally) the full current roster.
  • Schedule: games by date, date range, or team, with final scores, status, each team's record at the time, probable pitchers, and weather. Turn on box scores for the inning-by-inning line score, hits/errors, and the winning/losing/save pitcher.
  • Standings: division rank, win/loss record, games back, streak, run differential, magic number.
  • League leaders: the top players in any stat category (home runs, ERA, batting average, strikeouts, saves, and more), ranked.
  • Find players and teams by name, like "Aaron Judge" or "Yankees", or pass numeric IDs directly if you already have them from a previous run.
  • Player headshots, team logos, and a link to the official profile page on every row.
  • Heights/weights are normalized to metric (cm / kg) alongside the original record.

📦 What data you get

EntityUseful fields
PlayerName, age, position, bats/throws, team, season or career hitting/pitching/fielding stats, height, weight, birthplace, MLB debut date, headshot photo, profile link.
TeamName, abbreviation, league, division, venue, first year of play, logo, and the full current roster (name, position, jersey number, status).
GameAway/home team, score, winner, status, date, venue, each team's record, probable pitchers, weather. With box scores on: inning-by-inning line score, hits/errors, and winning/losing/save pitcher.
StandingTeam, division rank, W-L record, win %, games back, streak, runs scored/allowed, magic number.
LeaderRank, player, team, stat category and value.

Every record includes scraped_at (UTC) and source. Download your dataset from Apify as CSV, JSON, Excel, or XML.

💡 Use cases

🎮 Set a fantasy lineup from current stats

{
"mode": "players",
"playerNames": ["Shohei Ohtani", "Mookie Betts", "Juan Soto"]
}

🎲 Compare a pitcher's career vs. this season

{
"mode": "players",
"playerNames": ["Gerrit Cole"],
"statType": "career"
}

📅 Get every game a team played in a date range

{
"mode": "schedule",
"teamNames": ["Yankees"],
"fromDate": "2026-06-01",
"toDate": "2026-06-30"
}

📊 Check the standings

{
"mode": "standings",
"league": "AL"
}

🏆 Get the home run leaderboard

{
"mode": "leaders",
"leaderCategory": "homeRuns",
"maxItems": 25
}

⚾ Get full box scores for a day's games

{
"mode": "schedule",
"date": "2026-06-15",
"includeBoxScore": true
}

🧢 Pull a full team roster

{
"mode": "teams",
"teamNames": ["Dodgers"],
"includeRoster": true
}

⚙️ How the input is organised

The input form is split into four numbered sections. Every field's title says which mode(s) it applies to, so it's always clear what to fill in and what to leave alone.

SectionWhat it's for
1 · What do you want to scrape?Pick one type of data: Player profiles, Teams, Schedule, Standings, or League leaders.
2 · Who or what to getFill in only what your mode needs: player names or IDs for Player profiles; team names or IDs for Teams and Schedule; a date, date range, or team for Schedule; a league (AL/NL/both) for Standings; a stat category (e.g. homeRuns, era) for League leaders. A season field is available for every mode except Schedule.
3 · How much to collectMaximum rows for the whole run.
4 · What to includeStat type (auto, hitting, pitching, or fielding) and season vs. career, for Player profiles. Whether to attach the full roster, for Teams. Whether to add box-score details, for Schedule.

Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.

🛡️ Limits & responsible use

This Actor collects only publicly available, official MLB statistics. It never signs in and never accesses anything gated behind an account.

If a player, team, or game can't be found, that entry is skipped with a warning in the run log. The rest of the run continues.

🧪 Local development

bun install
bun run typecheck
bun test
bun run start

Test with a sample storage/key_value_stores/default/INPUT.json, e.g.:

{ "mode": "players", "playerNames": ["Aaron Judge"], "maxItems": 5 }