ESPN Soccer Scores, Fixtures & Standings Scraper avatar

ESPN Soccer Scores, Fixtures & Standings Scraper

Pricing

from $6.15 / 1,000 results

Go to Apify Store
ESPN Soccer Scores, Fixtures & Standings Scraper

ESPN Soccer Scores, Fixtures & Standings Scraper

Scrape soccer scores, fixtures, results, standings and teams for the FIFA World Cup and top leagues. Get match date, live status, home and away teams, scores, venue, broadcasts and league tables. Export to JSON, CSV or Excel.

Pricing

from $6.15 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

20 hours ago

Last modified

Share

ESPN Soccer Scores, Fixtures & Standings Scraper

ESPN Soccer Scores, Fixtures & Standings Scraper

Here is one real result from the standings mode, with every field the actor returns:

{
"recordType": "standing",
"league": "eng.1",
"leagueName": "English Premier League",
"group": null,
"season": "2026-2027",
"rank": 1,
"team": "AFC Bournemouth",
"teamAbbrev": "BOU",
"teamLogo": "https://a.espncdn.com/i/teamlogos/soccer/500/349.png",
"gamesPlayed": 0,
"wins": 0,
"draws": 0,
"losses": 0,
"points": 0,
"goalsFor": 0,
"goalsAgainst": 0,
"goalDifference": 0,
"pointsPerGame": 0,
"record": "0-0-0",
"observedAt": "2026-08-15T04:11:57.120Z",
"error": null
}

The most complete ESPN soccer scraper available. From one input it returns match scores and fixtures, the full league table, or the team list for any of 18 competitions, with every field ESPN exposes: scores, match status and clock, venue, odds, team form and records for matches; rank, points, goal difference and per-game stats for standings; and team identity, colors and logos for teams.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

Pick a competition and one of three modes. The actor calls ESPN's public soccer data for that competition, normalizes it, and writes one record per match, table row, or team to the run's dataset:

  • Scores & fixtures (scoreboard): matches for the current matchday, a single date, or a date range. Each record has scores, status and clock, home/away teams with form and records, venue, broadcasts, and betting odds when available.
  • Standings (standings): the current league table, one row per team with rank, played, wins/draws/losses, points, goals for/against, goal difference, and points per game.
  • Teams (teams): the list of clubs in the competition with identity, colors, and logos.

Supported competitions include the FIFA World Cup, Premier League, LaLiga, Serie A, Bundesliga, Ligue 1, MLS, Liga MX, Liga Profesional (Argentina), Brasileirao, Primeira Liga, Eredivisie, UEFA Champions League, UEFA Europa League, CONMEBOL Libertadores, CONCACAF Gold Cup, UEFA European Championship, and FIFA Women's World Cup.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the current Premier League table.

{
"mode": "standings",
"league": "eng.1",
"maxRecords": 10
}

Set mode to scoreboard for scores and fixtures (optionally with date or dateFrom/dateTo), or teams for the club list. Change league to any supported competition code.

Input reference

FieldTypeRequiredDefaultDescription
modeenumnoscoreboardWhat to scrape: scoreboard (scores and fixtures), standings (league table), or teams (club list).
leagueenumnofifa.worldCompetition code. One of fifa.world, eng.1, esp.1, ita.1, ger.1, fra.1, usa.1, mex.1, arg.1, bra.1, por.1, ned.1, uefa.champions, uefa.europa, conmebol.libertadores, concacaf.gold, uefa.euro, fifa.wwc.
datestringno(current)Scoreboard mode only. A single day as YYYY-MM-DD. Empty returns the current matchday and nearby fixtures.
dateFromstringno(none)Scoreboard mode only. Start of a date range (YYYY-MM-DD). Use with dateTo. Overrides date.
dateTostringno(none)Scoreboard mode only. End of a date range (YYYY-MM-DD). Use with dateFrom.
maxRecordsintegerno10Maximum records to collect (matches, table rows, or teams).

Output reference

One dataset item per record. The recordType field tells you which shape it is. Types: string, integer, number, boolean, object, array, or null when the source value is absent.

Standings records (recordType: "standing"):

FieldTypeDescription
recordTypestringAlways standing.
leaguestringCompetition code.
leagueNamestringCompetition display name.
groupstringGroup name for multi-group competitions, else null.
seasonstringSeason label.
rankintegerPosition in the table.
teamstringTeam display name.
teamAbbrevstringTeam abbreviation.
teamLogostringTeam logo URL.
gamesPlayedintegerMatches played.
winsintegerWins.
drawsintegerDraws.
lossesintegerLosses.
pointsintegerLeague points.
goalsForintegerGoals scored.
goalsAgainstintegerGoals conceded.
goalDifferenceintegerGoal difference.
pointsPerGamenumberPoints per game.
recordstringOverall record summary.
observedAtstringISO 8601 collection timestamp.
errorstringnull on success.

Scoreboard records (recordType: "match"):

FieldTypeDescription
recordTypestringAlways match.
matchIdstringESPN event id.
league / leagueName / seasonstringCompetition code, name, and season.
roundstringRound or stage slug, when available.
datestringISO kickoff date and time.
name / shortNamestringFull and short match name.
statestringMatch state, for example pre, in, post.
statusstringStatus description, for example Scheduled, Full Time.
statusDetailstringDetailed status or short detail.
completedbooleantrue when the match is finished.
clockstringDisplayed match clock (live matches).
periodintegerCurrent period.
homeTeam / homeAbbrevstringHome team name and abbreviation.
homeScorestringHome score.
homeWinnerbooleantrue if home won.
homeFormstringRecent home form string.
homeRecordstringHome team record summary.
homeLogostringHome team logo URL.
homeStatsobjectHome team stat map.
awayTeam / awayAbbrev / awayScore / awayWinner / awayForm / awayRecord / awayLogo / awayStatsmixedSame fields for the away team.
venue / venueCity / venueCountrystringVenue name and location.
attendanceintegerReported attendance, when available.
broadcastsstring[]Broadcaster names, or null.
oddsProviderstringOdds provider name.
oddsHomeWin / oddsDraw / oddsAwayWin / oddsOverUnder / oddsDetailsmixedBetting odds when published.
urlstringESPN match page URL.
observedAtstringISO 8601 collection timestamp.
errorstringnull on success.

Teams records (recordType: "team"):

FieldTypeDescription
recordTypestringAlways team.
league / leagueNamestringCompetition code and name.
teamIdstringESPN team id.
teamstringTeam display name.
shortNamestringShort display name.
abbreviationstringTeam abbreviation.
locationstringTeam location/city.
color / alternateColorstringTeam primary and alternate colors (hex).
teamLogostringTeam logo URL.
isActivebooleanWhether the team is active.
urlstringESPN clubhouse URL.
observedAtstringISO 8601 collection timestamp.
errorstringnull on success.

On a failed request, a single item with recordType, league, and a populated error field is written instead.

Example output record

Real record from a live run (input {"mode": "standings", "league": "eng.1", "maxRecords": 5}):

{
"recordType": "standing",
"league": "eng.1",
"leagueName": "English Premier League",
"group": null,
"season": "2026-2027",
"rank": 1,
"team": "AFC Bournemouth",
"teamAbbrev": "BOU",
"teamLogo": "https://a.espncdn.com/i/teamlogos/soccer/500/349.png",
"gamesPlayed": 0,
"wins": 0,
"draws": 0,
"losses": 0,
"points": 0,
"goalsFor": 0,
"goalsAgainst": 0,
"goalDifference": 0,
"pointsPerGame": 0,
"record": "0-0-0",
"observedAt": "2026-08-15T04:11:57.120Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~espn-soccer-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode":"standings","league":"esp.1","maxRecords":20}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~espn-soccer-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode":"scoreboard","league":"eng.1","dateFrom":"2026-08-15","dateTo":"2026-08-18","maxRecords":50}'

Apify CLI:

apify call scrapers_lat/espn-soccer-scraper \
--input '{"mode":"teams","league":"ita.1"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per record returned (result event), whether match, table row, or team. See the pricing tab for the current per-result price.
  • No charge on failure. If a request fails, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxRecords.

FAQ and troubleshooting

A run returned 0 records. Why? For scoreboard, there may be no matches on the requested date (for example a league's off-season). Try the current matchday, a date range with fixtures, or an in-season competition. Zero-result runs are not charged.

Which competition codes are supported? The 18 codes listed in the input reference, from the FIFA World Cup to domestic leagues (Premier League, LaLiga, Serie A, MLS, Liga MX, and more) and continental cups.

Can I get a specific match day? Yes, in scoreboard mode. Pass a single date, or a dateFrom/dateTo range (both YYYY-MM-DD).

Do standings include goal difference and form? Standings rows include rank, played, wins/draws/losses, points, goals for/against, goal difference, points per game, and an overall record summary. Recent form appears on match records (homeForm, awayForm).

Are betting odds always present? Odds fields are populated only when ESPN publishes odds for the match, and are null otherwise.

Is this an official ESPN tool? No. This actor is independent and has no affiliation with ESPN or the Walt Disney Company. It reads only data that is publicly available on ESPN.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with ESPN. Accesses only publicly available data on ESPN.