Sofascore Scraper avatar

Sofascore Scraper

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Sofascore Scraper

Sofascore Scraper

Scrape Sofascore for live scores, fixtures, match stats, lineups, incidents, odds, standings, teams and players. 110+ fields with 9 enrichments. Football, basketball, tennis and 10+ sports. JSON/CSV/Excel. API, MCP, webhook, AI-agent ready.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Scrape Smith

Scrape Smith

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

0

Monthly active users

6 days ago

Last modified

Share

⚽ Sofascore Scraper

Live sports data — matches, teams, players, standings — clean structured JSON in seconds.

Extract live scores, fixtures, results, team profiles, player profiles, and league/tournament data from Sofascore in clean, structured JSON — no coding required. Built for sports bettors, fantasy sports players, sports media teams, data analysts, and AI agents that need reliable, structured sports data on demand.

🎯 Why Use This Scraper

One actor, every sports data need — pull live matches, scheduled fixtures, team pages, player pages, and tournament standings from a single tool instead of stitching together multiple sources.

Clean, analysis-ready output — every match, team, and player record is normalized into consistent fields, so you can plug the data straight into a spreadsheet, database, or machine learning pipeline without cleanup.

No-code web scraping — set your inputs (sport, date, teams, or search terms) and run; the actor handles the rest and hands you a ready-to-use dataset.

Built for automation — export instantly to JSON, CSV, Excel, or XML, or wire the actor into your existing stack via API, webhook, or no-code automation tools like Zapier, Make, and n8n.

🚀 Features

✅ Scrape live, in-play matches across football/soccer and many other sports, updated on demand.

✅ Pull scheduled fixtures and results for any date, with support for looking ahead multiple days.

✅ Fetch data directly from match, team, player, or tournament URLs for targeted collection.

Search by name to find teams, players, or tournaments and retrieve their full profile data.

✅ Detailed match statistics — possession, shots, passes, xG, and more, where available.

Lineups and formations — starting XI, substitutes, and player ratings per match.

Match incidents — goals, cards, substitutions, and other key match events in sequence.

League standings and current-season tournament context attached to matches and team results.

Team squads and player profiles, including position, market value, and career/contract details.

✅ Optional betting market and fan-vote data, plus historical head-to-head records between teams.

📊 Output Fields

The scraper returns different record shapes depending on what you're collecting (matches, teams, players, or tournaments). Every field below is a real field name produced by the actor.

⏱️ Match / Event Info

FieldDescription
typeRecord type, e.g. "match"
idUnique Sofascore match/event ID
sportSport slug (e.g. football, basketball, tennis)
countryCategory/region the competition belongs to
tournamentTournament name for this specific match
tournamentSlugURL-friendly tournament identifier
uniqueTournamentIdID of the parent competition (stable across seasons)
uniqueTournamentNameName of the parent competition
seasonNameSeason label (e.g. 2025/2026)
seasonYearSeason year
roundRound or matchday number
startTimestampMatch kickoff time (Unix timestamp)
startTimeMatch kickoff time (ISO 8601)
eventSlugURL-friendly match identifier
customIdSofascore custom short ID
urlDirect link to the match page
scrapedAtTimestamp when the record was collected

🏆 Score & Status

FieldDescription
homeScoreCurrent/final score for the home side
awayScoreCurrent/final score for the away side
homeScorePeriod1 / homeScorePeriod2Home team score by period/half
awayScorePeriod1 / awayScorePeriod2Away team score by period/half
homeScoreNormaltime / awayScoreNormaltimeScore at the end of regulation time
homeScorePenalties / awayScorePenaltiesPenalty shootout score, if applicable
statusCodeNumeric match status code
statusTypeMatch status category (e.g. finished, live, scheduled)
statusDescriptionHuman-readable match status
winnerCodeIndicates which side won (or draw)
hasXgWhether expected-goals data is available for this match

⚽ Team Info (Match Context)

FieldDescription
homeTeamId / awayTeamIdUnique team IDs
homeTeamName / awayTeamNameFull team names
homeTeamShortName / awayTeamShortNameShort team names
homeTeamSlug / awayTeamSlugURL-friendly team identifiers
homeTeamCountry / awayTeamCountryCountry each team represents

🏟️ Venue & Match Officials

FieldDescription
venueStadium/arena name
venueCityCity where the venue is located
venueCountryCountry where the venue is located
venueCapacityStadium capacity
refereeMatch referee name
attendanceReported match attendance

👥 Team Profile

FieldDescription
type"team"
idUnique team ID
nameTeam name
fullNameFull official team name
shortNameShort team name
slugURL-friendly team identifier
nameCodeShort abbreviation/code (e.g. MUN)
sportSport slug
countryCountry the team represents
categoryCompetition category/tier
nationalWhether this is a national team
genderTeam gender category
managerNameCurrent head coach/manager name
venueNameHome stadium/arena name
venueCapacityHome stadium capacity
venueCityHome stadium city
primaryColor / secondaryColorOfficial team colors
foundationDateTimestampClub founding date (Unix timestamp)
userCountNumber of Sofascore followers/fans
urlDirect link to the team page
squadFull roster array (when enabled): id, name, position, jerseyNumber, height, country per player

👤 Player Profile

FieldDescription
type"player"
idUnique player ID
namePlayer full name
shortNameShort display name
slugURL-friendly player identifier
sofascoreIdSofascore-specific identifier
positionPlaying position
jerseyNumberShirt/jersey number
heightPlayer height
preferredFootPreferred foot
dateOfBirthTimestampDate of birth (Unix timestamp)
countryPlayer's nationality
genderPlayer gender category
deceasedWhether the player is deceased
marketValueEstimated market value
marketValueCurrencyCurrency of the market value figure
contractUntilTimestampContract expiry date (Unix timestamp)
teamId / teamNameCurrent club ID and name
userCountNumber of Sofascore followers/fans
urlDirect link to the player page

🏅 Tournament / League Info

FieldDescription
type"tournament"
idUnique tournament ID
nameTournament/league name
slugURL-friendly tournament identifier
sportSport slug
countryCountry/region of the competition
categoryCompetition category
tierCompetition tier/level
hasStandingsWhether a standings table is available
titleHolderNameCurrent title holder
mostTitlesCountNumber of titles held by the most successful team(s)
mostTitlesTeamNamesNames of the most successful team(s)
primaryColorCompetition brand color
userCountNumber of Sofascore followers/fans
currentSeasonId / currentSeasonNameCurrent season ID and label
urlDirect link to the tournament page
standingsLeague table array (when enabled)

📈 Optional Deep-Dive Data

When enabled in the input, match records can also include statistics (possession, shots, passes, xG and more), lineups (starting XI, substitutes, formations, ratings), incidents (goals, cards, substitutions in order), odds (betting markets, where available), votes (fan prediction polls), and h2h (head-to-head history between the two teams).

💼 Use Cases

Sports betting research — build your own models and compare markets using structured match, score, and status data.

Fantasy sports — track player positions, team form, and fixture data to optimize lineup decisions.

Sports journalism & media — pull fast, structured match results and player/team profiles for articles, graphics, and match reports.

Machine learning & prediction models — feed clean historical match, score, and statistics data into training pipelines for outcome prediction models.

Fan apps & live score widgets — power a website, app, or dashboard with up-to-date match, team, and league data.

Historical stats analysis — analyze team and player performance trends across seasons and tournaments.

Scouting & recruitment research — compare player profiles, positions, and market values across leagues.

Academic & sports analytics research — collect large, structured sports datasets for statistical studies.

📥 Input

Configure the actor with a simple JSON input — choose a mode, set your filters, and run:

{
"mode": "scheduled",
"sports": ["football"],
"date": "2026-08-15",
"daysAhead": 2,
"maxItems": 200,
"includeVenueDetails": true,
"includeStatistics": true,
"includeLineups": true,
"includeIncidents": true,
"includeOdds": false,
"includeVotes": false,
"includeH2h": false,
"includeStandings": true,
"includeSquad": false
}

Supported modes:

🏆 live — currently in-play matches across your chosen sports.

🏆 scheduled — all matches for a target date (plus optional days ahead).

🏆 url — specific match, team, player, or tournament pages by direct link.

🏆 search — find teams, players, or tournaments by name/keyword.

You can also target specific entities directly with urls (direct Sofascore links) or searchQueries with an optional searchType filter (all, team, player, tournament). Use maxItems to cap the size of any run.

📤 Output Example

{
"type": "match",
"id": 12847563,
"sport": "football",
"country": "Spain",
"tournament": "LaLiga",
"tournamentSlug": "laliga",
"uniqueTournamentId": 8,
"uniqueTournamentName": "LaLiga",
"seasonName": "2025/2026",
"seasonYear": "2025",
"round": 3,
"homeTeamId": 2817,
"homeTeamName": "Atletico Madrid",
"homeTeamShortName": "Atletico",
"homeTeamSlug": "atletico-madrid",
"homeTeamCountry": "Spain",
"awayTeamId": 2829,
"awayTeamName": "Real Madrid",
"awayTeamShortName": "Real Madrid",
"awayTeamSlug": "real-madrid",
"awayTeamCountry": "Spain",
"homeScore": 2,
"awayScore": 1,
"homeScorePeriod1": 1,
"homeScorePeriod2": 1,
"awayScorePeriod1": 0,
"awayScorePeriod2": 1,
"homeScoreNormaltime": 2,
"awayScoreNormaltime": 1,
"homeScorePenalties": 0,
"awayScorePenalties": 0,
"statusCode": 100,
"statusType": "finished",
"statusDescription": "Ended",
"winnerCode": 1,
"startTimestamp": 1755273600,
"startTime": "2026-08-15T19:00:00.000Z",
"hasXg": true,
"venue": "Estadio Civitas Metropolitano",
"venueCity": "Madrid",
"venueCountry": "Spain",
"venueCapacity": 68456,
"referee": "Carlos Del Cerro Grande",
"attendance": 65210,
"eventSlug": "atletico-madrid-real-madrid",
"customId": "EgbsLgb",
"url": "https://www.sofascore.com/event/12847563",
"scrapedAt": "2026-08-15T21:47:00.000Z"
}

📁 Export Formats

Every run produces a structured dataset you can download or connect elsewhere in the format that suits your workflow: JSON, CSV, Excel (XLSX), or XML. Grab the data through the Apify platform UI, or automate the download entirely through the API.

🔗 Integrations

This scraper is built to fit straight into modern data and automation stacks:

🔗 API — trigger runs and retrieve results programmatically from any language or backend.

🔗 MCP server — connect this actor to an MCP server and let AI agents call it as a tool directly.

🔗 AI agents & LLMs — use it as a data source for Claude, ChatGPT, LangChain, and other AI agent frameworks that need live sports data.

🔗 Webhooks — get notified automatically the moment a run finishes or new data is ready.

🔗 Zapier — connect Sofascore data to thousands of other apps with zero code.

🔗 Make — build visual automation scenarios around scraped sports data.

🔗 n8n — plug this actor into self-hosted or cloud n8n workflows.

🔗 Google Sheets — pipe results straight into a spreadsheet for reporting and sharing.

💡 Tips for Best Results

💡 Use scheduled mode with a specific date and daysAhead to build a rolling fixture calendar instead of running repeated live-mode checks.

💡 Turn off deep-dive add-ons (includeStatistics, includeLineups, includeOdds, etc.) when you only need scores — it keeps runs faster and datasets smaller.

💡 Use search mode first to confirm a team, player, or tournament's exact identity before switching to url mode for repeated, targeted pulls.

💡 Set maxItems deliberately for large date ranges or broad searches to keep runs predictable.

💡 Schedule recurring runs (via the Apify platform or a webhook/automation tool) to keep a live-updating sports dataset without manual intervention.

❓ FAQ

Does this scraper work for sports other than football/soccer? Yes. Sofascore covers many sports, and you can target any of them through the sports input for live and scheduled modes.

Can I get data for a specific match, team, or player instead of a whole date range? Yes. Use url mode with a direct Sofascore link, or search mode with a name or keyword to find and retrieve the right entity.

What format is the data delivered in? All results are delivered as a structured dataset, exportable to JSON, CSV, Excel, or XML directly from the platform.

Can I automate this with my existing tools? Yes. The actor supports API access, webhooks, and no-code integrations including Zapier, Make, n8n, and Google Sheets, plus MCP and AI agent connections for Claude, ChatGPT, and LangChain-based workflows.

Do I need any technical or coding skills to use this? No. Set your inputs through the simple form, run the actor, and download your results — no code required.

💳 Pricing

Pay only for results — no subscription required. Try it free.

Looking for other sports data sources? Check out our other sports scrapers to build out a complete, multi-source sports data pipeline.