SofaScore Scraper - Results, Stats, Lineups, Ratings & Odds
Pricing
from $1.40 / 1,000 results
SofaScore Scraper - Results, Stats, Lineups, Ratings & Odds
SofaScore data for football, basketball, hockey, tennis and 17 more sports: results with period scores, team stats (xG, possession, shots), lineups with player ratings, incidents and opening/closing odds. By day, team or tournament season back to the 1990s.
Pricing
from $1.40 / 1,000 results
Rating
0.0
(0)
Developer
Artsiom Kunitsyn
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Security
Limited permissionsShare
Match data from SofaScore for football (soccer), basketball, ice hockey, American football, baseball, tennis, handball, volleyball, rugby, cricket, esports and 10 more sports:
- Matches: final score, score per half / quarter / period / set, overtime and penalties, winner, tournament, season, round, teams. Optionally venue, attendance, referee and managers.
- Match statistics: every team statistic SofaScore shows (possession, expected goals, shots, big chances, passes, duels, tackles, corners, cards; shots, hits, power plays and giveaways in ice hockey), for the whole match and each period.
- Lineups and player ratings: every player in the squad with SofaScore's rating, minutes played, position, shirt number, market value and all per-player statistics (passes, duels, xG, xA, distance covered, saves ...).
- Incidents: goals with assists, cards, substitutions, VAR decisions, period ends and injury time.
- Odds: opening and closing odds for 1X2, double chance, totals, handicaps, both teams to score and more.
Pick matches by day (any day from 2026-01-01), by tournament and season (whole seasons back to the 1990s: the Premier League from 1992/93), by team, or by match URL. Built for reliability: the Actor finds proxy IPs that SofaScore lets through and keeps reusing them.
What you get
entityType: "events" (the default) returns one row per match:
| Field | Example |
|---|---|
sport, event_id, date, start_time_utc | football, 16938974, 2026-10-14, 2026-10-14T16:45+00:00 |
tournament, season, round, category | UEFA Champions League, 26/27, 2, Europe |
home_team, away_team, home_score, away_score | Feyenoord, Como, 3, 2 |
winner, status, status_description | Feyenoord, finished, Ended |
periods | [{"period": 1, "home": 1, "away": 1}, {"period": 2, "home": 2, "away": 1}] |
home_score_overtime, home_score_penalties | extra time and shoot-out scores when played |
venue, attendance, referee, home_manager | with Include venue, referee and attendance |
event_url | the SofaScore match page |
Every other type repeats the match columns (date, tournament, home_team, away_team, scores, event_url) and
adds:
statistics: one row per match period (period=match,1,2...). Each statistic is two columns,home_<name>andaway_<name>, e.g.home_ball_possession,away_expected_goals,home_total_shots_on_goal,home_corner_kicks. Ratios add a_totalcolumn (home_accurate_passesofhome_accurate_passes_total).lineups: one row per player:side,team,formation,player,position,shirt_number,starter,captain,minutes_played,rating,market_value,player_country,player_date_of_birthandplayer_statistics(an object with every per-player statistic).incidents: one row per incident in match order:incident_type(goal,card,substitution,varDecision,period...),incident_class(regular,penalty,ownGoal,yellow,red...),minute,added_time,team,player,assist,player_in,player_out,home_score_after,away_score_after.odds: one row per market selection:market_group(1X2,Double chance,Match goals,Asian handicap,Both teams to score...),market_period,line(e.g.2.5),selection,opening_odds,current_odds(decimal; the closing odds once the match is over), the fractional odds andwinning.
How to use it
- Yesterday's and today's football results (the default): just run it.
- Several sports: pick them under Sports, e.g. basketball and ice hockey.
- A whole season: Tournaments =
https://www.sofascore.com/football/tournament/england/premier-league/17, Seasons =2024/2025, clear Max items. Seasons =allfor every season SofaScore has. - xG and shots for a league: the same, with
entityType: "statistics". - Player ratings:
entityType: "lineups"for the matches you want. - A team's recent form: Teams = the team's SofaScore URL, From date = how far back.
- Pre-match odds and closing lines:
entityType: "odds"; Match status = upcoming for today's and tomorrow's fixtures, finished for closing odds. - A daily feed: schedule it daily with the default dates, Max items cleared and Mode = incremental: each run returns only finished matches earlier runs didn't.
Input
| Field | Default | What it does |
|---|---|---|
entityType | events | events, statistics, lineups, incidents or odds. |
sports | football | Listing by day: which sports. |
dateFrom, dateTo | yesterday and today | Listing by day from 2026-01-01 on. With tournaments or teams, the dates only filter. |
eventStatus | finished | finished, upcoming or all. |
tournaments, seasons | none | Tournament URLs or ids, and which seasons (2024/2025, 24/25, 2024, all; empty = newest). |
teams | none | Team URLs or ids: their matches across all competitions. |
eventIds | none | Match URLs or ids. |
includeEventDetails | off | Venue, attendance, referee and managers (one extra request per match). |
maxItems | 50 | Row cap. Clear it for everything. |
mode | full | incremental skips finished matches earlier incremental runs returned. |
concurrency | 10 | Requests in parallel. |
proxyConfiguration | Apify Proxy | SofaScore blocks most IPs; proxy traffic is included in the price. |
Good to know
- Times and dates are UTC.
- Smaller leagues often have results only: statistics, lineups and odds exist mostly for the bigger competitions. A run lists the biggest competitions first, so a capped run gets the matches that have data.
home/awayfollow SofaScore's order. In tennis they are player 1 and player 2.- Odds come from SofaScore's default bookmaker and show opening and current odds, not every move in between.
- Listing by day starts at 2026-01-01; older seasons are reached through Tournaments or Teams.
- Standings are not included.
Related sports data scrapers
- Flashscore Scraper — results, statistics, lineups and opening/closing odds from ~20 bookmakers for 17 sports.
- TennisExplorer Scraper — ATP/WTA/ITF results to the 1990s, bookmaker odds and SofaScore serve/return statistics.
- Action Network Scraper — US sportsbook odds, public betting splits, line movement, props, injuries and futures.
- Sports Odds History Scraper — opening and closing lines per sportsbook since 2021 and ATS results since 2006.
- Smarkets Betting Exchange Scraper — betting exchange back and lay odds, matched volume, results and traded-price history.
- Kalshi & Polymarket Scraper — prediction market odds, settled results and price history.