Flashscore Scraper: Live Scores, Results & Odds, 24 Sports avatar

Flashscore Scraper: Live Scores, Results & Odds, 24 Sports

Pricing

from $2.10 / 1,000 matches

Go to Apify Store
Flashscore Scraper: Live Scores, Results & Odds, 24 Sports

Flashscore Scraper: Live Scores, Results & Odds, 24 Sports

Sports data from Flashscore: live scores, results and fixtures of 24 sports — football, basketball, hockey, tennis, volleyball, handball, esports, MMA, darts and more — with opening and closing betting odds from up to 40 bookmakers, no-vig consensus, periods and stats. Recent days or full seasons.

Pricing

from $2.10 / 1,000 matches

Rating

0.0

(0)

Developer

Min Maxxxer

Min Maxxxer

Maintained by Community

Actor stats

0

Bookmarked

25

Total users

11

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

💰 $3 per 1,000 matches — platform usage included. Press Start — the prefilled input returns 30 matches with odds in under a minute. Whole league histories in one run: every season of the EuroLeague, KHL, NCAA, IPL, AFL, NRL and hundreds more, odds back to 2008/09.

Sample output: yesterday's basketball, hockey, volleyball, handball, NFL and esports results with no-vig win probabilities

Get live scores, results and fixtures of 24 sports from Flashscore — football, basketball, ice hockey, tennis, volleyball, handball, American football, baseball, rugby, cricket, darts, snooker, esports, MMA, boxing and more — with opening and closing odds from up to 40 bookmakers, a no-vig consensus, period scores and optional match statistics. One clean row per match, ready for a spreadsheet, a database, a dashboard or a model.

Two modes:

  • Recent and live — every match of the chosen sports from 7 days back to 7 days ahead, matches in progress included
  • Full seasons — complete seasons of chosen leagues (NBA, EPL, IPL, AFL, NRL, Champions League handball, PDC darts, snooker World Championship… any league Flashscore archives)

Need history? One run returns every season of a league — results back to the 1990s, odds back to 2008/09.

Running it on a schedule? Turn on Only new or changed matches and each run returns — and charges for — only what is new since the previous one.

What you get for each match

  • Match: sport, start time (UTC), country or category, competition and stage, round, home and away team (or players), Flashscore IDs and link
  • Result: status (finished, live, scheduled, cancelled…), final score, period scores (halves, quarters, periods, sets, innings), score after regulation / overtime / shoot-out where they exist, winner; MMA and boxing: the finish (KO, TKO, submission, decision) and the round
  • Odds per bookmaker (optional, on by default): opening and latest price — once a match has started the latest price is the closing line
    • about 25–30 bookmaker listings per match by default; with All bookmakers the odds menus of ~55 countries — 80–120 listings for a top football, basketball, hockey or tennis match (EuroLeague 2024-25: 61 per match instead of 16)
    • Winner: 3-way (home / draw / away) in sports where draws happen, 2-way elsewhere (including overtime where it exists)
    • Handicap and total: each bookmaker's main line, or every line
  • Consensus (median across bookmaker brands, margin removed): fair odds and win probabilities at the open and at the close, line movement, best available price, main handicap and total lines, median margin
  • Statistics (optional): whatever the sport records — shots and possession, rebounds, aces, power plays, kills…

Sports and odds coverage

Measured on 745 matches of one day (share of matches with odds · average bookmakers):

SportWinner marketWith oddsBooks
Football (soccer)3-way80%24
Tennis2-way100%25
Basketball2-way incl. OT91%23
Ice hockey3-way (+ 2-way incl. OT)88%14
Baseball2-way88%28
American football2-way incl. OT100%24
Volleyball2-way92%12
Handball3-way81%16
Darts2-way100%26
Cricket2-way100%18
Esports (CS, LoL, Dota, Valorant…)2-way100%14
Rugby league / union3-way46–100%12–16
Aussie rules, badminton, futsal, water polo, floorball2-way / 3-waypartial2–20
Snooker, boxing, MMA, beach volleyball, table tennis, field hockey2-way / 3-wayresults always, odds when bookmakers list them—

Results, scores and fixtures are there for every sport; odds depend on whether bookmakers price the match on Flashscore (top leagues almost always, lower divisions less often).

Use cases

  • Live score apps and widgets — schedule a run every few minutes with Only new or changed matches for a cheap live feed across sports
  • Results databases — one daily run with daysBack: 1 keeps every result of every sport you follow, with closing odds
  • Betting and forecasting models — closing-line probabilities, line movement and the no-vig consensus for dozens of sports, including niches (esports, darts, handball, volleyball) that general odds APIs skip
  • Esports, MMA and darts data — results, finishes and odds in the same format as the big sports
  • Research and journalism — how often favourites win, home advantage per sport, market efficiency in smaller leagues

How to use it

  1. Pick the sports, the days (up to 7 back and 7 ahead) and the statuses; optionally filter countries or competitions.
  2. Choose the markets (winner, handicap, total) or turn odds off for pure scores.
  3. Click Start. Download JSON, CSV or Excel, or read the dataset through the Apify API.

Live scoreboard tip: statuses ["live"], daysBack: 0, Only new or changed matches on, and a Schedule every 5 minutes.

Input example — yesterday's results with closing odds in four sports

{
"sports": ["basketball", "volleyball", "handball", "esports"],
"statuses": ["finished"],
"daysBack": 1,
"markets": ["winner", "total"]
}

Input example — live scores every few minutes, only changes

{
"sports": ["soccer", "basketball", "hockey", "tennis"],
"statuses": ["live", "finished"],
"daysBack": 0,
"incremental": true,
"includeOdds": false
}

Input example — full seasons

{
"mode": "seasons",
"leagues": ["Handball: Europe: Champions League", "Darts: World: PDC World Championship", "IPL"],
"lastSeasons": 2,
"markets": ["winner", "handicap", "total"]
}

Leagues are written as Sport: Country: League as on Flashscore, as a short name (NBA, NHL, EPL, IPL, AFL, NRL) or as the league's Flashscore URL. MMA, boxing and esports are covered in recent mode.

A whole league history in one run

No need to start one run per season: leave Seasons empty and set Last seasons to how far back you want to go — one run returns every season, oldest first within each. Set Max matches to 0 (the form's 30 is only for a quick look).

{
"mode": "seasons",
"leagues": ["Basketball: Europe: Euroleague"],
"lastSeasons": 19,
"markets": ["winner", "handicap", "total"],
"maxMatches": 0
}

What the archive holds (measured 11 November 2026; matches of all seasons listed, the running one included):

LeagueWrite it asSeasonsMatches
EuroLeague basketballEuroleague29, from 1998/997,200
Spanish ACB basketballBasketball: Spain: ACB26, from 2001/028,100
NCAA men's basketballBasketball: USA: NCAA19, from 2008/09103,000
WNBAWNBA29, from 19987,000
KHL ice hockeyKHL19, from 2008/0914,900
Swedish SHL / Finnish Liiga / Czech ExtraligaHockey: Sweden: SHL …34 each, from 1993/9412,400 / 14,500 / 13,800
Swiss National League hockeyHockey: Switzerland: National League29, from 1998/999,900
Handball Champions LeagueHandball: Europe: Champions League26, from 2001/023,800
Handball BundesligaHandball: Germany: Bundesliga27, from 2000/018,100
Volleyball: Polish TAURON Liga / Italian SuperLegaVolleyball: Poland: TAURON Liga …19 each, from 2008/093,600 / 3,300
IPL cricket / Big Bash LeagueIPL …17 each, from 20101,100 / 700
AFL (Aussie rules)AFLfrom 20093,600
NRL / Super League (rugby league)NRL …18 each, from 20093,700 / 3,200
Top 14 / Super Rugby / Six Nations (rugby union)Rugby Union: France: Top 14 …from 2008/09 / 2009 / 20003,300 / 1,900 / 400
NCAA college football / CFLAmerican Football: USA: NCAA …19 each, from 200815,700 / 1,500
Japanese NPB / Korean KBO baseballBaseball: Japan: NPB …from 2008 / 201217,400 / 11,200
PDC World Championship / Premier League dartsDarts: World: PDC World Championship …33 from 1993/94 / 22 from 20052,100 / 1,700
Snooker World ChampionshipSnooker: World: World Championship58, from 19693,300

Any other league Flashscore archives works the same way.

Odds from when: bookmaker odds start with the 2008/09 season (2009 in calendar-year leagues) — checked on the EuroLeague, the KHL and the handball Champions League, where every sampled match from 2009 on has odds, from 5–10 bookmakers in the early seasons to 20+ today. Older seasons come with results and period scores only.

How long it takes: about 2–3 matches per second with two markets — 1,000 matches in 6–8 minutes, 15,000 in about two hours. The status line shows progress and the time left. A run that is stopped or restarted resumes without charging again for what it already saved.

Very large leagues: a run lasts up to 6 hours by default — about 45,000 matches with odds. NCAA men's basketball (103,000 matches) does not fit: split it with Seasons (e.g. six seasons per run), or raise the run's timeout under Run options and resurrect the run if it stops — it continues where it ended, without charging twice.

Output example (shortened, a real match)

{
"sport": "handball",
"startTime": "2026-09-26T03:00:00Z",
"country": "Asia",
"competitionFull": "ASIA: Asian Games - Play Offs",
"homeTeam": "Japan",
"awayTeam": "Kuwait",
"status": "finished",
"score": "37-32",
"periods": [[23, 12], [14, 20]],
"winner": "home",
"consensus": {
"bookmakerCount": 23,
"winnerMarket": "3-way",
"probHomeLast": 0.3849,
"probDrawLast": 0.1177,
"probAwayLast": 0.4974,
"fairHomeOdds": 2.598,
"fairDrawOdds": 8.498,
"fairAwayOdds": 2.011,
"totalLine": 56.5,
"probOverLast": 0.5135
},
"odds": {
"threeWay": [
{"bookmaker": "1xBet", "opening1": 2.42, "openingX": 6.79, "opening2": 1.88, "last1": 2.23, "lastX": 8.6, "last2": 1.89, "marginPct": 9.38}
]
}
}

An MMA fight looks like "score": null, "winner": "home", "method": "TKO", "endRound": 3; a volleyball match carries the sets in score ("3-1") and the points of each set in periods.

Pricing

You pay per match saved — platform usage included, nothing else:

Apify planPrice per 1,000 matches
Free$3.00
Starter$2.70
Scale$2.40
Business and higher$2.10

💡 On Apify's free plan the monthly $5 credit covers about 1,600 matches with odds. Nothing is charged for matches you filter out; with Only new or changed matches repeat runs pay only for new data. Set a spending limit on the run for a hard cap — the Actor stops as soon as it is reached.

FAQ

Which "winner" market do I get? In sports where a draw is a normal result (football, handball, ice hockey, rugby, futsal, field hockey, water polo, floorball, boxing) the 3-way market on regulation time; everywhere else the 2-way winner market, including overtime where the sport has it. Ice hockey also gets the 2-way market including overtime and shoot-out.

Are live scores real time? They are as fresh as the Flashscore scoreboard at the moment of the run. Schedule the Actor every few minutes for a live feed; with Only new or changed matches each run is quick and cheap.

What is the "closing line"? The last price before the match starts. For finished and live matches the last… fields are the closing odds; for scheduled matches they are the current prices.

How is the consensus calculated? The margin of each bookmaker is removed proportionally, then the median is taken across bookmaker brands (each brand once, however many licences it has).

Which time zone? All timestamps are UTC.

Where does the data come from? From publicly available match and odds information shown on Flashscore. This Actor is not affiliated with Flashscore or any bookmaker.

More from Min Maxxxer

⭐ Did this Actor save you time? A short review on this page helps others find it — and tells us what to build next.

Changelog

  • 0.3.5 — whole-history runs no longer end with a plain "Done" when something was skipped: an unreadable archive or season page, a league that was not found and a match that could not be processed are named and the status says INCOMPLETE; seasons with more than 200 result pages are read in full; a league name that is only part of another league's name is no longer accepted (no more "Primera Division Women" for "Primera Division") and, when a name exists in several countries, the log says which one was taken; season labels like 1999-00 are understood; the sport can be written as on Flashscore (Football: England: Championship).

  • 0.3.4 — whole-history runs say how they ended: a run stopped by the form's prefilled Max matches (30) now ends with "stopped at Max matches (30); set it to 0 to get the whole selection" instead of a plain "Done: 30 matches saved", and a run stopped by its spending limit says so and that the rest was not processed. README: whole league histories in one run, with season and match counts.

  • 0.3.2 — a short outage of Flashscore's search (28.10.2026: it answered nothing to every query for minutes) is waited out, up to 2 minutes; a longer one ends the run with "Flashscore's search is not answering — try again in a few minutes or paste the league's Flashscore URL" instead of "Done: 0 matches saved" with "League not found" in the log. A misspelt league still gets its answer at once. The example in the messages is now 'Volleyball: Poland: TAURON Liga' (Flashscore's new name of the PlusLiga).

  • 0.3 — All bookmakers (off by default, on in the form): the odds menus of ~55 countries instead of 10 — 80–120 listings for a top match instead of ~25–30, same price per match; one brand under several licence names counted once in the consensus.

  • 0.2 — handicap and total lines of one unit only: tennis (games vs sets), volleyball (points vs sets) and darts (legs vs sets) list both in one market and a sets line could become the main line; every line row now carries lineType. Only new or changed matches no longer charges upcoming matches whose prices, lines and start time did not move (until now they were saved and charged on every run); the same filters in another order are the same search; overlapping runs keep each other's memory; a match is saved once per run even when its league is listed twice; a season typed with an en dash is understood and an unreadable season filter stops the run instead of using the latest season; the consensus uses prices still quoted; the main line no longer depends on the order of a bookmaker's licences; negative statistics keep their sign; a season page that cannot be read is reported as incomplete; a match refused by the spending limit is not remembered.

  • 0.1 — first release: 24 sports, recent and live matches (7 days back to 7 ahead) and full seasons, winner (3-way / 2-way), handicap and total odds from up to 40 bookmakers with a no-vig consensus, period scores, MMA/boxing finishes, statistics, incremental mode for schedules.