Sofascore Scraper for Live Scores, Player Ratings and Match Statistics

Sofascore rates every player more than sixty times between kickoff and the settled figure, and draws the match as momentum, shots and heat. We extract Sofascore data on your cadence.

Sofascore Scraper
Solutions

How We Build and Price a Sofascore Data Feed

You name the sports, the competitions and the seasons; we build the collectors around them. ScrapeIt writes the parsing logic against Sofascore markup, runs it on the cadence you set - minute level through a live matchday, a settled pass once the figures stop moving, or a historical backfill - and sends a sample before the full run. We price a Sofascore feed by competition and by phase, because fixtures, lineups and live state do not need the same schedule. Anti-bot handling, proxy rotation and CAPTCHA solving are part of the service, since the site turns away ordinary automated clients.

We take what the game itself produces - appearances, events, ratings and results for professional athletes - and leave contact details and private life alone. Nothing behind a login is touched, so Sofascore Analyst and anything tied to an account is ruled out before the quote rather than quietly dropped.

What a Sofascore Data Export Contains, Field by Field

We extract Sofascore data surface by surface, keeping the platform's own field names so every column traces back to source.

  • Event header. Event id and customId, uniqueTournament, tournament, season and round, kickoff as a UTC timestamp, a status object of code, description and type, venue with capacity and coordinates, referee card totals, and the hasXg, hasEventPlayerStatistics, hasEventPlayerHeatMap and crowdsourcingDataDisplayEnabled flags that declare in advance what depth the match has.
  • Score and incidents. Half, normal-time, extra-time and penalty scores with injury time per half, then rows typed period, goal, card, substitution and injuryTime with minute, added time and seconds. A card carries a reason and a rescinded flag; a goal carries the build-up as a passing network with pitch coordinates, body part, goal type and goal mouth coordinates.
  • Lineups and player rows. Formation, a confirmed flag, shirt numbers, position codes G, D, M and F, substitute and captain flags, missing players marked doubtful or missing with a reason code, and per player the rating, minutes, touches, expectedGoals, expectedGoalsOnTarget, expectedAssists, passes by pitch half, key passes, duels, tackles won, interceptions and keeper actions.
  • Team totals in the site's own groups - Match overview, Shots, Attack, Passes, Duels, Defending, Goalkeeping - keyed ballPossession, bigChanceCreated, totalShotsOnGoal, shotsOnGoal, accurateThroughBall, finalThirdEntries and groundDuelsPercentage, split into whole match, first half and second half.
  • Spatial layers. A shot map with shot type, situation, body part and goal mouth coordinates and a placement such as low-left; heat maps as raw touch points; average positions; attack momentum as one value a minute.
  • Season, table and squad records. Around a hundred and ten counters per player per competition, among them rating, rated and team-of-the-week appearances and goals by foot and by box; total, home and away standings with points, goal difference and a tie-breaking rule; squad rows with contract end, preferred foot and a proposed market value; transfers with fee, currency and date.

Delivery is CSV, JSON, XLSX or a warehouse load, with a capture timestamp on every row.

What a Sofascore Data Export Contains, Field by Field
How the Sofascore Rating and Attack Momentum Are Built

How the Sofascore Rating and Attack Momentum Are Built

The Sofascore Rating is the platform's own number rather than a licensed one. Machine learning weighs each action by its context and its impact on the match; actions are valued, grouped by category and combined into a single figure out of ten. The figure is refreshed more than sixty times in total during and after a game, so the live series and the settled value belong in two different columns. The colour scale the site draws it on breaks at 6.0, 6.5, 7.0, 8.0 and 9.0, a ready-made bucketing, and by the platform's own account roughly one performance in three thousand earns a perfect ten. In basketball a rating appears only after six minutes on court, and in some competitions the underlying statistics come from that competition's official data provider, which the site states.

Everything built on top is rating-driven: Team of the Week for a round, Team of the Season and Team of the Tournament for a competition, and Player of the Season for the highest seasonal average. Leaderboards apply a minutes filter, so a player has to have logged more than half the available minutes to appear on one.

Player profiles carry two layers you will not assemble anywhere else. Attribute overviews score attacking, technical, tactical, defending and creativity for the current year and three years back, beside the average for the same position - five integers you can store and diff. Characteristics list strengths and weaknesses with the detailed position codes. Attack momentum is a composite of possession, shots, goals and big chances, one value a minute, signed towards the pressing side.

What Sofascore Covers and How Its Ids Are Layered

Sofascore is a live score and statistics service published by Sofa IT d.o.o. of Zagreb, Croatia. It puts football beside basketball, tennis, ice hockey, baseball, handball, American football, volleyball, cricket, MMA, motorsport, esports, rugby, futsal, darts, snooker, padel and more under one grammar, so a Sofascore scraper written for the first sport largely fits the rest.

Ids come in layers, and confusing two of them is the usual cause of a broken join. A competition has a uniqueTournament id that never moves - Premier League 17, LaLiga 8, Serie A 23, Bundesliga 35, Ligue 1 34, Champions League 7, NBA 132, NHL 234 - while each edition carries a separate tournament id and each season its own season id with a label such as 25/26. Above them sits a category, the country container, also numbered. Teams, players, managers, venues and referees are flat numeric ids. A fixture has two: a numeric event id used in the payload and a short alphanumeric customId, which is what appears in the address.

Addresses follow: /football/tournament/{category}/{slug}/{id}, /football/team/{slug}/{id}, /football/player/{slug}/{id}, /football/match/{home-away}/{customId} and /football/{YYYY-MM-DD} for a day of results. Slugs translate across the language prefixes while the number stays put, so a Sofascore data pipeline keys on the id and keeps the slug as a label.

The long tail is filled differently from the top divisions. Contributors report scores, scorers, assists and start times for local clubs and earn a reputation score against approved suggestions; a game followed that way is flagged as not an official result until confirmed. Amateur and minor competitions run through Torneo by Sofascore, and seasons created there carry an editor flag.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Sofascore API Access, Widgets and What Costs Money

There is no public Sofascore API. No developer portal, no key, no published reference, nothing that grants programmatic reuse. The apps and the web client talk to an internal endpoint set the company runs for itself. The official routes for reusing Sofascore data are embeddable widgets - standings, cup trees, lineups, attack momentum, team of the week, player cards - each carrying a link back to the site, and Torneo for organisers who want their own competition listed. Neither hands you a dataset.

Reading is free. Scores, ratings, lineups, statistics, shot maps, heat maps, head-to-head records and tables are open to a signed-out visitor, paid for with advertising and bookmaker placements rather than a paywall. The single subscription is Sofascore Analyst, bought inside the mobile app: pre-match forecasts up to three days before kickoff, halftime analysis, matchup predictions and corner, card and referee patterns across two hundred leagues. It is account-bound, so it sits outside what we collect, as do the app-only alerts, goal animations and match chat.

The crawl rules are specific and we work inside them. Standings are closed in English and in every localised spelling, from tablica and tabelle to clasificacion, puan durumu and klasemen, and dated results pages from earlier years are closed too. Sitemaps are published per language in five families - main, events, players, teams and tournaments - gzipped, which turns a Sofascore scraping plan into a finite list of ids instead of an open crawl.

Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

How Artificial Intelligence Is Used In Web Scraping

How Artificial Intelligence Is Used In Web Scraping

Leveraging advances in technology, the AI-powered web scraper has skyrocketed in demand and is helping to expand capabilities by automating tedious daily tasks and speeding up data collection from thousands of websites several times over.

What is Web Scraping and What is it Used For?

What is Web Scraping and What is it Used For?

Web scraping is a method of obtaining web data by extracting it from pages of web resources with the help of a program, that is, in automatic mode. It is used to syntactically convert web pages into more usable forms.

Web Scraping for Machine Learning

Web Scraping for Machine Learning

If you specialize in machine learning, you need to feed large amounts of data to the algorithms. Web scraping is the easiest and the most efficient method of collecting the data from all over the Internet.

scrapeit logo

Sofascore Data Delivered as a Managed Service

ScrapeIt runs the Sofascore scraper as a managed service. Our team builds the collectors, watches them as the site changes and repairs them when it does. You receive files or an endpoint - CSV, JSON, XLSX or a drop into your database - with nothing to install and no infrastructure to keep alive. Where a licensed feed is the cleaner answer to the question you actually asked, we say so before the project starts rather than after the invoice. Clients come for scouting models, match research, fantasy tooling and media work, and each takes a different slice of the same site.

FAQ

Does Sofascore have a public API for live scores and statistics?

No. There is no developer portal on sofascore.com, no API key, no published reference and no terms that grant programmatic reuse. The apps and the website call an internal endpoint set the company operates for itself, which is not offered to outside developers. What is offered publicly are embeddable widgets - standings, cup trees, lineups, attack momentum, team of the week, player cards - each of which renders a view and links back to the site, and Torneo for organisers who want their own competition hosted. None of that gives you rows you can join to your own data, which is the gap a Sofascore scraper fills.

Which Sofascore fields can you deliver for a single match?

The header first: event id and customId, competition, season and round, kickoff in UTC, status, venue with capacity and coordinates, referee with career card totals and both managers. Then lineups with formation, shirt numbers, position codes, captain and substitute flags and the missing-players list. Then per-player rows carrying the Sofascore Rating alongside expected goals, expected goals on target, expected assists, passes, duels, tackles and keeper actions, and team totals in the site's own groups from Match overview to Goalkeeping. Underneath sit the spatial layers: shot map, heat maps, average positions and the attack momentum series.

Which sports, competitions and languages can you cover?

Football is the deepest, but the same collectors reach basketball, tennis, ice hockey, baseball, handball, American football, volleyball, cricket, MMA, motorsport, esports and the smaller sports the site lists, because they share one id scheme. Scope is set by competition rather than wholesale: you give us uniqueTournament ids and season ids and we crawl exactly those, which is also how a backfill stays a finite job. Content is published under a long list of language prefixes with translated slugs and translated competition names, so if you need Arabic, Hindi or Turkish labels we take them from the same records rather than translating anything ourselves.

How often can you refresh a Sofascore feed, and in what format?

As often as the source moves. Ratings recalculate repeatedly through a match and again after it, lineups land when clubs confirm them, and the score, incidents and momentum series change minute by minute, so a live competition is normally collected at minute level while a finished season is collected once and never re-read. We usually run a live pass and a settled pass after the figures stop moving, then deliver both with a capture timestamp so you can tell which is which. Output is CSV, JSON, XLSX or a direct load into your warehouse, on whatever schedule you set.

Is scraping Sofascore legal, and what will you not collect?

We work only on pages a signed-out visitor can open, we do not log in, and we stay inside the crawl rules the site publishes, which close the standings paths in every language and the dated results pages from earlier years. Redistribution is the part that needs care: the site publishes Terms and Conditions, a Privacy Policy and a GDPR and Journalism notice, and some competitions sit on statistics from an official provider with its own licence behind them. We collect the playing record of professional athletes, not their contact details or private life. We are not lawyers, so put any resale or publishing plan in front of your own counsel first.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582