SofaScore Scraper ⚽ Live Scores | Teams | Players | Fixtures avatar

SofaScore Scraper ⚽ Live Scores | Teams | Players | Fixtures

Pricing

from $1.00 / 1,000 results

Go to Apify Store
SofaScore Scraper ⚽ Live Scores | Teams | Players | Fixtures

SofaScore Scraper ⚽ Live Scores | Teams | Players | Fixtures

From $1/1K. Pull structured sports data from SofaScore across football, basketball, tennis, and 20+ sports. Search by keyword, paste URLs, fetch live matches, or download fixtures by date. Returns scores, stats, lineups, incidents, odds, teams, players, tournaments, and more.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

AbotAPI

AbotAPI

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

2

Monthly active users

4 days ago

Last modified

Share

SofaScore Scraper

Pull structured sports data from SofaScore: live scores, match statistics, lineups, incidents, betting odds, league tables, teams, players, and tournaments. Works across football, basketball, tennis, and 20+ other sports. Search by keyword, paste links, grab every live match, or download a whole day of fixtures. Every record arrives as clean JSON with 100+ fields, ready for analysis, dashboards, or model training.

Why this scraper

  • Four ways to find data, not one. Search by keyword, paste SofaScore links, pull all live matches, or list every fixture on a date. Most scrapers only accept URLs you have to build by hand.
  • Four entity types, fully expanded. Matches, teams, players, and tournaments each come back with deep, named fields, plus the complete upstream object so nothing is lost.
  • Match detail on demand. Toggle statistics, lineups (with player ratings and formations), incidents (goals, cards, subs), and odds per run. Pay only for the depth you use.
  • League tables and squads. Tournament records can include the full standings; team records can include the entire player squad.
  • 20+ sports. Football, basketball, tennis, ice hockey, American football, baseball, cricket, rugby, MMA, and more.
  • Fast and lean. Direct JSON access, no browser. Hundreds of records per run on modest memory.
  • Documented output. A full field list and a real example record are below, so you know exactly what you get before you run it.

Data you get

Sample shape: values are illustrative placeholders, not from a live record.

Match record

FieldExample
type"match"
id10000001
sport"football"
name"Home Team - Away Team"
homeTeam / awayTeam"Home Team" / "Away Team"
homeScore / awayScore2 / 1
homeScoreHalftime / awayScoreHalftime1 / 0
statusType"finished"
winnerCode1
startTimestamp1700000000
tournament / uniqueTournament"Sample League 24/25" / "Sample League"
season"24/25"
round12
venue / venueCity"Sample Stadium" / "Sample City"
latitude / longitude40.0000 / -3.0000
referee"Referee Name"
attendance40000
hasXgtrue
country"Country"
url"https://www.sofascore.com/football/match/home-team-away-team/AbCdEf#id:10000001"
statisticspossession, shots, passes, xG (when enabled)
lineupsstarters, subs, formations, ratings (when enabled)
incidentsgoals, cards, substitutions (when enabled)
oddspre-match markets (when enabled)
votesfan prediction poll: home / draw / away counts, both-teams-to-score, first-to-score (when enabled)
rawthe complete upstream match object

Team, player, and tournament records

FieldExample
type"team" / "player" / "tournament"
id2000001
name"Sample Team"
country"Country"
managerName / venue / venueCapacity (team)"Manager Name" / "Sample Stadium" / 80000
shortName / nameCode / teamColors (team)"Sample" / "SMP" / { "primary": "#ffffff" }
position / shirtNumber / preferredFoot (player)"F" / 10 / "Left"
marketValue / marketValueCurrency (player)50000000 / "EUR"
contractUntil (player)1861833600
tier / titleHolderName / mostTitles (tournament)1 / "Sample Champion" / 20
standings (tournament)full league table when enabled
squad (team)full player list when enabled
rawthe complete upstream object

How to use

Search for a team and its stats:

{
"mode": "search",
"searchQueries": ["Real Madrid"],
"searchType": "team",
"maxItems": 5
}

Every live football and tennis match right now:

{
"mode": "live",
"sports": ["football", "tennis"],
"includeStatistics": true,
"includeIncidents": true
}

All fixtures for a date, plus the next two days:

{
"mode": "scheduled",
"sports": ["football"],
"date": "2024-06-15",
"daysAhead": 2,
"maxItems": 200
}

Paste links (match, team, player, tournament):

{
"mode": "url",
"urls": [
"https://www.sofascore.com/team/football/real-madrid/2829",
"https://www.sofascore.com/player/lionel-messi/12994"
]
}

Match links must include the numeric id: copy the address bar while on a match page (it ends with #id:<number>), or use an /event/<number> link.

Input parameters

ParameterTypeDefaultDescription
modestringsearchsearch, url, live, or scheduled.
searchQueriesarray["Real Madrid"]Keywords to resolve (search mode).
searchTypestringallRestrict a query to team, player, tournament, or match.
urlsarraysampleSofaScore links (url mode).
sportsarray["football"]Sports for live and scheduled modes.
datestringtodayYYYY-MM-DD for scheduled mode.
daysAheadinteger0Extra days after date.
includeStatisticsbooleantrueMatch and player statistics.
includeLineupsbooleantrueMatch lineups and ratings.
includeIncidentsbooleantrueGoals, cards, substitutions.
includeOddsbooleanfalsePre-match odds markets.
includeVotesbooleanfalseFan prediction poll (community sentiment) per match.
includeStandingsbooleantrueTournament league tables.
includeSquadbooleanfalseFull team squads.
maxItemsinteger20Stop after this many records (0 = no limit).
proxyobjectApify proxyConnection settings.

Output example

Sample shape: values are illustrative placeholders, not from a live record.

{
"type": "match",
"id": 10000001,
"sport": "football",
"name": "Home Team - Away Team",
"homeTeam": "Home Team",
"awayTeam": "Away Team",
"homeScore": 2,
"awayScore": 1,
"statusType": "finished",
"winnerCode": 1,
"startTimestamp": 1700000000,
"tournament": "Sample League",
"season": "24/25",
"round": 12,
"venue": "Sample Stadium",
"referee": "Referee Name",
"attendance": 40000,
"country": "Country",
"url": "https://www.sofascore.com/football/match/home-team-away-team/AbCdEf#id:10000001",
"statistics": [{ "period": "ALL", "groups": [] }],
"incidents": [{ "incidentType": "goal", "time": 23, "player": { "name": "Player Name" } }],
"raw": {}
}

Connection and plans

The scraper works on the Apify free plan with the default proxy and rotates connections automatically if an exit is refused. For large runs or sustained load, residential proxy (Starter plan and above) gives more rotation headroom. Pick it under the Connection section and, optionally, set a country.