Flashscore Live Football Matches - Scores & Lineups avatar

Flashscore Live Football Matches - Scores & Lineups

Pricing

from $0.80 / 1,000 live match scrapeds

Go to Apify Store
Flashscore Live Football Matches - Scores & Lineups

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

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

5

Monthly active users

20 hours ago

Last modified

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?

FieldDescription
match_id, match_urlFlashscore's internal match ID and permalink
status, match_minute, match_periodLive state — always "LIVE" for this actor, current minute, and half
home_team, away_team, home_score, away_scoreTeams and running score
home_score_halftime, away_score_halftimeScore at half-time (null until the 1st half ends)
league, league_id, league_url, roundCompetition and round/matchday
referee, venue, venue_city, venue_capacityMatch 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
lineupshome_formation, away_formation, and home/away player arrays

Input parameters

ParameterTypeRequiredDefaultDescription
includeStatisticsbooleanNotrueFetch full match statistics per period. Adds one API call per live match.
includeLineupsbooleanNotrueFetch starting XI, formations, and substitutes. Adds one API call per live match.
maxItemsintegerNounlimitedCap on the number of live matches returned. Leave blank for every live match.
proxyConfigurationobjectNo{"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

  1. Click Try for free on this Actor's page (no credit card required for the free trial).
  2. Open the Input tab and leave the defaults, or turn off includeStatistics / includeLineups for a lighter, faster run.
  3. Optionally set maxItems to cap how many matches come back — useful for quick test runs.
  4. Click Start and wait a few seconds — a full worldwide sweep of live matches typically finishes in under a minute.
  5. Open the Dataset tab to preview results, or export to JSON/CSV/Excel.
  6. 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 ApifyClient
client = 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.

EventPrice per eventPrice 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.

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

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.