SofaScore Scraper - Results, Stats, Lineups, Ratings & Odds avatar

SofaScore Scraper - Results, Stats, Lineups, Ratings & Odds

Pricing

from $1.40 / 1,000 results

Go to Apify Store
SofaScore Scraper - Results, Stats, Lineups, Ratings & Odds

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

Artsiom Kunitsyn

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 hours ago

Last modified

Categories

Share

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:

FieldExample
sport, event_id, date, start_time_utcfootball, 16938974, 2026-10-14, 2026-10-14T16:45+00:00
tournament, season, round, categoryUEFA Champions League, 26/27, 2, Europe
home_team, away_team, home_score, away_scoreFeyenoord, Como, 3, 2
winner, status, status_descriptionFeyenoord, finished, Ended
periods[{"period": 1, "home": 1, "away": 1}, {"period": 2, "home": 2, "away": 1}]
home_score_overtime, home_score_penaltiesextra time and shoot-out scores when played
venue, attendance, referee, home_managerwith Include venue, referee and attendance
event_urlthe 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> and away_<name>, e.g. home_ball_possession, away_expected_goals, home_total_shots_on_goal, home_corner_kicks. Ratios add a _total column (home_accurate_passes of home_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_birth and player_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 and winning.

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 = all for 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

FieldDefaultWhat it does
entityTypeeventsevents, statistics, lineups, incidents or odds.
sportsfootballListing by day: which sports.
dateFrom, dateToyesterday and todayListing by day from 2026-01-01 on. With tournaments or teams, the dates only filter.
eventStatusfinishedfinished, upcoming or all.
tournaments, seasonsnoneTournament URLs or ids, and which seasons (2024/2025, 24/25, 2024, all; empty = newest).
teamsnoneTeam URLs or ids: their matches across all competitions.
eventIdsnoneMatch URLs or ids.
includeEventDetailsoffVenue, attendance, referee and managers (one extra request per match).
maxItems50Row cap. Clear it for everything.
modefullincremental skips finished matches earlier incremental runs returned.
concurrency10Requests in parallel.
proxyConfigurationApify ProxySofaScore 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/away follow 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.