ESPN Sports Scores & Schedules - NBA, NFL, MLB, NHL, MLS, EPL..
Pricing
from $1.00 / 1,000 results
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
Maintained by CommunityActor stats
1
Bookmarked
596
Total users
107
Monthly active users
8 days ago
Last modified
Categories
Features
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.
| Question | Input |
|---|---|
| "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
nextGamesor a week mode for "when" questions, nottoday. - Set
timezoneto the user's timezone. It decides what "today" means. The default isAmerica/New_York. - Teams: an ESPN code (
GS,NY,WSH), a common code (GSW,NYK) or a name (Warriors) works.nba:LAClimits an entry to one league (LACis also the NFL Chargers). - Read the first item. If it has
"type": "notice", the run found no games or changed your input. Itsmessagesays 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:
scoreisnullfor games that have not started (and for postponed or canceled games). A live or final 0-0 is0. - 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
| Sport | League | Code |
|---|---|---|
| Basketball | NBA | nba |
| Basketball | WNBA | wnba |
| Basketball | NCAA Men's | ncaam |
| Basketball | NCAA Women's | ncaaw |
| Football | NFL | nfl |
| Football | NCAA Football | ncaaf |
| Baseball | MLB | mlb |
| Hockey | NHL | nhl |
| Soccer | MLS | mls |
| Soccer | English Premier League | epl |
| Soccer | La Liga | laliga |
| Soccer | UEFA Champions League | ucl |
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:
nextGamesfinds 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
leagues | string[] | Yes | ["nba", "nfl", "mlb", "nhl", "ncaam", "wnba"] | League codes to fetch |
dateMode | enum | Yes | today | today, 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) |
date | string | No | - | Date for single mode, YYYYMMDD or YYYY-MM-DD |
startDate | string | No | - | First day for range mode, YYYYMMDD or YYYY-MM-DD |
endDate | string | No | - | Last day for range mode. Up to 366 days per range |
teams | string[] | 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 |
homeAwayFilter | enum | No | all | With teams: all, home or away games of those teams |
gameStatus | string[] | No | ["pre", "in", "post"] | Filter by game status |
liveOnly | boolean | No | false | Only games in progress now |
startingWithinHours | integer | No | - | Only scheduled games that start in the next 1–72 hours |
nationalTvOnly | boolean | No | false | Only games on national TV |
networkFilter | string[] | No | [] | Only games on these networks (e.g., ESPN, TNT) |
timezone | string | No | America/New_York | Timezone for dateLocal and for what "today" means |
includeNotices | boolean | No | true | Write 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, otherwisenull.seasonYear,seasonType: ESPN's season, for example2026andregular-season,post-seasonorpreseason.note: game context when ESPN has it, for exampleWorld Series - Game 5orNBA Finals - Game 2.status.state:pre(scheduled),in(in progress) orpost(final).status.detailis the readable form, for example7:00 PM ETorFinal/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
teamsmatches 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
| State | Description |
|---|---|
pre | Game is scheduled but hasn't started |
in | Game is currently in progress |
post | Game has ended (final, postponed, or canceled) |
Scheduling Examples
| Use Case | Cron Expression | Description |
|---|---|---|
| Daily morning digest | 0 6 * * * | 6 AM daily |
| Live score updates | */5 * * * * | Every 5 minutes |
| Weekly preview | 0 8 * * 1 | Monday at 8 AM |
| Nightly results | 0 2 * * * | 2 AM daily |