ESPN Sports Scraper — Scores, Teams & Standings
Pricing
from $2.00 / 1,000 results
ESPN Sports Scraper — Scores, Teams & Standings
Scrape ESPN for live and scheduled scores with betting odds, team lists and standings across NFL, NBA, MLB, NHL, soccer (Premier League, La Liga, Champions League) and college. Pick leagues and a data type. Keyless, no anti-bot, fast.
Pull live and scheduled scores (with betting odds), team lists, and standings from ESPN — across NFL, NBA, MLB, NHL, soccer leagues and college — as clean JSON/CSV/Excel. Pick your leagues and a data type; get structured sports data in seconds.
Keyless, no anti-bot — built for fantasy tools, odds/betting models, sports media and data analysis.
What this Actor does
Choose one or more leagues (in sport/league form) and a data type:
- Scoreboard — every game for a league: teams, live/final scores, status and clock, venue, TV broadcast, betting line/odds, and each team's record. Filter by date or date range.
- Teams — the full team list for a league: name, abbreviation, location, colors and logo.
- Standings — the standings table: conference/division, rank, wins, losses, win %, games behind and streak.
It runs on ESPN's public site API, so it's fast, keyless and reliable — one tidy row per game, team or standings entry.
Why use it
- Live scores + odds in one call. Scoreboard rows carry the score, game status and the betting line — perfect for odds models, alerting and dashboards.
- Many leagues, one Actor. NFL, NBA, MLB, NHL, soccer (Premier League, La Liga, Champions League…), college football & basketball — just change the league code.
- Fantasy & analytics ready. Clean, structured records for building fantasy tools, projections, trackers and data pipelines.
- Keyless and free of anti-bot. No API key, no scraping headaches — public endpoints, with proxy rotation on by default.
- Schedule it. Run every few minutes during game day to keep a live score/odds feed; run daily for standings.
Who it's for
- Fantasy & betting tool builders needing scores, odds and standings feeds.
- Sports media & content teams auto-populating scoreboards, recaps and widgets.
- Data analysts & modelers building datasets across seasons and leagues.
- App & dashboard developers who want a clean sports API without the official-API friction.
Quick start
Run it in the console (no code)
-
In Leagues, add one per line:
football/nflbasketball/nbasoccer/eng.1 -
Pick a Data type: Scoreboard, Teams or Standings.
-
(Scoreboard only, optional) set Dates like
20261009or20261001-20261031. -
Click Start, then export as JSON, CSV, Excel or HTML.
Leave leagues empty to run a demo (NFL + NBA scoreboard).
Run it via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"leagues": ["football/nfl", "basketball/nba", "soccer/eng.1"],"dataType": "scoreboard",}run = client.actor("YOUR_USERNAME/espn-sports-scraper").call(run_input=run_input)for g in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{g['awayTeam']} @ {g['homeTeam']} — {g['awayScore']}-{g['homeScore']} ({g['statusDetail']}) {g['odds']}")
Run it via API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/espn-sports-scraper').call({leagues: ['football/nfl'],dataType: 'standings',});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((r) => console.log(`${r.group}: ${r.teamName} ${r.wins}-${r.losses} (${r.winPercent})`));
League codes
Use sport/league:
| League | Code |
|---|---|
| NFL | football/nfl |
| College Football | football/college-football |
| NBA | basketball/nba |
| WNBA | basketball/wnba |
| Men's College Basketball | basketball/mens-college-basketball |
| MLB | baseball/mlb |
| NHL | hockey/nhl |
| Premier League | soccer/eng.1 |
| La Liga | soccer/esp.1 |
| Serie A | soccer/ita.1 |
| Bundesliga | soccer/ger.1 |
| MLS | soccer/usa.1 |
| Champions League | soccer/uefa.champions |
…and most other leagues ESPN covers — the same sport/league pattern applies.
Input
| Field | Type | Description |
|---|---|---|
| Leagues | array | One sport/league per line. Empty = demo (NFL + NBA). |
| Data type | select | scoreboard (games, scores & odds), teams, or standings. |
| Dates (scoreboard only) | string | YYYYMMDD or YYYYMMDD-YYYYMMDD. Empty = today / current slate. |
| Speed (parallel leagues) | integer | How many leagues at once. Default 5. |
| Proxy configuration | object | Apify Proxy. On by default. |
Output
Scoreboard record:
{"dataType": "scoreboard","league": "football/nfl","name": "Tampa Bay Buccaneers at Dallas Cowboys","date": "2026-10-09T00:15Z","statusState": "pre","statusDetail": "Thu, October 8th at 8:15 PM EDT","homeTeam": "Dallas Cowboys", "homeScore": "0", "homeRecord": "2-2","awayTeam": "Tampa Bay Buccaneers", "awayScore": "0", "awayRecord": "0-4","venue": "AT&T Stadium", "city": "Arlington","odds": "DAL -8.5","broadcast": "Prime Video","scrapedAt": "2026-10-08T14:00:00.000Z"}
Teams record: teamId, teamName, abbreviation, location, color, logo, record, standingSummary.
Standings record: group (conference/division), teamName, rank, wins, losses, ties, winPercent, gamesBehind, pointsFor, pointsAgainst, streak.
Every record also carries dataType, league and scrapedAt, so mixed exports stay tidy.
Tips & notes
- Live game day. Schedule the scoreboard every few minutes —
statusStateflipspre→in→post, and scores/clock update live. - Odds. The
oddsfield carries the current line when ESPN publishes it (e.g.DAL -8.5). It can be empty for leagues/games without a posted line. - Date ranges. Use
datesto pull a past day, a whole month, or a future slate for scheduling. - Mix leagues. Add several leagues in one run — each row is labeled with its
league. - Standings timing. Records and standings populate once a season is underway; preseason/offseason may return empty records.
Frequently asked questions
Do I need an API key? No. The Actor uses ESPN's public site API — no key, no account.
Which leagues are supported?
Most leagues ESPN covers: NFL, NBA, WNBA, MLB, NHL, college football & basketball, and many soccer leagues (Premier League, La Liga, Serie A, Bundesliga, MLS, Champions League, and more). Use the sport/league code.
Does it include betting odds?
Yes — the scoreboard includes the posted line in the odds field when ESPN provides one.
Can I get live scores?
Yes. Run the scoreboard during games; statusState/statusDetail and scores reflect the live state. Schedule it to keep a feed fresh.
Can I pull a specific date?
Yes — set dates (scoreboard) to a day or range in YYYYMMDD form.
Is it good for fantasy / modeling? Absolutely — clean, structured scores, standings and team data across leagues are ideal for fantasy tools and predictive models.
Export & integrate
Results are available as JSON, CSV, Excel, HTML and via the Apify API. Push to Google Sheets, a webhook, Make, Zapier, Slack or your database — and schedule runs for live score/odds feeds or daily standings.