VOOZH about

URL: https://apify.com/ahmed_hrid/espn-soccer-data-scraper

⇱ ESPN Soccer Data Scraper Β· Apify


Pricing

from $5.00 / 1,000 league scrapeds

Go to Apify Store

ESPN Soccer Data Scraper

Extract structured soccer data from ESPN's live data infrastructure β€” the same feed that powers ESPN's website and app. No API key required. One run delivers standings, match results, team rosters, top scorers, player stats, and news across any major league in the world

Pricing

from $5.00 / 1,000 league scrapeds

Rating

0.0

(0)

Developer

πŸ‘ Ahmed hrid

Ahmed hrid

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

⚽ ESPN Soccer Data Scraper β€” Live Scores, Standings & Stats from 70+ Leagues

Extract structured soccer data from ESPN's live data infrastructure β€” the same feed that powers ESPN's website and app. No API key required. One run delivers standings, match results, team rosters, top scorers, player stats, and news across any major league in the world.

Perfect for: developers building sports apps, data scientists, fantasy platforms, sports media teams, and betting analytics.


πŸ“Œ What This Actor Does

This Actor scrapes live soccer data directly from ESPN's public data feed. For each league you provide, it returns a clean, structured dataset record with all requested data types nested inside β€” ready to use without any transformation.

Supported data types per league:

Data TypeWhat You Get
standingsLeague table with W/D/L, points, goals for/against
scoreboardMatch results and upcoming fixtures with scores
teamsFull team list with logos, colors, and links
newsLatest news articles for the league
leadersSeason statistical leaders (goals, assists, etc.)
athletesPlayer roster with positions, nationality, age
rankingsCompetition rankings where available

No authentication needed. No browser automation. Fast and reliable.


✨ Key Features

  • 70+ leagues worldwide β€” Premier League, Champions League, MLS, Copa Libertadores, Serie A, Bundesliga, La Liga, and many more
  • 7 data types per run β€” get everything you need in one call
  • Optional full match details β€” per-match possession, shots, fouls, and complete player lineups
  • Pay-per-event pricing β€” pay from $0.05/league, nothing more
  • Human-readable league names β€” just type "Premier League", no slug lookup needed
  • Proxy support β€” built-in Apify proxy integration for reliable production runs
  • Free tier β€” try 1 league with standings + scoreboard at no cost

🧠 Why This Actor is Different

Most soccer data APIs charge €50–€300/month regardless of usage. This Actor gives you the same ESPN data quality with true pay-as-you-go pricing.

  • No subscription β€” pay $0.05 per league scraped, nothing when you don't run
  • 7 data types bundled β€” competitors charge separately per endpoint
  • Clean nested output β€” one dataset record per league, no flattening required
  • 70+ competitions β€” including niche leagues often absent from commercial APIs

βš™οΈ Input Configuration

Required

FieldTypeDescription
leaguesstring[]Leagues to scrape. Accepts human-readable names or ESPN slugs.

Optional

FieldTypeDefaultDescription
dataTypesstring[]["standings","scoreboard"]Which data types to collect per league
includeMatchDatabooleanfalseFetch full stats + lineups per match (requires scoreboard)
maxItemsPerLeagueinteger50Max records per data type. Set 0 for no limit.
proxyConfigurationobjectDirectProxy settings. Residential recommended for large runs.

Example Input

{
"leagues":["Premier League","UEFA Champions League","MLS"],
"dataTypes":["standings","scoreboard","teams","news"],
"includeMatchData":false,
"maxItemsPerLeague":50,
"proxyConfiguration":{
"useApifyProxy":true,
"apifyProxyGroups":["RESIDENTIAL"]
}
}

Supported League Names (Sample)

NameESPN Slug
Premier Leagueeng.1
UEFA Champions Leagueuefa.champions
La Ligaesp.1
Bundesligager.1
Serie Aita.1
Ligue 1fra.1
MLSusa.1
Copa Libertadoresconmebol.libertadores
FIFA World Cupfifa.world
Saudi Pro Leagueksa.1

Tip: You can also pass ESPN slugs directly (e.g., "jpn.1" for J.League) if a league isn't in the name list.


πŸ“€ Output Format

One dataset item per league. Each item contains the league name, slug, scrapedAt timestamp, and an array for each requested data type.

Sample Output

{
"league":"UEFA Champions League",
"slug":"uefa.champions",
"scrapedAt":"2026-06-26T10:30:00.000Z",
"standings":[
{
"team":"Real Madrid",
"abbreviation":"RM",
"logo":"https://a.espncdn.com/i/teamlogos/soccer/500/86.png",
"stats":{
"gamesPlayed":"10",
"wins":"8",
"losses":"1",
"ties":"1",
"points":"25",
"pointsFor":"22",
"pointsAgainst":"8"
}
}
],
"scoreboard":[
{
"id":"699001",
"name":"Real Madrid vs Manchester City",
"date":"2026-06-20T19:00:00Z",
"status":"Final",
"venue":"Santiago BernabΓ©u",
"homeTeam":"Real Madrid",
"homeScore":"2",
"awayTeam":"Manchester City",
"awayScore":"1",
"url":"https://www.espn.com/soccer/match/_/gameId/699001"
}
],
"teams":[...],
"news":[...],
"leaders":[...],
"athletes":[...],
"rankings":[...]
}

Field Reference

Top-level:

  • league β€” Name you provided as input
  • slug β€” ESPN slug used internally
  • scrapedAt β€” ISO 8601 timestamp of the run

standings[]: team, abbreviation, logo, stats{} (varies by league β€” GP, W, D, L, Points, GF, GA, GD)

scoreboard[]: id, name, date, status, venue, homeTeam, homeScore, awayTeam, awayScore, url β€” plus optional stats{} and lineups{} when includeMatchData: true

teams[]: id, name, shortName, abbreviation, location, logo, color, url

news[]: id, headline, description, published, url, image

leaders[]: category, value, athleteName, athleteId, teamName, teamAbbreviation

athletes[]: id, name, position, nationality, teamName, teamAbbreviation, age, photo

rankings[]: rankingName, rank, previousRank, teamName, points, firstPlaceVotes


▢️ How to Use

Option 1: Apify Console (No Code)

  1. Open the Actor in the Apify Store and click Try for free
  2. In the Input tab, add your leagues (e.g., "Premier League", "MLS")
  3. Select the data types you need
  4. Click Start β€” results appear in the Output tab within seconds

Option 2: Apify API

curl-X POST \
"https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN"\
-H"Content-Type: application/json"\
-d'{
"leagues": ["Premier League", "La Liga"],
"dataTypes": ["standings", "scoreboard"],
"maxItemsPerLeague": 50
}'

Option 3: JavaScript SDK

import{ ApifyClient }from'apify-client';
const client =newApifyClient({token:'YOUR_TOKEN'});
const run =await client.actor('YOUR_ACTOR_ID').call({
leagues:['Premier League','Bundesliga'],
dataTypes:['standings','teams','leaders'],
maxItemsPerLeague:100,
});
const{ items }=await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

πŸ“ˆ Use Cases

Fantasy Sports Platforms

Pull weekly standings, top scorers (leaders), and player rosters (athletes) across multiple leagues β€” without locking in to a monthly API subscription.

Sports Media & Newsletters

Automate your match results digest. Schedule the Actor to run nightly, then pipe scoreboard + news into your newsletter tool or CMS.

Betting Analytics

Build scoreboard datasets for prediction models. Combine match results with team standings for feature engineering across dozens of leagues.

Fan Apps & Dashboards

Power a multi-league standings dashboard with live data. The nested output structure maps directly to frontend state β€” no join queries needed.

Academic & Sports Research

Study performance trends, league parity, or player career trajectories across seasons with structured, citation-ready data.


πŸ› οΈ Advanced Tips

Reduce Costs on Large Runs

  • Use dataTypes: ["standings", "scoreboard"] as a baseline β€” most use cases only need these two
  • Set maxItemsPerLeague to cap scoreboard size for leagues with large fixture lists
  • Leave includeMatchData: false unless you specifically need per-match stats β€” it adds one extra HTTP request per game

Proxy Configuration

Direct requests work for small runs. For 10+ leagues or scheduled production runs, enable residential proxies:

{
"proxyConfiguration":{
"useApifyProxy":true,
"apifyProxyGroups":["RESIDENTIAL"]
}
}

Scheduling

Use Apify's Scheduler to keep your dataset fresh. A daily run at 6 AM costs under $0.50 for 5 leagues β€” fully automated, no infrastructure required.


πŸ’° Pricing

Pay-per-event β€” you're only charged when data is actually collected.

EventPrice
League scraped$0.05
Match detail fetched$0.01 per match

Example costs:

  • 5 leagues, standings + scoreboard β†’ $0.25
  • 5 leagues + full match details (20 matches each) β†’ $1.25

Free tier: 1 league, standings + scoreboard, up to 20 records β€” no credit card needed.


❓ FAQ

Do I need an ESPN account or API key? No. The Actor uses ESPN's public data feed β€” no authentication required.

How fresh is the data? Scoreboard data updates in near real-time during live matches. Standings and other data reflect the most recently completed state on ESPN.

Can I get historical season data? The Actor returns current-season data as served by ESPN's live endpoints. Historical seasons are not currently supported.

A league I need isn't in the name list β€” can I still use it? Yes. Pass the ESPN soccer slug directly (e.g., "por.1" for Primeira Liga). Find slugs in the ESPN website URL for that league's page.

Why did a data type return 0 records? Some data types aren't populated for all competitions. rankings is rarely available for club leagues, and leaders may be empty for tournaments between seasons. These return [] without failing the run.

Is this suitable for production use? Yes. Failed data types return empty arrays without crashing the run, proxy support is built in, and runs are hosted on Apify's infrastructure with automatic retries.


πŸ“ž Support

You might also like

ESPN Rosters & Player Stats

crawlerbros/espn-rosters-player-stats

Scrape team rosters and player career statistics from ESPN across 16 leagues and 5 sports. No account or proxy required.

11

5.0

ESPN Hidden API Multi-Sport Scores Scraper

jungle_synthesizer/espn-hidden-api-multi-sport-scores-scraper

Scrapes scores, schedules, rosters, and athlete data from ESPN's undocumented public JSON APIs (site.api.espn.com + sports.core.api.espn.com). Covers NFL, NBA, MLB, NHL, soccer, and college sports β€” no auth, no HTML parsing, survives site redesigns.

πŸ‘ User avatar

BowTiedRaccoon

2

ESPN Standings

crawlerbros/espn-standings

Scrape league standings tables from ESPN across 16 leagues and 5 sports. Supports current and historical seasons. No account or proxy required.

ESPN Soccer Scoreboard Scraper

parseforge/espn-soccer-scoreboard-scraper

Grab soccer fixtures and results from ESPN across Premier League, La Liga, Bundesliga, Serie A, Ligue 1, MLS, UEFA Champions League, World Cup, and more. Filter by league slug, season year, or a specific date. Useful for match trackers, odds research, and fan dashboards.

ESPN News

crawlerbros/espn-news

Scrape ESPN news articles and headlines across 16 leagues and 5 sports. Optional team filter. No account or proxy required.

52

ESPN NFL Stats Scraper

crawlerbros/espn-nfl-stats-scraper

Scrape NFL statistics from ESPN's public API - team rosters with player profiles, team standings, team schedules, game scoreboards, and NFL news. Covers all 32 NFL teams with player bio data. No API key required.