Football Data Scraper
Pricing
from $1.60 / 1,000 results
Football Data Scraper
Football (soccer) data for 270+ leagues: standings, top scorers, live scores, match events, statistics, lineups and head-to-head, team profiles and player career stats. One result per row.
Pricing
from $1.60 / 1,000 results
Rating
0.0
(0)
Developer
try mersianto
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Football (soccer) data for 270+ leagues and cups in one Actor: league standings, top scorers, live and today's matches, full match details (goals, cards, substitutions, statistics, lineups, formations, coaches, head-to-head), team profiles with recent and upcoming matches, and player profiles with career stats per season. $2 per 1,000 results on the Free plan, less on paid plans. No browser and no login, so runs take seconds.
What you get
Every row has a type. Fields that do not apply to a type are left out.
| Field | Type | Description |
|---|---|---|
type | string | Row type: league, standing, top_scorer, live_match, match_detail, team, player, search_team or search_match |
id | string | ID of the row: league, match, team or player ID; league-team or league-player for standings and top scorers |
name | string or null | Name (leagues, teams, players, search results) |
league_id | string or null | League ID, usable as leagueIds input |
league_name | string or null | League name |
season | string or null | Season, for standings |
position | integer or string or null | Table position (standings, top scorers) or playing position (players) |
team_id | string or null | Team ID, usable as teamIds input |
team_name | string or null | Team name |
player_id | string or null | Player ID, usable as playerIds input |
player_name | string or null | Player name |
games_played | integer or null | Standings: games played |
wins | integer or null | Standings: wins |
draws | integer or null | Standings: draws |
losses | integer or null | Standings: losses |
goals_for | integer or null | Standings: goals scored |
goals_against | integer or null | Standings: goals conceded |
goal_difference | integer or null | Standings: goal difference |
points | integer or null | Standings: points |
goals | integer or null | Top scorers: goals |
penalties | integer or null | Top scorers: penalty goals |
start_time | string or null | Match kick-off, UTC, ISO 8601 |
status | string or null | Match status, for example Full time or the current minute |
home_team | string or null | Home team |
away_team | string or null | Away team |
home_score | integer or null | Home goals |
away_score | integer or null | Away goals |
events | array or null | Match details: goals, cards and substitutions with minute and player |
statistics | array or null | Match details: possession, shots, corners and more, home and away |
home_lineup | object or null | Match details: home starting XI by line |
away_lineup | object or null | Match details: away starting XI by line |
head_to_head | array or null | Match details: previous meetings |
career_stats | object or null | Players: matches, goals and cards per season for league, cups, international cups and national team |
matches | array or null | Teams: recent and upcoming matches |
scraped_at | string | UTC time the row was scraped, ISO 8601 |
Team rows also include logo, city, country, coach, venue, capacity and founded. Player rows include photo, team, nationality, position, market_value and preferred_foot; no birth dates, heights or other personal details.
Input
Pick one mode per run:
| Mode | Uses | One row per |
|---|---|---|
standings | leagueIds | team in the table |
topScorers | leagueIds | player in the scorer list |
livescore | nothing | live or today's match |
matchDetails | matchIds | match, with events, statistics, lineups and head-to-head |
teams | teamIds | team, with its matches |
players | playerIds | player, with career stats |
search | searchQueries | team or match found |
leagues | nothing | league, with its ID |
IDs can be plain numbers or links that contain id= and a number. Empty leagueIds means the big five: Premier League (1204), La Liga (1399), Serie A (1269), Bundesliga (1229) and Ligue 1 (1221). Find other IDs with leagues mode, team IDs in standings or search, and player IDs in top scorers, lineups and events.
{"mode": "standings","leagueIds": ["1204", "1399"]}
{"mode": "matchDetails","matchIds": ["4376282"]}
Example output
{"type": "standing","id": "1204-9259","league_id": "1204","league_name": "Premier League","season": "2026/2027","position": 1,"team_id": "9259","team_name": "Man City","team_logo": "https://footballimages.ams3.cdn.digitaloceanspaces.com/teams70px/9259.jpg","games_played": 6,"wins": 6,"draws": 0,"losses": 0,"goals_for": 16,"goals_against": 5,"goal_difference": 11,"points": 18,"scraped_at": "2026-10-16T16:58:51+00:00"}```json{ "mode": "topScorers", "leagueIds": ["1204"] }
Each dataset item is one row; read type first, then the fields listed above.