Sports Scores & Schedules API avatar

Sports Scores & Schedules API

Pricing

from $2.80 / 1,000 games

Go to Apify Store
Sports Scores & Schedules API

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

Matvey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

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.

One run of Sports Scores & Schedules API: NFL week one with season, status, score and venue.

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

FieldExample
league, leagueName, sport, season, weeknfl · National Football League · football · 2026 · 1
eventId, name, shortName, startTime401772510 · Seattle Seahawks at San Francisco 49ers · SEA @ SF · 2026-09-10T00:20Z
status, statusDetail, period, clock, completedlive · 3rd Quarter · 3 · 8:41 · false
homeTeam, homeTeamId, homeScore, homeRecord, homeLogo, homeRankSan Francisco 49ers · 25 · 17 · 2-0 · … · null
awayTeam, awayScore, awayRecord, awayLinescoresSeattle Seahawks · 10 · 1-1 · [0, 7, 3]
winner, participantsSan Francisco 49ers · (tennis and UFC: the two players or fighters)
tournament, roundUS Open · Men's Singles — Round 2 (tennis, UFC cards)
venue, city, attendance, neutralSite, broadcastsLumen Field · Seattle · 68,742 · false · ["NBC"]
oddsProvider, spread, overUnder, homeMoneyline, awayMoneyline, favoriteDraftKings · SF -3.5 · 44.5 · -180 · +150 · home
summary"Seattle Seahawks 10 – 17 San Francisco 49ers, 3rd Quarter"
linkESPN 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

  1. Choose 🏟️ Leagues — one or several. Through the API you can also pass any ESPN soccer slug such as eng.2 or a full path such as soccer/ned.1.
  2. Leave the dates empty for today, or set From and To (up to 60 days), or use Days ahead for "the coming week".
  3. Keep What to get on Scores & schedule, or switch to standings, teams, roster, team schedule, game details or news.
  4. Optionally filter to upcoming, live or finished games, and switch on Add game details for box scores and leaders.
  5. 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:

  • status is scheduled, live or final; statusDetail is the human phrase ("Final", "3rd Quarter", "Sat, September 5th at 12:00 PM EDT"). Quote summary when a user wants one line.
  • Dates: dateFrom/dateTo (YYYY-MM-DD) or days ahead 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); winner is 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.
  • includeGameDetails adds one request per game; leave it off for schedules. Roster and team-schedule modes need teamIds; game mode needs eventIds.
  • No proxy is used and none is needed; a league that fails returns an error row.

❓ FAQ

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

ActorWhat it does
Google Flights ScraperLive flight prices, layovers and booking options
Trip.com ScraperHotel prices and availability for a city and dates
Airbnb ScraperAirbnb listings for any place and dates
Email Verifier & Phone Number ValidatorChecks e-mails and phone numbers in bulk