FlashScore Live Sports Scraper avatar

FlashScore Live Sports Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
FlashScore Live Sports Scraper

FlashScore Live Sports Scraper

Scrape live matches from FlashScore for football, basketball, tennis, hockey, baseball and 11 other sports. Returns match ID, teams, live score, status, league, start time and optional event timeline.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(8)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

9

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Scrape live (or same-day) matches from FlashScore.com for 14 sports including football (soccer), tennis, basketball, hockey, baseball, cricket, and more. Returns match ID, home / away teams, live score, status, league, country, start time, and match URL — all in one fast HTTP request.

What it does

  • Fetches matches from FlashScore's internal live-feed endpoint (no browser, no proxy, no cookies)
  • Supports 14 sports via a simple sport enum
  • Optional live-only filter to return only matches currently in progress
  • Clean, non-null output — empty fields are omitted so every record has only populated keys
  • Hardcoded X-Fsign token + Chrome 131 TLS impersonation — runs from any datacenter IP

Input

FieldTypeDefaultDescription
sportenumfootballOne of: football, tennis, basketball, hockey, american-football, baseball, handball, rugby-union, rugby-league, futsal, volleyball, cricket, darts, snooker
liveOnlybooleantrueIf true, only matches currently in progress. If false, return all matches for today (scheduled + live + finished).
maxItemsinteger100Maximum matches to return (1–1000)

Example input

{
"sport": "football",
"liveOnly": false,
"maxItems": 10
}

Output

Each match is a JSON record with the following fields (missing fields are omitted, never null):

FieldTypeAlways presentDescription
matchIdstringFlashScore match ID
sportstringThe sport slug (same as the input)
homeTeamstringHome team name
awayTeamstringAway team name
statusstringscheduled, live, finished, half-time, etc.
statusCodenumberFlashScore's raw status code (AB)
scrapedAtstringUTC ISO 8601 scrape timestamp
homeScorenumberCurrent home score (omitted before kick-off)
awayScorenumberCurrent away score
leaguestringLeague or tournament name, e.g. ENGLAND: Premier League
countrystringCountry label from FlashScore's tree
leaguePathstringRelative league URL path
startTimestringISO 8601 UTC kick-off time
homeTeamShortstring3-letter home team abbreviation
awayTeamShortstring3-letter away team abbreviation
urlstringFull match summary URL

Sample output

{
"matchId": "bN6cMaFq",
"sport": "football",
"homeTeam": "Lanus",
"awayTeam": "Banfield",
"homeScore": 1,
"awayScore": 0,
"status": "finished",
"statusCode": 3,
"league": "ARGENTINA: Liga Profesional - Apertura",
"country": "Argentina",
"leaguePath": "/football/argentina/liga-profesional/",
"startTime": "2026-04-13T13:20:00Z",
"homeTeamShort": "LAN",
"awayTeamShort": "BAN",
"url": "https://www.flashscore.com/football/argentina/liga-profesional/lanus-banfield/#/match-summary",
"scrapedAt": "2026-04-14T05:54:44Z"
}

FAQ

Do I need a proxy or cookies? No. FlashScore's internal feed accepts standard HTTP requests from any datacenter IP with just the X-Fsign token (which is hardcoded in the scraper) plus a Chrome 131 TLS fingerprint.

How fresh is the data? Every run hits the live feed at request time. Live match scores update within seconds of the event.

What does liveOnly do? Setting liveOnly=true filters the response to matches with a status code in the in-progress range (live, half-time, etc). Setting it to false returns all matches scheduled for today including finished ones — useful for overnight historical pulls.

Why do some sports return 0 matches? Not every sport has live events running at every moment. For example, american-football will be empty outside the NFL season, and cricket will be empty outside the main test windows. The scraper returns 0 items with exit_code=0 in that case — it is not a failure.

Are event timelines included? Not in the current release. The scraper returns match headers only. The per-match event timeline (goals, cards, substitutions) requires a second API call which is not yet implemented.

Use cases

  • Sports betting signals — monitor live score changes across 14 sports
  • Fantasy sports feeds — ingest live scores into a fantasy scoring engine
  • Media sites — power live score widgets for a sports publication
  • Stats research — build historical datasets by running liveOnly=false daily
  • Notification services — trigger alerts on specific team / league events

Notes

  • Pricing is configured in the Apify UI (pay-per-event or pay-per-result).
  • The scraper uses a single HTTP request per run — very cheap to operate at the default maxItems=100.
  • The daily Apify test run uses sport=football, liveOnly=false, maxItems=5 against the live feed.