Soccer Stats Scraper - Premier League, LaLiga, UCL & 12 more avatar

Soccer Stats Scraper - Premier League, LaLiga, UCL & 12 more

Pricing

from $2.00 / 1,000 row of data

Go to Apify Store
Soccer Stats Scraper - Premier League, LaLiga, UCL & 12 more

Soccer Stats Scraper - Premier League, LaLiga, UCL & 12 more

Soccer player & team game logs, box scores, closing lines with ATS/O-U results, schedules with odds, play-by-play, standings and rosters. Flat rows for football betting models, fantasy and scouting across the Premier League, LaLiga, Serie A, Bundesliga, Ligue 1, Champions League, MLS, A-League and m

Pricing

from $2.00 / 1,000 row of data

Rating

0.0

(0)

Developer

Datawright

Datawright

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

Soccer Stats Scraper - Player Game Logs, Box Scores, Betting Lines & More

Get clean, analysis-ready Soccer data in one click: every player's line for every game, team game logs with closing spread, moneyline and total plus ATS and over/under results, schedules with opening and current lines, key match events, standings and rosters.

Leagues: Premier League, EFL Championship, LaLiga, Serie A, Bundesliga, Ligue 1, Eredivisie, Primeira Liga, Scottish Premiership, UEFA Champions League, UEFA Europa League, MLS, Liga MX, Brasileirao, A-League Men.

Built for football betting models, fantasy and scouting across the Premier League, LaLiga, Serie A, Bundesliga, Ligue 1, Champions League, MLS, A-League and more, spreadsheets and AI agents. No API key, no browser, no login - fast and cheap.

What you get

Data typeOne row perHighlights
Player game logsplayer per gameGoals, shots, saves, cards, fouls, starter/sub, position, formation, closing line incl. draw
Team game logsteam per gameTeam stats, spread, moneyline (+ draw), total, ATS result, O/U result
Schedule & scoresgameStatus, score, venue, TV, records, opening vs current spread/total/moneyline
Key eventseventGoals, cards, substitutions and other key events with minute
StandingsteamWins/losses/draws, points, goal or point differential, streak, home/road
RostersplayerPosition, jersey, height, weight, age, birthplace, experience

Every row is flat (no nested JSON), so it drops straight into Excel, Google Sheets, pandas or a database.

How to use

  1. Pick a league, then what data you want.
  2. Choose a season (e.g. 2025-26) or a date range - or leave both empty for the most recent games.
  3. Optionally filter by teams and players.
  4. Run, then download as JSON, CSV or Excel, or pull it via the API.

Examples

Latest player box scores (great as a daily schedule with Only new games on):

{
"league": "epl",
"dataType": "playerGameLogs",
"daysBack": 3,
"onlyNewGames": true
}

Full season of team game logs with ATS and over/under results:

{
"league": "epl",
"dataType": "teamGameLogs",
"season": "2025-26"
}

One player's game log for the season:

{
"league": "epl",
"dataType": "playerGameLogs",
"season": "2025-26",
"players": [
"Mohamed Salah"
]
}

Upcoming games with betting lines:

{
"league": "epl",
"dataType": "games",
"daysAhead": 7
}

Sample output (player game log)

{
"league": "Premier League",
"season": "2026-27",
"seasonType": null,
"week": null,
"gameId": "401879276",
"gameDate": "2026-09-20T13:00Z",
"gameDateET": "2026-09-20",
"status": "STATUS_FULL_TIME",
"completed": true,
"neutralSite": false,
"venue": "Vitality Stadium",
"attendance": 11316,
"teamId": "349",
"team": "BOU",
"teamName": "AFC Bournemouth",
"opponentId": "364",
"opponent": "LIV",
"homeAway": "home",
"teamScore": 0,
"opponentScore": 1,
"result": "L",
"playerId": "289824",
"playerName": "Djordje Petrovic",
"position": "G",
"jersey": "1",
"starter": true,
"subbedIn": false,
"subbedOut": false,
"didNotPlay": false,
"formation": "4-2-3-1",
"formationPlace": "1",
"oddsProvider": "DraftKings",
"spread": 0.5,
"spreadOdds": -150,
"moneyline": 215,
"drawMoneyline": 270,
"total": 2.5,
"overOdds": -170,
"underOdds": 135,
"appearances": 1,
"foulsCommitted": 0,
"foulsSuffered": 0,
"ownGoals": 0,
"redCards": 0,
"subIns": 0,
"yellowCards": 0,
"goalsConceded": 1,
"saves": 2,
"shotsFaced": 0,
"goalAssists": 0,
"shotsOnTarget": 0,
"totalGoals": 0,
"totalShots": 0
}

Pricing

Pay only for rows you get - see the Pricing tab. Play-by-play rows are priced lower because each game has hundreds of them. Use Max rows or the run's maximum cost to cap spending, and Only new games on schedules so you never pay twice for the same game.

Automate it

  • Schedule a daily run (Schedules → Create) with Only new games enabled to keep a database or spreadsheet current.
  • Connect to Google Sheets, Zapier, Make, n8n or webhooks from the Integrations tab.
  • Call it from code with the Apify API or from AI agents via the Apify MCP server.

FAQ

How fresh is the data? Box scores are available minutes after a game ends; schedules and lines are fetched live on every run.

Which betting lines are included? The primary sportsbook line published on ESPN (usually DraftKings): closing spread, moneyline (plus the draw for soccer) and total on game logs, and opening vs current lines on the schedule.

What if there are no games right now? With no dates set, the actor returns the most recent game day (or, for schedules, the next one) instead of an empty result.

Can I get historical seasons? Yes - set Season to any past season ESPN has box scores for. Soccer seasons are written like "2025-26" (MLS and Brasileirao use a single year).

Disclaimer

This actor is not affiliated with, endorsed by or connected to ESPN, DraftKings or any league. It collects publicly available factual sports statistics. You are responsible for using the data in line with applicable terms and laws.