Flashscore Live Football Matches - Scores & Lineups
Pricing
from $0.80 / 1,000 live match scrapeds
Flashscore Live Football Matches - Scores & Lineups
Scrape live football matches from Flashscore in real time: scores, match minute, events, full statistics (xG, possession, shots), and starting lineups with formations. Export as JSON, CSV, or Excel.
Pricing
from $0.80 / 1,000 live match scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
5
Monthly active users
20 hours ago
Last modified
Categories
Share
Flashscore Live Football Scraper
Scrape every currently live football match on Flashscore in real time — live score, match minute, a full event timeline, match statistics, and starting lineups — without touching a browser.
| Get live scores, match minute, goals/cards/subs as they happen, 30+ statistic categories (xG, possession, shots, passes), and starting XI with formations — for every live match, in every league Flashscore covers. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor: Actor ID parsebird/flashscore-live-football-scraper on Apify — call it with the apify-client SDK (client.actor("parsebird/flashscore-live-football-scraper").call(run_input={"includeStatistics": true, "includeLineups": true, "maxItems": 10})), inputs are includeStatistics (boolean, default true — full stats per period), includeLineups (boolean, default true — starting XI, formations, substitutes), maxItems (integer, optional cap on how many live matches to return), and proxyConfiguration (object, default {"useApifyProxy": false}, only needed on restricted networks); output is one dataset item per live match with score, match_minute, match_period, events (goals/cards/subs/assists with minute and player), statistics (period/category/stat_name/home_value/away_value), lineups (formations + player lists), referee, venue, and league — full field reference below and the OpenAPI spec is on the Actor's API tab, with your Apify API token available under Settings → Integrations.
What does Flashscore Live Football Scraper do?
Flashscore Live Football Scraper is a Flashscore API alternative that turns Flashscore's live football feed into clean, structured JSON — no HTML parsing, no browser, no rate-limit roulette. Every run fetches whatever football matches are live on Flashscore at that exact moment, across every country and league Flashscore tracks, and returns:
- ⚽ Live score & match state — home/away score, half-time score, match minute, current period (1st/2nd half), round
- 📋 Full event timeline — goals, assists, own goals, penalties (awarded and converted), yellow/red cards, and substitutions, each with the exact minute and player
- 📊 Match statistics — xG, ball possession, shots (total/on target/off target/blocked), passes, corners, fouls, tackles, duels won, goalkeeper saves, and more, broken down by 1st half / 2nd half / full match
- 👥 Starting lineups — formations for both teams, full starting XI and substitutes with shirt numbers and nationalities, plus captain and goalkeeper badges
- 🏟️ Match context — league, round, referee, venue, city, and stadium capacity where Flashscore publishes them
Because it runs on the Apify platform, you also get scheduling (poll live scores every few minutes without managing a server), API and webhook access, one-click integrations (Zapier, Make, Google Sheets, Slack), and instant exports to JSON, CSV, or Excel — all on top of a free trial so you can test it before committing.
What data can you extract from Flashscore?
| Field | Description |
|---|---|
match_id, match_url | Flashscore's internal match ID and permalink |
status, match_minute, match_period | Live state — always "LIVE" for this actor, current minute, and half |
home_team, away_team, home_score, away_score | Teams and running score |
home_score_halftime, away_score_halftime | Score at half-time (null until the 1st half ends) |
league, league_id, league_url, round | Competition and round/matchday |
referee, venue, venue_city, venue_capacity | Match officials and stadium, where published |
events[] | Goals, cards, subs, and assists — type, minute, side, player_name, score after the event |
statistics[] | Per-period stat rows — category, stat_name, home_value, away_value |
lineups | home_formation, away_formation, and home/away player arrays |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| includeStatistics | boolean | No | true | Fetch full match statistics per period. Adds one API call per live match. |
| includeLineups | boolean | No | true | Fetch starting XI, formations, and substitutes. Adds one API call per live match. |
| maxItems | integer | No | unlimited | Cap on the number of live matches returned. Leave blank for every live match. |
| proxyConfiguration | object | No | {"useApifyProxy": false} | Apify Proxy config. Not needed for normal use — Flashscore's APIs don't block direct requests. |
Output example
{"match_id": "U3I3D4bL","match_url": "https://www.flashscore.com/match/football/U3I3D4bL/","status": "LIVE","match_minute": 60,"match_period": "2nd Half","kickoff_time": "2026-08-23T00:00:00+00:00","home_team": "Huracan","away_team": "Dep. Riestra","home_score": 0,"away_score": 0,"home_score_halftime": 0,"away_score_halftime": 0,"round": "13","league": "ARGENTINA: Liga Profesional - Clausura","league_url": "/football/argentina/liga-profesional/","referee": "Tello F.","venue": "Estadio Tomas Adolfo Duco","venue_city": "Buenos Aires","venue_capacity": 48314,"events": [{"event_id": "fXCLlSpf","side": "away","minute": "28'","type": "yellow_card","type_label": "Yellow Card","player_name": "Mino F.","extra_info": "Foul","home_score_after": null,"away_score_after": null}],"statistics": [{ "period": "Match", "category": "Top stats", "stat_id": 432, "stat_name": "Expected goals (xG)", "home_value": "0.36", "away_value": "0.92" }],"lineups": {"home_formation": "1-4-4-2","away_formation": "1-5-3-2","confirmed": true,"home": [ { "player_id": "dYxHRtwq", "name": "Bisanz J.", "shirt_number": 17, "nationality": "Argentina", "is_starter": true } ]},"scraped_at": "2026-08-23T01:18:30+00:00"}
Download results in JSON, CSV, Excel, HTML, or XML directly from the Apify Console, or pull them programmatically from the dataset API.
Use cases
- Build a live scoreboard or ticker for a website or app
- Feed live match events into a betting-adjacent analytics tool (scores/stats only — no odds)
- Track live xG and possession trends across leagues for football analytics
- Monitor lineups and formations the moment they're confirmed at kickoff
- Archive live match events and stats for post-match analysis pipelines
How to scrape Flashscore live football matches
- Click Try for free on this Actor's page (no credit card required for the free trial).
- Open the Input tab and leave the defaults, or turn off
includeStatistics/includeLineupsfor a lighter, faster run. - Optionally set
maxItemsto cap how many matches come back — useful for quick test runs. - Click Start and wait a few seconds — a full worldwide sweep of live matches typically finishes in under a minute.
- Open the Dataset tab to preview results, or export to JSON/CSV/Excel.
- Automate it: add a Schedule to poll live scores every few minutes, or call the Actor from your own code via the Apify API.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("parsebird/flashscore-live-football-scraper").call(run_input={"includeStatistics": True, "includeLineups": True, "maxItems": 20})for match in client.dataset(run["defaultDatasetId"]).iterate_items():print(match["home_team"], match["home_score"], "-", match["away_score"], match["away_team"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('parsebird/flashscore-live-football-scraper').call({includeStatistics: true,includeLineups: true,maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((m) => `${m.home_team} ${m.home_score}-${m.away_score} ${m.away_team}`));
How much does it cost to scrape Flashscore live scores?
This Actor uses pay-per-event pricing — you're charged per live match scraped, not per compute unit, so cost is predictable regardless of how long a run takes.
| Event | Price per event | Price per 1,000 |
|---|---|---|
| match-scraped | $0.0009 (Free tier) / $0.0008 (paid tiers) | $0.90 / $0.80 |
A run that returns 40 live matches (a typical worldwide snapshot) costs roughly $0.03–$0.04. The free trial covers your first runs at no cost — no credit card required to start.
Is it legal to scrape Flashscore?
Scraping publicly available data — the kind anyone can view by loading the page without logging in — is generally considered legal, and this Actor only reads Flashscore's own public live-score feed. That said, you're responsible for how you use the data: don't scrape personal data or content behind a login, and review Flashscore's terms of service. See Apify's blog post on the legality of web scraping for more detail.
Other Flashscore scrapers from ParseBird
- Flashscore Scraper & API — live and scheduled scores across football, basketball, and 13 other sports
- Flashscore Tennis Scraper — ATP, WTA, ITF, and Challenger match scores and results
FAQ
Does this only return matches that are live right now? Yes. Every run fetches the current worldwide live-match feed, so results reflect match state at the moment the run executes — not a continuous stream. If very few matches are live at that instant (e.g. a quiet hour for football fixtures), the dataset will be small.
Does the output include betting odds? No. Flashscore serves live odds through a separate, harder-to-access internal system than its public score/stats/lineups feeds, so this version focuses on scores, stats, and lineups. It may be added in a future update.
How accurate is match_minute?
It's built from the most recent event's timestamp when available, falling back to elapsed time since kickoff otherwise. It closely tracks the real match clock but doesn't account for exact stoppage/injury time when no recent event has occurred.
Are player ratings included in lineups?
The rating field is reserved in the schema, but Flashscore's lineup feed doesn't expose live per-player ratings for most matches, so it's usually null.
Can I filter by league or team?
Not yet — this Actor returns every live match. Use maxItems to cap results, or filter the dataset after the run using the Apify Console, API, or your own code.
Can I automate recurring runs? Yes. Use Apify's Schedules to run this Actor every few minutes, or trigger it via the Apify API or a webhook from your own pipeline.
Something looks wrong or missing? Open an issue on the Actor's Issues tab — bug reports and feature requests are welcome.