ParseForge Scrapers

Sofascore Live Events Scraper

parseforge/sofascore-live-scraper

News & mediaBusinessAutomation

Scrapes live or scheduled Sofascore events by sport and date, and searches for players, managers, or teams by name. Returns each match or entity as a flat row with scores, teams, and status.

Run this scraper See the API call
Total users
129
Monthly active
11
Total runs
760
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Sofascore Live Events Scraper

Scrape live scores, fixtures, and player data from Sofascore across 14 sports, up to a million matches per run. Every event returns teams, scores, and status. Search for players, managers, or teams by name. Export to CSV, JSON, Excel, or XML.

Sofascore's live data is locked behind interactive widgets and rate-limited pages. This Actor reads the public event feeds and search endpoints directly, returning structured match data for football, basketball, tennis, cricket, and more. Filter by sport, date, or search query, and get every result in one flat schema.

Who uses it What they scrape Sofascore for
Sports data analysts Build historical datasets of match results and live scores across multiple leagues.
Betting odds compilers Monitor live match statuses and final scores for settlement and in-play adjustments.
Fantasy sports platforms Pull player and team performance data to update fantasy points and rankings.
Sports journalists Track live fixtures and results for match reports and breaking news.

What it does

This Actor collects live or scheduled Sofascore events by sport and date, or searches for players, managers, and teams by name, and returns each result as a flat row.

  • ⚽ 14 supported sports: football, basketball, tennis, ice hockey, baseball, handball, volleyball, snooker, rugby, MMA, cricket, American football, and esports.
  • πŸ” Entity search: find players, managers, or teams by name and return their Sofascore IDs and basic details.
  • πŸ“… Date filtering: pull scheduled fixtures for a specific date or leave empty to scrape live in-progress events.
  • πŸ“Š Event details: optionally fetch per-event details like tournament name, round, and venue with one extra request.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Sofascore data

⚽ Monitor live football scores.

A sports data startup runs the Actor every 60 seconds with sport set to football and no date, collecting live scores and match statuses for all in-progress games to power a real-time dashboard.

πŸ” Find player profiles by name.

A fantasy sports platform searches for players like 'Haaland' or 'Mbappe' using the player-search mode to retrieve Sofascore IDs, then enriches their internal database with current season stats.

πŸ“… Pull tomorrow's tennis fixtures.

A betting odds team sets the sport to tennis and the date to tomorrow's date, scraping all scheduled ATP and WTA matches to prepare pre-match odds models.

🏏 Collect cricket match results.

A cricket analytics site runs the Actor daily with sport set to cricket, fetching completed match scores and team data to update their historical results archive.

Why choose this scraper

What you get
Live scores without an API key Read public Sofascore feeds directly, no registration or OAuth required.
Multi-sport coverage One scraper for football, basketball, tennis, cricket, rugby, MMA, and eight more sports.
Search by name Find any player, manager, or team on Sofascore with a free-text query.
Flexible output Export structured match data to CSV, JSON, Excel, or XML for any downstream pipeline.

How it compares

This Actor focuses on live events and entity search across 14 sports with a simple mode selector, while competitors offer broader page scraping or multi-language support.

Feature ParseForge SofaScore scraper PRO⚑ Sofascore Live Events Scraper SofaScore Scraper | Live Scores & Match Data API
Live events by sport and date Yes, 14 sports supported Yes Yes Yes
Player, manager, and team search Yes, three dedicated search modes Not listed Yes Yes
Optional per-event detail fetch Yes, one extra request per event Not listed Not listed Not listed
Multi-language support Not listed Yes Not listed Not listed
Match statistics and lineups Not listed Yes Not listed Yes
Odds and standings data Not listed Not listed Not listed Yes

Configure the run

Drive the Actor by sport, date, and search query, alone or together. Filters run as each event is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "mode": "events",
  "sport": "football",
  "maxItems": 10
}

A larger pull:

{
  "mode": "events",
  "sport": "football",
  "maxItems": 200
}

Pricing

Pay-per-result: $0.0335 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.35
1,000 results $33.50
10,000 results $335.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Sofascore Live Events Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Sofascore through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/sofascore-live-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your sport and date combination is valid. If you set a date far in the future or past, Sofascore may not have fixtures. Try leaving the date empty to fetch live events, or use a date within the current season.

Why is the player search returning unexpected results?

The query field does a free-text search on Sofascore's endpoint. Try using the player's full name or a more specific query. Partial names like 'Ron' may return multiple players across different sports.

Why are event details missing even with fetchDetails enabled?

The fetchDetails option makes an extra request per event, but some events may not have full details available on Sofascore, especially far-future fixtures or very old matches. This is a limitation of the source data.

Why is the Actor timing out?

If you set maxItems very high with fetchDetails enabled, the extra requests per event can slow down the run. Try increasing the Actor's timeout in the run settings, or reduce maxItems and run more frequently.

Why am I getting football results when I selected a different sport?

Make sure the sport field is set correctly. The default is football when the field is left empty. Select your sport explicitly from the dropdown to override the default.

FAQ

Question Answer
What sports does this Actor support? It supports 14 sports: football, basketball, tennis, ice hockey, baseball, handball, volleyball, snooker, rugby, MMA, cricket, American football, and esports. Leave the sport field empty to default to football.
Can I scrape live scores and scheduled fixtures? Yes. Leave the date field empty to fetch live in-progress events, or set a specific date in YYYY-MM-DD format to pull scheduled fixtures for that day.
How do I search for a specific player or team? Set the mode to player-search, manager-search, or team-search, then enter a free-text query like 'Messi', 'Guardiola', or 'Arsenal'. The Actor returns matching entities with their Sofascore IDs.
Does this Actor require a Sofascore API key? No. It reads the public event feeds and search endpoints directly. No login, API key, or registration is needed.
What does the fetchDetails option do? When enabled, the Actor makes one extra request per event to retrieve additional details like tournament name, round, venue, and referee information.
How many matches can I scrape in one run? You can set maxItems up to 1,000,000 matches per run. The Actor stops once it reaches your limit.
Can I filter by a specific league or tournament? The Actor scrapes all events for the selected sport and date. League or tournament filtering is available in the returned data fields after the run completes.
What output formats are supported? You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform, or access it via the API for automated pipelines.
Does this Actor handle tennis scores? Yes. Set the sport to tennis and leave the date empty for live ATP and WTA scores, or set a date for scheduled matches.
Can I run this on a schedule? Yes. Use Apify's scheduler to run the Actor every minute, hour, or day to build a continuous feed of live scores and fixtures.

Related actors

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Sofascore. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
mode string (4 options) What to fetch from Sofascore. 'events' returns live or scheduled matches; the search modes return entities by name. events
query string Free-text query for player-search / manager-search / team-search modes (e.g. 'Messi', 'Guardiola', 'Arsenal'). not set
sport string (14 options) Sport to scrape events for. Leave empty to default to football. football
date string Optional date to fetch scheduled events. Leave empty to fetch live events. not set
fetchDetails boolean Fetch additional per-event details (extra request per event). false
maxItems integer How many matches to collect per run. 10

Pricing

from $25.13 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.02513 to $0.0335

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~sofascore-live-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Sofascore Live Events Scraper on Apify All scrapers