
ESPN Sports Scraper
hipersoft/espn-sports-scraper
Scrape live and past scores, teams, standings and news across NBA, NFL, MLB, NHL, EPL, La Liga and more via ESPN's public data. For sports analytics, betting and fantasy. No setup.
Total users
1Monthly users
1Total runs
111Per item scraped
$0.001Last rebuilt
Oct 28, 2026Overview
ESPN Sports Scraper pulls live and past scores, team directories, league standings and news headlines across NBA, NFL, MLB, NHL, EPL, La Liga and many more — all as clean, structured JSON. Pick your leagues, choose a data type, and optionally set a date or date range for the scoreboard. Export to JSON, CSV, Excel or XML. Fast and reliable, with no API key to set up. Made for sports analytics, betting models, fantasy tools and media dashboards.

What does the ESPN Scraper do?
Choose one or more leagues and a data type — scoreboard, teams, standings or news — and it returns every matching record as structured data. Set a date or date range to pull historical scoreboards, or leave it empty for today's games.
What data can you scrape from ESPN?
| Data point | Description |
|---|---|
| Game | gameId, name, shortName, date, status, completed |
| Teams | homeTeam, awayTeam, competitors |
| Score | homeScore, awayScore |
| Venue | venue, city |
| Context | league, dataType |
| News | headlines, description, published, byline, url, image |
| Standings | wins, losses, win percentage, points for/against, streak, rank |
What you get
Each scoreboard game is one clean dataset record. Export the full table to JSON, CSV, Excel or XML.

{
"league": "nba",
"dataType": "scoreboard",
"gameId": "401585123",
"name": "Boston Celtics at Los Angeles Lakers",
"shortName": "BOS @ LAL",
"date": "2026-01-15T03:00Z",
"status": "Final",
"completed": true,
"venue": "Crypto.com Arena",
"city": "Los Angeles",
"competitors": [
{ "team": "Los Angeles Lakers", "abbreviation": "LAL", "homeAway": "home", "score": 112, "winner": true, "record": "24-14" },
{ "team": "Boston Celtics", "abbreviation": "BOS", "homeAway": "away", "score": 108, "winner": false, "record": "30-9" }
],
"homeTeam": "Los Angeles Lakers",
"awayTeam": "Boston Celtics",
"homeScore": 112,
"awayScore": 108
}
Output schema
Fields below are for the scoreboard data type. The teams, standings and news data types return their own record shapes (team directories, standings metrics, and headline feeds respectively).
| Field | Type | Description |
|---|---|---|
league |
string | League code the record belongs to (e.g. nba, epl). |
dataType |
string | Which data type produced the record (here, scoreboard). |
gameId |
string | ESPN's unique identifier for the game. |
name |
string | Full matchup name (e.g. "Boston Celtics at Los Angeles Lakers"). |
shortName |
string | Abbreviated matchup (e.g. "BOS @ LAL"). |
date |
string (ISO date) | Scheduled start time of the game. |
status |
string | Game status such as Scheduled, In Progress or Final. |
completed |
boolean | Whether the game has finished. |
venue |
string | Name of the stadium or arena. |
city |
string | City where the game is played. |
competitors |
array | Per-team detail: team name, abbreviation, home/away, score, winner and record. |
homeTeam |
string | Home team name. |
awayTeam |
string | Away team name. |
homeScore |
integer | Home team score. |
awayScore |
integer | Away team score. |
Use cases
- Feed live and final scores into a betting or model pipeline.
- Build league standings tables for a sports site or app.
- Pull team directories with colors and logos for branding.
- Aggregate league news headlines for a media dashboard.
- Backfill historical scores for a sports analytics dataset.
How to scrape ESPN data
- Add the ESPN Sports Scraper to your Apify account and open its input.
- Choose one or more league codes under
leagues. - Set
dataTypeto scoreboard, teams, standings or news. - For scoreboards, set
datesto aYYYYMMDDday or range, then click Run. - Export the results as JSON, CSV, Excel or XML, or pull them via the Apify API.
Input
{
"leagues": ["nba", "epl"],
"dataType": "scoreboard",
"dates": "20260115"
}
| Field | Description |
|---|---|
leagues |
League codes to scrape (e.g. nba, wnba, ncaab, nfl, ncaaf, mlb, nhl, epl, laliga, seriea, bundesliga, ligue1, ucl, mls, pga, f1, atp). |
dataType |
scoreboard, teams, standings, or news. |
dates |
Scoreboard date YYYYMMDD or YYYYMMDD-YYYYMMDD range; empty = today. |
Need more sports & media data?
- TVmaze Scraper — TV shows, episodes and cast data.
- Google News Scraper — news headlines and articles by keyword.
- Google Trends Scraper — interest-over-time for teams, players and topics.
FAQ
Do I need an ESPN account or API key? No. Just pick your leagues and data type and run — no login or API key.
Which leagues are supported? nba, wnba, ncaab, nfl, ncaaf, mlb, nhl, epl, laliga, seriea, bundesliga, ligue1, ucl, mls, pga, f1 and atp.
Can I scrape scores for a specific date?
Yes. Set dates to a single YYYYMMDD day or a YYYYMMDD-YYYYMMDD range. Leave it empty for today's games.
What export formats are supported? JSON, CSV, Excel and XML, plus programmatic access through the Apify API.
How does billing work? You pay per item you get, so cost scales with the number of records you actually collect. See the Pricing tab for current rates.
Can I connect this to other tools? The ESPN Sports Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is scraping ESPN legal? The scraper reads only publicly available scores, teams, standings and news. You are responsible for reviewing ESPN's terms for your use case.
Notes
Original clean-room implementation. Reads only publicly available scores, teams, standings and news. Not affiliated with, endorsed by or connected to ESPN, Inc. or its affiliates.
Input
| Field | Type | Description |
|---|---|---|
leaguesLeagues | array | Leagues to scrape: nba, wnba, ncaab, nfl, ncaaf, mlb, nhl, epl, laliga, seriea, bundesliga, ligue1, ucl, mls, pga, f1, atp. |
dataTypeData type | string · scoreboard, teams, standings, news | What to scrape for each league. Default: "scoreboard" |
datesDates (scoreboard only) | string | For the scoreboard: a date YYYYMMDD or range YYYYMMDD-YYYYMMDD. Empty = today / current. |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~espn-sports-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"leagues": [
"nba"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/espn-sports-scraper").call(run_input={
"leagues": [
"nba"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/espn-sports-scraper').call({
"leagues": [
"nba"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Item scraped One game, team, standing or news item with full detail | $0.001 | $0.0005 |
| API request One ESPN data API request | $0.001 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Google Autocomplete Keyword Scraper
Generate long-tail keyword ideas from Google Autocomplete: alphabet-soup, question and preposition expansions with relevance scores. Fast SEO keyword research, per country and language. Clean, no setup.
118 runs · 7 users · $0.0013 / keyword scrapedStockTwits Scraper
Scrape StockTwits messages and retail Bullish/Bearish sentiment for any ticker in bulk (stocks, ETFs, crypto, forex). One row per message with body, author, timestamp, sentiment, likes and replies. Fast, reliable and account-free.
73 runs · 2 users · $0.0008 / message scrapedJWT Decoder & Verifier
Decode JWT header and payload, and optionally verify the signature and expiry against a secret or JWKS. Debug and audit auth tokens in bulk.
70 runs · 2 users · $0.001 / jwt processedExchange Rates Scraper
Fetch live and historical foreign-exchange rates published by the European Central Bank: any base currency, any target symbols, plus full time series over a date range. Clean structured JSON, CSV or Excel for finance, invoicing, dashboards and n8n.
64 runs · 2 users · $0.0005 / rate scrapedCongress Stock Trades Scraper
Scrape U.S. Congress members' stock trades & financial disclosures: member, ticker, buy/sell, amount range and dates. One clean row per trade or filing as JSON, CSV or Excel.
62 runs · 1 users · $0.003 / item scrapedForexFactory Economic Calendar Scraper
Scrape the ForexFactory economic calendar — every high, medium and low-impact macro event with its release time, forecast, previous and actual values. Pull this week, this month, today or tomorrow, filter by impact or currency, and export clean rows as JSON, CSV or Excel.
50 runs · 2 users · $0.003 / event scrapedSend the site and the fields. We build it and you get it first.