Flashscore Football Scraper: Scores, xG, Lineups, Odds, Tables avatar

Flashscore Football Scraper: Scores, xG, Lineups, Odds, Tables

Pricing

from $1.00 / 1,000 matches

Go to Apify Store
Flashscore Football Scraper: Scores, xG, Lineups, Odds, Tables

Flashscore Football Scraper: Scores, xG, Lineups, Odds, Tables

Every football match of a day from Flashscore: fixtures, live scores, results with half-time and penalties, plus xG statistics, lineups with player ratings, goals and cards, referee and venue, head-to-head, bookmaker odds with opening prices and league tables. 27 more sports. No browser.

Pricing

from $1.00 / 1,000 matches

Rating

0.0

(0)

Developer

Steady Scrape

Steady Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Flashscore Football Scraper — live scores, fixtures, results, xG, lineups, odds and league tables

Every football match of a day from Flashscore, in every competition it covers: fixtures, live scores and results with half-time, extra time and penalty shootouts. Add, for the same matches in the same run:

  • Match statistics with expected goals (xG), possession, shots, passes, corners, fouls and cards — for the match and each half
  • Lineups with formations, team ratings, shirt numbers, captains, goalkeepers and Flashscore player ratings
  • Events: every goal with its assist and the score after it, every card and substitution with its minute
  • Match information: referee, venue, city, capacity, attendance
  • Head-to-head and each team's recent form
  • Betting odds from every bookmaker of a country, each price with its opening price
  • League tables with every group, form and what each place leads to — once per competition

Plain HTTP against Flashscore's own feeds: no browser, no login, no proxy. A day of football (300+ matches) lists in seconds. 27 more sports list the same way: basketball, ice hockey, baseball, American football, handball, volleyball, rugby, cricket, darts, futsal, eSports and more.

What makes it different

  • Tables in the same run. Ask for the standings and every competition of your matches comes back as one extra row with its whole table — fetched and charged once per competition, however many of its matches you scrape.
  • xG, lineups with ratings and opening odds together. Most football scrapers give a listing, or a listing plus one kind of detail. Here a match row can carry all of it, and you pay the detail price only when it delivers some.
  • A section Flashscore does not have is never fetched. Each match's own feed says which sections exist (a lower league has no statistics, a match not played yet has no lineups), so you are never charged for empty requests.
  • Your limits are checked before any detail is requested: the maximum number of matches and your run's spending limit cut the run before the work, not after it.
  • Penalties done right: regular time, after extra time and the shootout are separate scores, and two-legged ties say which side goes through, with Flashscore's aggregate note.

Use cases

  • Betting models and value betting: odds of 20 UK bookmakers with their opening prices, xG and form, every day on a schedule.
  • Live score feeds for apps, bots and dashboards: run every few minutes with matchStatus: live.
  • Fantasy football and scouting: lineups with player ratings, goals, assists and cards per match.
  • Football analytics and research: statistics per half for whole leagues, with tables and head-to-head.
  • Content and newsletters: yesterday's results and today's fixtures by country or competition.

Input

fieldwhat it does
sportfootball by default, or one of 27 other sports
dateFrom, dateTotoday, yesterday, tomorrow, -3, +2 or 2026-10-12; up to a week either side of today
utcOffsetHourswhere your day starts; match times are always UTC
matchesmatch links or ids instead of days
matchStatusscheduled, live, finished, cancelled
countries, leagues, teamsparts of names, case and accents ignored: England, Premier League, Arsenal
includeStatistics, includeLineups, includeEvents, includeHeadToHead, includeOddsthe detail sections
oddsCountry, oddsRegionwhose bookmakers: GB (about 20), US (+ USNY), DE, IT, ES…
oddsMarkets1x2 and over_under by default; also Asian and European handicap, both teams to score, double chance, draw no bet, half-time/full-time, correct score, odd/even
oddsFullTimeOnlytrue by default; false adds the first-half and second-half markets
includeStandingsone table row per competition of the run
recentMatchesPerTeam, maxMatcheslimits
{
"dateFrom": "yesterday",
"countries": ["England", "Spain"],
"leagues": ["Premier League", "LaLiga"],
"matchStatus": ["finished"],
"includeStatistics": true,
"includeLineups": true,
"includeEvents": true,
"includeStandings": true
}

Full odds are heavy: every market and half of 20 bookmakers is about 800 KB per match. The defaults keep 1X2 and over/under for the full match; widen them only for the markets you use.

Output

One row per match (type: "match") and, when asked, one per competition (type: "standings"). Every row has a status: only ok rows are charged; no_matches, not_found and blocked say why there is nothing to charge.

{
"type": "match",
"status": "ok",
"sport": "football",
"matchId": "pfFSbE2B",
"url": "https://www.flashscore.com/match/pfFSbE2B/",
"startTime": "2026-10-12T19:00:00.000Z",
"matchStatus": "finished",
"matchStatusText": "Finished",
"tournament": { "id": "j1MnZ14E", "stageId": "lEqmiyVI", "name": "Liga Profesional - Clausura", "country": "Argentina", "url": "https://www.flashscore.com/football/argentina/liga-profesional/" },
"home": { "name": "Lanus", "shortName": "LAN", "id": "Y9yh1J7G", "url": "https://www.flashscore.com/team/lanus/Y9yh1J7G/", "logoUrl": "https://static.flashscore.com/res/image/data/I7GXcZiT-rRPTjfbN.png", "redCards": 0 },
"away": { "name": "Velez Sarsfield", "shortName": "VEL", "id": "UsCR8gFd", "redCards": 0 },
"winner": "home",
"score": { "home": 2, "away": 0 },
"halfTime": { "home": 0, "away": 0 },
"regularTime": { "home": 2, "away": 0 },
"afterExtraTime": null,
"penalties": null,
"statistics": [{ "period": "match", "group": "Top stats", "name": "Expected goals (xG)", "home": { "text": "1.57", "value": 1.57 }, "away": { "text": "0.56", "value": 0.56 } }],
"lineups": { "home": { "formation": "1-4-2-3-1", "rating": 7.4, "starting": [{ "name": "Besozzi L.", "number": 77, "country": "Argentina", "captain": false, "goalkeeper": false, "rating": 7.4 }] } },
"events": { "periods": [{ "name": "1st Half", "home": 0, "away": 0 }, { "name": "2nd Half", "home": 2, "away": 0 }], "incidents": [{ "period": "2nd Half", "minute": "59'", "side": "home", "type": "goal", "participants": [{ "role": "goal", "name": "Marcich S." }, { "role": "assistance", "name": "Besozzi L." }], "scoreAfter": { "home": 1, "away": 0 } }] },
"matchInfo": { "referee": "Martinez S.", "venue": "Estadio Ciudad de Lanús – Néstor Díaz Pérez", "city": "Lanús", "capacity": 47090, "attendance": null },
"odds": [{ "bookmaker": "BetMGM.uk", "market": "1x2", "period": "match", "selections": [{ "outcome": "home", "odds": 2.38, "openingOdds": 2.2 }, { "outcome": "draw", "odds": 3.7 }, { "outcome": "away", "odds": 2.6 }] }]
}

A standings row carries tournament and groups: each group's table with rank, team, played, wins, draws, losses, goalsFor, goalsAgainst, points, form (w, d, l, newest first) and qualification (Promotion - …, Relegation…).

Other sports give the same match row; periods holds their quarters, periods, sets or innings.

Pricing

Pay per event, no start fee:

eventprice
match — a match row without detailsUS$0.001
match-with-details — a match row that delivers at least one detail sectionUS$0.003
standings — a competition's tableUS$0.002

Rows with a status other than ok are free. A detail section Flashscore does not have is not fetched and not charged.

Limits

  • Flashscore publishes days up to a week before and after today.
  • Statistics, lineups and ratings exist for the competitions Flashscore covers in depth; lower leagues often have only the score and the events.
  • Bookmakers take their prices down after a match: ask for odds before and during it.
  • A match asked for by link carries its score but not the per-half scores or red cards; ask for events to get them.

The Actor reads pages and feeds that Flashscore serves publicly, without logging in, and collects sports results and statistics, not personal data beyond the names of professional players and officials as they appear in public results. You are responsible for how you use the data; check the terms that apply to you and your jurisdiction.