Sports Scores & Schedules API
Pricing
from $2.80 / 1,000 games
Sports Scores & Schedules API
Live scores, schedules, results, standings, teams, rosters, box scores and betting lines for 33 leagues — NFL, NBA, MLB, NHL, Premier League, LaLiga, Champions League, MLS, ATP, WTA, UFC, F1, PGA — from ESPN's public data. One flat row per game. No API key, no proxy.
Pricing
from $2.80 / 1,000 games
Rating
0.0
(0)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Sports Scores & Schedules API returns live scores, upcoming schedules, final results, standings, teams, rosters, box scores and betting lines for 33 leagues — NFL, NBA, MLB, NHL, college football and basketball, the Premier League, LaLiga, Bundesliga, Serie A, Champions League, MLS, ATP and WTA tennis, UFC, Formula 1, NASCAR and the PGA Tour — read from ESPN's public data. One flat row per game with status, start time, both teams, scores, records, venue, TV broadcast, the DraftKings line and a one-sentence summary you can drop straight into a message or a prompt. No API key, no proxy, no browser: a full day of games across three leagues takes about two seconds.

Pick the leagues and a date or a range of days, choose what you need — scores and schedule, standings, teams, a team's roster or season, game details or news — and click Start. Export as JSON, CSV or Excel, run it on a schedule, or call it from the API and AI agents.
What is Sports Scores & Schedules API?
It is a sports data API for people who need scores and fixtures as a table rather than a web page: fantasy and betting tools, Discord and Telegram bots, dashboards, newsletters, research, and AI agents that get asked "who won last night" or "when do the Lakers play next". ESPN has no public API of its own and the licensed feeds cost hundreds of dollars a month; this Actor reads the same data ESPN's site uses, for a fraction of a cent per game.
What data does it return?
Games — scores and schedule
| Field | Example |
|---|---|
league, leagueName, sport, season, week | nfl · National Football League · football · 2026 · 1 |
eventId, name, shortName, startTime | 401772510 · Seattle Seahawks at San Francisco 49ers · SEA @ SF · 2026-09-10T00:20Z |
status, statusDetail, period, clock, completed | live · 3rd Quarter · 3 · 8:41 · false |
homeTeam, homeTeamId, homeScore, homeRecord, homeLogo, homeRank | San Francisco 49ers · 25 · 17 · 2-0 · … · null |
awayTeam, awayScore, awayRecord, awayLinescores | Seattle Seahawks · 10 · 1-1 · [0, 7, 3] |
winner, participants | San Francisco 49ers · (tennis and UFC: the two players or fighters) |
tournament, round | US Open · Men's Singles — Round 2 (tennis, UFC cards) |
venue, city, attendance, neutralSite, broadcasts | Lumen Field · Seattle · 68,742 · false · ["NBC"] |
oddsProvider, spread, overUnder, homeMoneyline, awayMoneyline, favorite | DraftKings · SF -3.5 · 44.5 · -180 · +150 · home |
summary | "Seattle Seahawks 10 – 17 San Francisco 49ers, 3rd Quarter" |
link | ESPN game page |
Standings
group (conference / division / table), rank, team, wins, losses, ties, otLosses, winPercent, points, gamesPlayed, pointsFor, pointsAgainst, pointDifferential, streak, gamesBehind, record, homeRecord, awayRecord, plus every raw statistic ESPN publishes in stats.
Teams and players
Teams: teamId, team, abbreviation, location, nickname, color, logo, link. Players (roster mode): player, jersey, position, age, height, weight, birthPlace, experience, college, status, headshot.
Game details
teamStats (first downs, total yards, possession… per team), leaders (top passer, rusher, scorer with their line), injuries, scoringPlays with the running score, winProbabilityHome, attendance, weather, officials, and the closing spread and overUnder.
News
headline, description, published, byline, link, image, categories — the latest articles for each league.
How much does it cost?
Pricing is pay per row: a game, a standings entry, a team, a player, a game detail or an article. There is no browser and no proxy in this Actor, so platform usage is close to zero — a league's whole day is one request. See the Pricing tab for the current rate.
How to get sports scores and schedules
- Choose 🏟️ Leagues — one or several. Through the API you can also pass any ESPN soccer slug such as
eng.2or a full path such assoccer/ned.1. - Leave the dates empty for today, or set From and To (up to 60 days), or use Days ahead for "the coming week".
- Keep What to get on Scores & schedule, or switch to standings, teams, roster, team schedule, game details or news.
- Optionally filter to upcoming, live or finished games, and switch on Add game details for box scores and leaders.
- Click Start and export, or read the dataset through the API.
⬇️ Input
{"leagues": ["nfl", "nba", "epl"],"mode": "scoreboard","days": 7,"onlyStatus": "all"}
Standings for several leagues
{ "leagues": ["epl", "laliga", "bundesliga"], "mode": "standings" }
A team's roster and season
{ "leagues": ["nba"], "mode": "roster", "teamIds": ["13"] }
Run the teams mode once to see every team's id.
Box score for specific games
{ "leagues": ["nfl"], "mode": "game", "eventIds": ["401772510"] }
⬆️ Output
{"type": "game","sport": "football","league": "nfl","leagueName": "National Football League","season": 2026,"week": 1,"eventId": "401772510","name": "Seattle Seahawks at San Francisco 49ers","shortName": "SEA @ SF","startTime": "2026-09-10T00:20Z","status": "scheduled","statusDetail": "Wed, September 9th at 8:20 PM EDT","homeTeam": "San Francisco 49ers","homeTeamId": "25","homeScore": 0,"homeRecord": "0-0","awayTeam": "Seattle Seahawks","awayTeamId": "26","awayScore": 0,"awayRecord": "0-0","venue": "Lumen Field","broadcasts": ["NBC"],"oddsProvider": "DraftKings","spread": "SF -2.5","overUnder": 44.5,"summary": "Seattle Seahawks at San Francisco 49ers, Wed, September 9th at 8:20 PM EDT","link": "https://www.espn.com/nfl/game/_/gameId/401772510","scrapedAt": "2026-09-04T03:00:00.000Z"}
Tennis returns one row per match with participants, tournament and round; UFC one row per bout; Formula 1 and golf one row per session or tournament. A league that cannot be read arrives as a type: "error" row with the URL and the reason, never as a silently missing day.
Use cases
Bots and alerts
A Discord, Slack or Telegram bot that answers "scores?" with the summary field, or a schedule that pings the channel an hour before kick-off.
Fantasy and betting tools
Schedules, results, injuries and the closing line in one table, refreshed on a schedule.
Dashboards and newsletters
Standings and last night's results for every league you follow, exported to a sheet or a database every morning.
Research
A season of results with attendance, venue and scoring plays, without writing a scraper.
AI agents
An agent asked "when does Arsenal play next" or "did the Yankees win" calls the Actor with the league and a date range and reads the summary field back.
Integrations and sports scores API
Run it from the Apify API, the JavaScript and Python clients, a schedule, or a webhook, and push results to Google Sheets, Slack, Discord or a database through n8n, Make or Zapier.
🤖 For AI Agents & LLM Apps
Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/sports-scores-api).
Purpose: answers questions about games — who plays, when, where, the score and the line — plus standings, teams, rosters and news, for 33 leagues across American football, basketball, baseball, hockey, soccer, tennis, MMA, motorsport and golf. Use it for "what games are on tonight", "did X win", "show me the Premier League table", "when is the next Lakers game".
Minimal input:
{ "leagues": ["nba"], "mode": "scoreboard", "days": 3 }
Output: one flat row per game — league, leagueName, sport, season, week, eventId, name, shortName, startTime, status, statusDetail, period, clock, homeTeam, homeTeamId, homeScore, homeRecord, awayTeam, awayTeamId, awayScore, awayRecord, winner, venue, broadcasts, oddsProvider, spread, overUnder, homeMoneyline, awayMoneyline, summary, link. Standings rows carry rank, team, wins, losses, winPercent, points, streak; team rows teamId; player rows player, position; news rows headline, link. Everything is flat except homeLinescores, awayLinescores, broadcasts, participants and the detail-mode arrays.
Behaviors an agent should know:
statusisscheduled,liveorfinal;statusDetailis the human phrase ("Final", "3rd Quarter", "Sat, September 5th at 12:00 PM EDT"). Quotesummarywhen a user wants one line.- Dates:
dateFrom/dateTo(YYYY-MM-DD) ordaysahead from today. Default is today only. ESPN days run on US Eastern time — a game at 00:20Z on the 10th belongs to the 9th on ESPN. - League keys are lower-case (
nfl,epl,ucl,atp). Team ids and event ids come from this Actor's own rows; do not invent them. - Scores are numbers, records are strings ("2-0", "1-0-1" for soccer W-D-L);
winneris empty until the game is final. - Betting lines are the pre-game DraftKings line ESPN shows; they are missing for leagues and games without a market.
- Tennis rows are matches (two
participants,round,tournament); UFC rows are bouts; F1 and golf rows are sessions or tournaments without scores. includeGameDetailsadds one request per game; leave it off for schedules. Roster and team-schedule modes needteamIds; game mode needseventIds.- No proxy is used and none is needed; a league that fails returns an
errorrow.
❓ FAQ
Is it legal to use ESPN data?
The Actor reads the public JSON that ESPN's own website loads, without logging in or bypassing any control. Scores, schedules and standings are facts; how you use them is subject to your local law and ESPN's terms — check before commercial redistribution at scale.
Does it return live, in-play scores?
Yes. Run it while games are on and status is live with period, clock and the current score. Schedule it every few minutes for a live board.
Which leagues are supported?
33 by key, listed in the input. Any other ESPN soccer competition works by its slug (eng.2, por.1, conmebol.libertadores). Cricket and rugby are not on ESPN's US data feed.
How far back can I go?
As far as ESPN keeps scoreboards — years for the big leagues. Use dateFrom/dateTo in chunks of up to 60 days.
Can I use it with the Apify API or an MCP server?
Yes. It runs from the API and the official clients, and AI agents reach it through the Apify MCP server without extra setup.
Why is a game missing?
Postponed and cancelled games disappear from ESPN's scoreboard for that day. Check statusDetail on the days around it.
Your feedback
Found a league that mis-parses or a field that is empty when it should not be? Open an issue on the Issues tab — every one gets answered.
You might also like
| Actor | What it does |
|---|---|
| Google Flights Scraper | Live flight prices, layovers and booking options |
| Trip.com Scraper | Hotel prices and availability for a city and dates |
| Airbnb Scraper | Airbnb listings for any place and dates |
| Email Verifier & Phone Number Validator | Checks e-mails and phone numbers in bulk |