ESPN Sports Scores & Schedules - NBA, NFL, MLB, NHL, MLS, EPL.. avatar

ESPN Sports Scores & Schedules - NBA, NFL, MLB, NHL, MLS, EPL..

Pricing

from $1.00 / 1,000 results

Go to Apify Store
ESPN Sports Scores & Schedules - NBA, NFL, MLB, NHL, MLS, EPL..

ESPN Sports Scores & Schedules - NBA, NFL, MLB, NHL, MLS, EPL..

Get live scores, schedules, and game results from ESPN — covering NBA, NFL, MLB, NHL, MLS, EPL, NCAA, and more. Find the next game of any team. No API key needed. Filter by team, date, or status. Empty results explain why.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(2)

Developer

Harish Garg

Harish Garg

Maintained by Community

Actor stats

1

Bookmarked

596

Total users

107

Monthly active users

8 days ago

Last modified

Features

Limited permissions

Share

ESPN Sports Scores & Schedules — NBA, NFL, MLB, NHL, MLS, EPL & More

Get live scores, schedules, and game results from ESPN — covering NBA, NFL, MLB, NHL, MLS, EPL, NCAA, and more. No API key needed. Filter by team, date, or status, or ask for the next game of any team. Output includes scores, venues, broadcasts, season week, and team details.

For AI agents: which input answers which question

Most runs of this Actor come from AI assistants. Pick the row that matches the question. Leave every other field at its default.

QuestionInput
"What NBA games are on tonight?" / "Scores from today's games"{"leagues": ["nba"], "dateMode": "today"}
"When do the Lakers play next?"{"leagues": ["nba"], "dateMode": "nextGames", "teams": ["Lakers"]}
"What's the next NFL game?" (any day of the week){"leagues": ["nfl"], "dateMode": "nextGames"}
"NFL games this week" / "this weekend"{"leagues": ["nfl"], "dateMode": "thisWeek"} or "thisWeekend"
"Who won last night?"{"leagues": ["nhl"], "dateMode": "yesterday", "gameStatus": ["post"]}
"Is any game live now?"{"leagues": ["nba", "nhl"], "dateMode": "today", "liveOnly": true}
"Celtics games in April 2026"{"leagues": ["nba"], "dateMode": "range", "startDate": "20260401", "endDate": "20260430", "teams": ["BOS"]}
"Games on a given day"{"leagues": ["mlb"], "dateMode": "single", "date": "20261029"}

Rules that save a retry:

  • Many leagues do not play every day. The NFL plays mostly on Thursday, Sunday and Monday. Use nextGames or a week mode for "when" questions, not today.
  • Set timezone to the user's timezone. It decides what "today" means. The default is America/New_York.
  • Teams: an ESPN code (GS, NY, WSH), a common code (GSW, NYK) or a name (Warriors) works. nba:LAC limits an entry to one league (LAC is also the NFL Chargers).
  • Read the first item. If it has "type": "notice", the run found no games or changed your input. Its message says why and what to run next. The same text is in the run's status message.
  • Read the status message. It lists the games per league and names the leagues with no games, with their next game day: 16 game(s): nba 4, mlb 1, nhl 11. No games on 2026-10-27: nfl (next: Thursday 2026-10-29).
  • Scores: score is null for games that have not started (and for postponed or canceled games). A live or final 0-0 is 0.
  • Ranges: up to 366 days. Each league costs one request (about 1 second) per day, so a full season of one league takes 3–6 minutes. If the run reaches its time limit, it stops early, returns the games it has, and the notice names the missing days.

Supported Leagues

SportLeagueCode
BasketballNBAnba
BasketballWNBAwnba
BasketballNCAA Men'sncaam
BasketballNCAA Women'sncaaw
FootballNFLnfl
FootballNCAA Footballncaaf
BaseballMLBmlb
HockeyNHLnhl
SoccerMLSmls
SoccerEnglish Premier Leagueepl
SoccerLa Ligalaliga
SoccerUEFA Champions Leagueucl

Use Cases

AI assistants and agents — Answer "what's on tonight", "when do they play next" and "who won" questions with current ESPN data, through the Apify MCP server or the API.

Fantasy sports apps — Pull daily schedules and live scores across NBA, NFL, and MLB to power lineup decisions and real-time score tracking.

Sports betting & analytics — Fetch game schedules, venues, and broadcast info across multiple leagues in a single run. Combine with date ranges to build historical datasets for analysis.

Dashboards & alerting — Schedule runs every 5 minutes during game days to feed a live scoreboard, Slack bot, or Discord notification system.

Journalism & content tools — Automate daily game previews and results digests across any combination of leagues without manually checking ESPN.

Research & data pipelines — Export structured JSON for NCAA tournament brackets, playoff schedules, or cross-sport season calendars.

Features

  • Multi-league support: Fetch games from NBA, NFL, MLB, NHL, MLS, EPL, and more in a single run
  • No API key required: Uses ESPN's public API — just run and go
  • Flexible date modes: Today, tomorrow, yesterday, this week, this weekend, next or last 7 days, a single date, a date range of up to 366 days, or the next games
  • Next game of a team: nextGames finds the next game of each team you name, even weeks ahead. In the off season it finds the first games of the next season, once ESPN lists them
  • Team filtering: By ESPN code, common code or team name, optionally limited to one league
  • Status, live, TV filters: Scheduled, in progress or final; live now; starting soon; national TV or named networks
  • Explained results: An empty or changed result comes with a notice that says why and what to change
  • Timezone conversion: Output dates in your preferred timezone
  • Rate limiting: Built-in 1 req/sec rate limiting with exponential backoff

Input

ParameterTypeRequiredDefaultDescription
leaguesstring[]Yes["nba", "nfl", "mlb", "nhl", "ncaam", "wnba"]League codes to fetch
dateModeenumYestodaytoday, tomorrow, yesterday, thisWeek, thisWeekend, next7Days, last7Days, single, range, nextGames (the next games that are not over: per league the next game day, or with teams the next game of each team)
datestringNo-Date for single mode, YYYYMMDD or YYYY-MM-DD
startDatestringNo-First day for range mode, YYYYMMDD or YYYY-MM-DD
endDatestringNo-Last day for range mode. Up to 366 days per range
teamsstring[]No[]ESPN codes (LAL, GS), common codes (GSW, NYK) or names (Warriors). Add a league prefix to limit an entry to one league: nba:LAC
homeAwayFilterenumNoallWith teams: all, home or away games of those teams
gameStatusstring[]No["pre", "in", "post"]Filter by game status
liveOnlybooleanNofalseOnly games in progress now
startingWithinHoursintegerNo-Only scheduled games that start in the next 1–72 hours
nationalTvOnlybooleanNofalseOnly games on national TV
networkFilterstring[]No[]Only games on these networks (e.g., ESPN, TNT)
timezonestringNoAmerica/New_YorkTimezone for dateLocal and for what "today" means
includeNoticesbooleanNotrueWrite a notice item that explains an empty or changed result (see below)

Example Input — Today's NBA & NHL Games

{
"leagues": ["nba", "nhl"],
"dateMode": "today",
"teams": [],
"gameStatus": ["pre", "in", "post"],
"timezone": "America/New_York"
}

Example Input — NFL Week by Date Range

{
"leagues": ["nfl"],
"dateMode": "range",
"startDate": "20260118",
"endDate": "20260120",
"timezone": "America/Los_Angeles"
}

Example Input — Next Game of Two Teams

Returns the next game of the Lakers and the next game of the Bruins, even if they are days apart.

{
"leagues": ["nba", "nhl"],
"dateMode": "nextGames",
"teams": ["Lakers", "nhl:BOS"],
"timezone": "America/Los_Angeles"
}

Example Input — Track a Specific Team

{
"leagues": ["nba"],
"dateMode": "range",
"startDate": "20260401",
"endDate": "20260430",
"teams": ["LAL"],
"gameStatus": ["pre", "post"],
"timezone": "America/Los_Angeles"
}

Output

Each game is output as a flat JSON object:

{
"type": "game",
"gameId": "401584721",
"sport": "basketball",
"league": "nba",
"date": "2026-01-23T00:00:00Z",
"dateLocal": "2026-01-22T19:00:00-05:00",
"name": "Cleveland Cavaliers at Charlotte Hornets",
"shortName": "CLE @ CHA",
"week": null,
"seasonYear": 2026,
"seasonType": "regular-season",
"note": null,
"status": {
"state": "pre",
"description": "Scheduled",
"detail": "7:00 PM ET",
"clock": null,
"period": null
},
"homeTeam": {
"id": "30",
"name": "Charlotte Hornets",
"abbreviation": "CHA",
"score": null
},
"awayTeam": {
"id": "5",
"name": "Cleveland Cavaliers",
"abbreviation": "CLE",
"score": null
},
"venue": {
"name": "Spectrum Center",
"city": "Charlotte",
"state": "NC"
},
"broadcasts": ["NBA TV"]
}

Every game item has "type": "game".

  • week: the week number for the NFL and NCAA football, otherwise null.
  • seasonYear, seasonType: ESPN's season, for example 2026 and regular-season, post-season or preseason.
  • note: game context when ESPN has it, for example World Series - Game 5 or NBA Finals - Game 2.
  • status.state: pre (scheduled), in (in progress) or post (final). status.detail is the readable form, for example 7:00 PM ET or Final/OT.

Notice item — when a run returns nothing, or the input was changed

When a run finds no games, or when the Actor ignored or changed part of your input, the first dataset item has "type": "notice". It says why and what to change:

{
"type": "notice",
"message": "No games matched. No NFL games on 2026-10-27. The next NFL games are on 2026-10-29 (Thursday). To get them, run again with dateMode \"single\" and date \"20261029\".",
"gamesReturned": 0,
"dates": { "from": "20261027", "to": "20261027", "count": 1 },
"timezone": "America/New_York",
"leagues": [{ "league": "nfl", "gamesOnDates": 0, "failedRequests": 0, "nextGameDate": "20261029" }],
"warnings": []
}

A notice is written when:

  • no games match: no games on those dates (with the next game day), or a filter removed every game (it names the filter);
  • a team in teams matches no team in the selected leagues (it lists the valid codes);
  • a date range is longer than 366 days and was cut;
  • the run reached its time limit before it fetched every day (it names the missing days and the range to run next);
  • an input field is unknown and was ignored;
  • ESPN did not answer for some days.

The same text is in the run's status message and in the SUMMARY record. Set includeNotices to false if your pipeline must get game items only.

Status States

StateDescription
preGame is scheduled but hasn't started
inGame is currently in progress
postGame has ended (final, postponed, or canceled)

Scheduling Examples

Use CaseCron ExpressionDescription
Daily morning digest0 6 * * *6 AM daily
Live score updates*/5 * * * *Every 5 minutes
Weekly preview0 8 * * 1Monday at 8 AM
Nightly results0 2 * * *2 AM daily