Flashscore Scraper: Live Scores, Results, Fixtures, All Sports
Pricing
from $0.90 / 1,000 matches
Flashscore Scraper: Live Scores, Results, Fixtures, All Sports
Scrape Flashscore matches for 29 sports, including football, tennis, basketball, hockey and baseball. Today, any day from 7 back to 7 ahead, or live now, or the results and fixtures of a team, player or league page. Scores, status, teams, league, start time. Optional events, stats, odds.
Pricing
from $0.90 / 1,000 matches
Rating
0.0
(0)
Developer
Plainsource
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Security
Limited permissionsShare
Scrape Flashscore matches for 29 sports, including football, tennis, basketball, hockey, baseball, American football, volleyball and cricket. Pick sports and a day (or a range of days from 7 days back to 7 days ahead), or take only the matches that are live right now. You can also paste team, tennis player or league page URLs to get their results and fixtures. Each match is one row with teams, score, status, league and start time. Turn on match details to add the event timeline, statistics and bookmaker odds. No login and no proxy needed.
What data you get
One row per match.
| Field | What it is |
|---|---|
matchId, url | Flashscore match ID and the match page link |
sport, country, league, category, leagueUrl, leagueId | Where the match belongs. Tennis has no country, so category holds the tour (for example ATP - SINGLES) |
round | Round or stage (Round 15, Final). See the FAQ for when it is filled |
startTime | Start time in UTC, ISO 8601 |
status, statusDetail, minute | scheduled, live, finished, postponed, cancelled, abandoned or interrupted, plus Flashscore's own text (Half time, Set 2, After extra time). minute is filled for live football, futsal and beach soccer |
homeTeam, homeTeamShort, homeTeamId, homeTeamUrl | Home side (first player in tennis and similar sports) |
awayTeam, awayTeamShort, awayTeamId, awayTeamUrl | Away side |
homeScore, awayScore, score | Goals, points or runs. In tennis and other set sports, sets won |
periodScores | Score per set, quarter, period, half or inning. Football has the first half only |
homeTeamCountry, awayTeamCountry, currentGameScore, note | Only when Flashscore sends them: player nationality, live point score in tennis, cricket match situation |
events | With match details: goals, cards, substitutions and similar, with minute, team, player and score after a goal |
statistics | With match details: statistics for the match and for each half or period |
odds | With match details: main market (1X2 or home/away) for each bookmaker, current and opening |
How to use it
- Pick one or more sports, or paste team, player or league page URLs.
- Choose Matches by day and the day offsets (0 is today, -1 yesterday, 1 tomorrow), or Live now.
- Optional: add league filters (a name like
England: Premier Leagueor a league URL), turn on match details, and set max matches. - Start the Actor and open the dataset. Export as JSON, CSV or Excel, or read it through the API.
Example input:
{"sports": ["soccer"],"mode": "day","dayOffsetFrom": -1,"dayOffsetTo": -1,"leagueFilters": ["England: Premier League"],"includeDetails": true,"maxMatches": 5}
Example output (shortened, from a real run):
{"matchId": "xxDTaeAO","url": "https://www.flashscore.com/match/football/arsenal-hA1Zm19f/liverpool-lId4TMwf/?mid=xxDTaeAO","sport": "football","country": "England","league": "Premier League","round": "Round 9","startTime": "2026-11-01T16:30:00.000Z","status": "finished","statusDetail": "Finished","homeTeam": "Liverpool","homeTeamId": "lId4TMwf","awayTeam": "Arsenal","awayTeamId": "hA1Zm19f","homeScore": 0,"awayScore": 1,"score": "0-1","periodScores": [{ "period": 1, "label": "1st half", "home": 0, "away": 0 }],"events": [{ "period": "1st Half", "minute": "16'", "team": "away", "type": "Goal", "player": "Havertz K.", "related": [{ "role": "Assistance", "player": "Rice D." }], "homeScore": 0, "awayScore": 1 },{ "period": "1st Half", "minute": "45+3'", "team": "home", "type": "Yellow Card", "player": "Barcola B.", "reason": "Tripping" }],"statistics": [{ "period": "Match", "group": "Top stats", "name": "Ball possession", "home": "56%", "away": "44%" },{ "period": "Match", "group": "Top stats", "name": "Total shots", "home": "17", "away": "10" }],"odds": [{ "bookmaker": "bet365.us", "market": "1X2", "scope": "FULL_TIME", "home": 2.75, "draw": 3.6, "away": 2.45, "openingHome": 3.25, "openingDraw": 3.5, "openingAway": 2.1 }]}
A basketball row without details looks the same minus events, statistics and odds, and its periodScores hold the four quarters.
How much does it cost?
You pay per match saved: $0.0009 per match ($0.90 per 1,000 matches), plus a start fee of $0.0005 per run. Match details do not cost extra, they only make the run slower. Runs that find no matches, and inputs that fail, save nothing and cost only the start fee.
Worked example: a daily run of all football matches for one day (about 270 matches) costs 270 x $0.0009 + $0.0005 = $0.2435.
Use cases
- Keep a database of results and fixtures for a sport or a league, with a scheduled run every day.
- Poll live matches every few minutes to power a score alert or a dashboard.
- Pull statistics and event timelines of finished matches for analysis or models.
- Track opening and current odds from several bookmakers for the same match.
- Build a fixture list for one team or one tennis player.
FAQ
Do I need a proxy? No. Requests from Apify servers worked without one in testing. A proxy field is there if you ever see blocked requests.
Which sports work? The 29 in the sport list: football, tennis, basketball, hockey, American football, baseball, handball, rugby union and league, volleyball, beach volleyball, cricket, darts, snooker, table tennis, badminton, MMA, boxing, esports, futsal, floorball, bandy, Aussie rules, water polo, field hockey, beach soccer, netball, pesapallo and kabaddi. Races (motorsport, cycling, golf, horse racing) have no home and away sides and are not covered. Checked against live data: football, tennis, basketball, hockey, baseball, American football, handball, rugby union, volleyball, cricket, darts, snooker, table tennis, MMA and esports. The other sports use the same data format but were not checked one by one.
How far back and ahead can I go? Day mode covers 7 days back and 7 days ahead of today. For more history, paste a team, player or league page URL: those give the results and fixtures Flashscore lists on that page (whole seasons for leagues, years back for teams and players).
When is round filled? On league page URLs, and whenever match details are on. In plain day mode and on team or player pages Flashscore does not send it with the list, so it is empty unless you turn on match details.
What about minute? Football, futsal and beach soccer only. It is calculated from the time the current half started and is capped at 45 in the first half and 90 in the second (120 in extra time). Other sports show the current set, quarter or period in statusDetail.
What does "Live now" return? Every match Flashscore marks as live for the chosen sports. If nothing is live you get an empty dataset and a message. Interrupted matches are not counted as live.
Why are there no odds on some matches? Flashscore shows only the bookmakers that operate in a country. Set the odds country code (default US) to see another country's bookmakers. Some leagues have no odds at all.
What does a league filter match? A name matches any league whose full name contains it, so Premier League also finds the Egyptian one. Use England: Premier League or the league URL to be exact. A filter that matches nothing is reported in the run log and in the SUMMARY record, and the run still succeeds.
What is not included? Lineups, head-to-head tables, standings, player ratings, venue and referee. Start times are UTC; use the time zone offset to decide where a day starts.
Is this allowed? The Actor reads the same public data the Flashscore website shows to every visitor. Check Flashscore's terms and the law that applies to you before you use the data commercially.
Other Actors by this developer
- Dataset Merge and Dedupe: combine the datasets of your scheduled runs into one list without duplicates.
- Google Sheets Export: send a dataset to a Google Sheet.
- Google Trending Now: see what people search for right now.
- Google News RSS Scraper: news headlines by topic or keyword.