Skip to content

ESPN Scores & Schedules Scraper

Try for free

Scrape ESPN scores, schedules and results for NBA, NFL, MLB, NHL, college sports, MLS, Premier League, LALIGA, Champions League and 25+ more leagues. Filter by date, team, status and TV network. Scores, records, venue, broadcasts and betting lines. No login needed.

🏀 ESPN Scores & Schedules Scraper

Get live scores, schedules and final results from ESPN for the NBA, NFL, MLB, NHL, college sports, MLS, the Premier League, LALIGA, the Champions League and 25+ more leagues, in one run. Each game comes with its status, both teams with scores and records, the venue, TV networks and the betting line. It reads ESPN's public scoreboard data directly, so it is fast and cheap and needs no login or API key.

✨ Why use ESPN Scores & Schedules Scraper?

  • ⚡ Fast: days and leagues are fetched in parallel. In our tests one day of six leagues took about 5 seconds per run, and a full season of the NBA, NHL, NFL and MLB (5,738 games) took under a minute.
  • 🌍 33 leagues built in, plus any other ESPN league: US pro and college sports and the big soccer competitions, plus any ESPN league path such as soccer/bel.1.
  • 🎯 Precise filters: filter by team (abbreviation or name), home or away, scheduled, live or final, games starting in the next N hours, national TV and network.
  • 📊 Rich rows: scores by period, team records and rankings, venue, attendance, broadcasts, spread, over/under and moneylines, and recap headlines.
  • 🎓 Every college game: covers all Division I basketball and FBS football games, not only the Top 25 featured scoreboard.
  • 💸 Cheap: pay per game saved, with no monthly fee.

🎯 Use cases

  • 🏈 Fantasy sports and pick'em apps: pull today's slate across leagues with start times, TV and lines.
  • 📈 Betting and analytics: build historical datasets of results, spreads and totals over a whole season.
  • 📺 Live dashboards and alerts: schedule a run every few minutes with Live games only to feed a scoreboard, Slack or Discord bot.
  • 📰 Newsrooms and content: automate daily previews and results digests for several leagues.
  • 🗓️ Team calendars: one team's full season schedule with venues and broadcasts, ready for a calendar or CRM.

🚀 How to use

  1. Pick one or more Leagues (or add any ESPN league under Custom leagues).
  2. Choose Dates: today, tomorrow, yesterday, this week or weekend, the next or last 7 days, a single date, or a date range of up to 400 days.
  3. Optionally set Filters: teams, home or away, status, live only, starting within N hours, national TV, networks.
  4. Set Maximum games (0 = all) and click Start.
  5. Download the games as JSON, CSV or Excel, or read them over the API.

📥 Input

FieldWhat it does
leaguesLeague codes, e.g. nba, nfl, mlb, nhl, ncaaf, ncaam, epl, laliga, ucl, mls
dateModetoday, tomorrow, yesterday, thisWeek, thisWeekend, next7Days, last7Days, single, range
date / startDate / endDateDays as YYYYMMDD or YYYY-MM-DD
maxResultsStop after this many games (earliest first); 0 = all
teams, homeAwayFilterTeam abbreviations or names; home or away only
gameStatus, liveOnly, startingWithinHourspre / in / post; live now; starting soon
nationalTvOnly, networkFilterNational TV only; networks such as ESPN, ABC, TNT
customLeaguesAny ESPN league as sport/league, e.g. soccer/bel.1
collegeScope, language, timezoneAll D-I/FBS games or Top 25; en/es/pt; output timezone
{
  "leagues": ["nba", "epl"],
  "dateMode": "range",
  "startDate": "20261010",
  "endDate": "20261020",
  "teams": ["LAL", "ARS"],
  "timezone": "Europe/London",
  "maxResults": 0
}

📤 Output

One row per game:

FieldDescription
gameId, league, leagueName, sportIDs and league
date, dateLocalStart time in UTC and in your timezone
name, shortNameBoston Celtics at Detroit Pistons, BOS @ DET
statusstate (pre, in, post), description, detail, clock, period, completed
homeTeam, awayTeamid, name, abbreviation, score, record, rank, winner, linescores, logo, color
venuename, city, state, country, indoor
broadcasts, nationalBroadcastsTV networks and streams
oddsprovider, details, spread, overUnder, homeMoneyline, awayMoneyline (when ESPN shows a line)
season, seasonType, week, neutralSite, conferenceGame, attendance, notes, headline, gameUrlContext and links
{
  "gameId": "401909088",
  "sport": "basketball",
  "league": "nba",
  "leagueName": "NBA",
  "date": "2026-10-20T19:00Z",
  "dateLocal": "2026-10-20T15:00:00-04:00",
  "name": "Boston Celtics at Detroit Pistons",
  "shortName": "BOS @ DET",
  "status": {"state": "post", "description": "Final", "detail": "Final", "shortDetail": "Final", "clock": "0.0", "period": 4, "completed": true},
  "homeTeam": {"id": "8", "name": "Detroit Pistons", "abbreviation": "DET", "score": 121, "shortName": "Pistons", "location": "Detroit", "nickname": "Pistons", "winner": true, "record": "1-0", "rank": null, "linescores": [27, 18, 37, 39], "logo": "https://a.espncdn.com/i/teamlogos/nba/500/scoreboard/det.png", "color": "#1d428a"},
  "awayTeam": {"id": "2", "name": "Boston Celtics", "abbreviation": "BOS", "score": 113, "shortName": "Celtics", "location": "Boston", "nickname": "Celtics", "winner": false, "record": "0-1", "rank": null, "linescores": [28, 30, 30, 25], "logo": "https://a.espncdn.com/i/teamlogos/nba/500/scoreboard/bos.png", "color": "#008348"},
  "venue": {"name": "Little Caesars Arena", "city": "Detroit", "state": "MI", "country": null, "indoor": true},
  "broadcasts": ["NBC"],
  "nationalBroadcasts": ["NBC"],
  "odds": null,
  "season": 2027,
  "seasonType": "regular-season",
  "week": null,
  "neutralSite": false,
  "conferenceGame": false,
  "attendance": 20178,
  "notes": null,
  "headline": "NBA season tips off with Pistons rallying to beat Celtics 121-113",
  "gameUrl": "https://www.espn.com/nba/game/_/gameId/401909088/celtics-pistons",
  "scrapedAt": "2026-10-21T00:11:02+00:00"
}

💰 Pricing

You pay $0.80 per 1,000 games saved, plus the small platform usage of the run (compute and datacenter proxy traffic; about $0.0003 for a one-day, six-league run in our tests). Example: 1,000 games ≈ $0.80 plus usage. Runs that find no games cost only the usage.

❓ FAQ

Is it legal to scrape ESPN? The actor reads the public scoreboard data that ESPN shows to every visitor, without logging in. Check that your use of the data fits ESPN's terms and the laws that apply to you.

Do I need an ESPN account, API key or proxy? No account and no key. Datacenter proxies are on by default and work well.

How many games can I get? As many as ESPN lists for the dates you choose. In our tests a weekday of six US leagues returned 14 games, one Saturday of FBS college football 52, and a full NBA, NHL, NFL and MLB season 5,738. Set Maximum games to 0 for all of them.

Why are some fields empty? ESPN only fills some data at certain times: scores and the clock once a game starts, odds before it starts and only for some leagues, attendance after it ends. Empty values are null.

What does "today" mean? The day in your chosen timezone (America/New_York by default). ESPN groups games by US Eastern day, so late-night games show up on the Eastern date.

Can I schedule it or use the API? Yes. Schedule runs (for example every 5 minutes with Live games only), call it over the API, or connect it to your integrations.

⚠️ Limits

  • Team sports only: golf, tennis, racing and combat sports leaderboards are not covered.
  • Box scores, play-by-play and player statistics are not included; each row is one scoreboard game.
  • Betting lines appear only when ESPN shows one (mostly upcoming US pro and college games).
  • Date ranges are limited to 400 days per run; split longer histories into several runs.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.