Flashscore Scraper
Pricing
from $3.00 / 1,000 match records
Flashscore Scraper
Scrape Flashscore live scores, results, fixtures, standings, H2H and match stats across football, tennis, basketball and 30+ sports. HTTP-only, MCP-ready.
Pricing
from $3.00 / 1,000 match records
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Flashscore Scraper — Live Scores, Results, Fixtures, Standings & Stats
Scrape Flashscore sports data across football, tennis, basketball, hockey and 30+ other sports — in one actor. Pull live scores, finished results, upcoming fixtures, league standings, head-to-head history, and full match detail (statistics, lineups, incidents). HTTP-only against Flashscore's own data feed, so it is fast, cheap, and reliable — no slow headless browser. Built MCP-ready for AI agents.
What you get
| Mode | What it returns |
|---|---|
| Live scores | Matches in progress with running score and status |
| Results | Finished matches with final score |
| Fixtures | Upcoming scheduled matches and kick-off times |
| Standings | Full league/group table — rank, W/D/L, goals, points |
| Head-to-head | Prior meetings between two teams |
| Match detail | Statistics, lineups & formations, incidents (goals/cards/subs) |
When to use it
- Building a betting model or odds/value tool that needs structured results and stats.
- Powering a sports dashboard, app, or Discord/Telegram bot with live scores.
- Data analysts and researchers collecting historical results across leagues.
- AI agents that need a clean sports-data tool call (single sport/date or match URL in, JSON out).
Not the right tool for: sportsbook odds-only feeds, or live in-play tick-by-tick streaming.
Output sample
List record (one per match):
{"recordType": "match","matchId": "2L651Hgn","sport": "football","country": "Argentina","league": "Primera Nacional","homeTeam": "Nueva Chicago","awayTeam": "Atl. Rafaela","homeScore": 0,"awayScore": 0,"status": "finished","startTime": "2026-06-23T21:30:00.000Z","matchUrl": "https://www.flashscore.com/match/2L651Hgn/"}
Match-detail record adds statistics[], incidents[], lineups, standings[], and headToHead[].
Pricing
Pay-per-event:
| Event | Price |
|---|---|
| Actor start | $0.00005 |
| Match record (list row) | $0.003 |
| Match detail (stats, lineups, incidents, standings, H2H) | $0.005 |
A typical 100-match list pull costs about $0.30. You set a hard maxResults cap on every run, and the run prints its maximum cost before billing anything.
Input
| Field | Description |
|---|---|
sport | Sport to scrape by day (football, tennis, basketball, ...). Default football. |
dayOffsets | Days relative to today: 0 = today, -1 = yesterday's results, 1 = tomorrow's fixtures. Range −7…+7. |
date | Single exact day YYYY-MM-DD (within 7 days). Overrides dayOffsets. |
matchUrls | Flashscore match URLs or raw IDs → runs detail mode for those matches. |
detailSections | Which detail sections to fetch: summary, stats, incidents, lineups, standings, h2h. |
enrichListWithDetails | In list mode, also attach full match detail to every match (extra cost). Default off. |
maxResults | Hard cap on billable records. Default 100. |
language | Feed language for labels (en, es, de, ...). Default en. |
sportId | Advanced: numeric Flashscore sport ID for a sport not in the dropdown. |
Example — yesterday's football results
{ "sport": "football", "dayOffsets": [-1], "maxResults": 200 }
Example — full detail for specific matches
{"matchUrls": ["https://www.flashscore.com/match/2L651Hgn/"],"detailSections": ["stats", "lineups", "incidents", "standings", "h2h"]}
How it works
The actor calls Flashscore's internal data feed directly and parses its compact delimited format into clean, flat JSON. List mode pulls a whole day of matches per sport; detail mode resolves each match ID and fetches the requested sections. Requests run through Apify Proxy with retry, backoff, and graceful degradation — a single bad match never crashes the batch, and partial results are always returned.
Use with AI agents (MCP)
This actor is exposed through the Apify MCP server as apify--flashscore-scraper. An agent can ask for a sport + date, or hand it a match URL, and receive structured JSON it can reason over directly. Input fields and output keys are written for LLM consumption.
FAQ
How far back can I scrape? List mode covers −7 to +7 days (the feed's window). Match detail works for any match whose page still exists, including older matches.
Which sports are supported? Football, tennis, basketball, ice hockey, American football, baseball, handball, rugby (union & league), floorball, futsal, volleyball, cricket, darts, snooker, boxing, badminton, water polo, table tennis, MMA — plus any other via the numeric sportId.
Do I need a login or cookies? No. It uses public data feeds only.
Why are some fields null? Not every sport or match exposes every field (e.g. a future fixture has no score yet). Nulls are explicit and consistent.
Legal
This tool accesses publicly available data for personal, research, and analytical use. You are responsible for complying with Flashscore's Terms of Service and all applicable laws, including data-protection regulations, in your jurisdiction. Do not use scraped data to infringe copyright or redistribute in violation of the source's terms. This actor is not affiliated with, endorsed by, or connected to Flashscore.