Flashscore Snooker Scraper: live scores, results and fixtures
Pricing
from $0.005 / actor start
Flashscore Snooker Scraper: live scores, results and fixtures
Scrape snooker live scores, results and fixtures from Flashscore: tournament, players, frames won, the best-of format and start time.
Pricing
from $0.005 / actor start
Rating
0.0
(0)
Developer
Michal Pšenčík
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Flashscore Snooker Scraper (live scores, results, fixtures)
What does Flashscore Snooker Scraper do?
This Actor scrapes snooker live scores, finished results and upcoming fixtures from Flashscore. For every match it returns the tournament, both players, the frames won by each side, the best-of format the match is played over, the exact start time in UTC, and a link to the match page on Flashscore.
Pick any days in a two-week window around today, choose whether you want live, finished or scheduled matches, and run it. Because it runs on the Apify platform you get a REST API for the results, scheduled runs, proxy rotation, run monitoring, and integrations with Google Sheets, Zapier, Make, Slack and the rest.
Try it from the Input tab: leave everything at its default and hit Start to get today's snooker card.
Why use Flashscore Snooker Scraper?
- Live dashboards and bots. Run it on a schedule (every minute or two) with
status: liveto drive a scoreboard, a Telegram bot or an internal alerting channel. Live rows carry the running frame score and the frame currently being played. - Betting and odds models. The frame score plus the best-of format is enough to compute frames remaining, match situation and in-play state, which a plain win/loss feed cannot support.
- Sports media and stats sites. Fill fixture pages and result tables for the World Championship, the UK Championship, the Masters, ranking events such as the British Open and the Champion of Champions, plus qualifying rounds, all from one run.
- Player research. Every item carries a stable
matchIdand match URL, so repeated runs stitch into a history you can group per player or per tournament. - No snooker data vendor contract. Flashscore covers qualifying rounds and the smaller events far more densely than most paid feeds do.
How to use Flashscore Snooker Scraper
- Click Try for free (or open the Actor in Apify Console).
- On the Input tab, set Days to the day offsets you want.
[0]is today,[-1, 0, 1]is yesterday through tomorrow. - Pick a Match status if you only want live, finished or scheduled matches. The default returns all of them.
- Set Maximum results if you want to cap the run. The default is 500 matches.
- Click Start and watch the log. A three-day run takes a few seconds.
- Open the Output tab (or Storage → Dataset) and export as JSON, CSV, Excel or HTML, or pull it through the Apify API.
To keep the data fresh, use Schedules in Apify Console to run the Actor every few minutes for live scores, or once a morning for the day's fixtures.
Input
All fields are optional; the defaults return today's full snooker card.
| Field | Type | Default | Description |
|---|---|---|---|
days | array | [0] | Day offsets from today. 0 today, -1 yesterday, 1 tomorrow. Flashscore serves 7 days either side of today. |
status | string | all | One of all, live, finished, scheduled. all also includes postponed and cancelled matches. |
maxItems | integer | 500 | Stop after this many matches. 0 means no limit. |
proxyConfiguration | object | Apify proxy disabled | Optional. Flashscore serves these pages without an anti-bot challenge, so datacenter proxies are plenty. |
Example input:
{"days": [-1, 0, 1],"status": "all","maxItems": 500}
Output
Each match is one dataset item. Download the dataset in various formats such as JSON, HTML, CSV, or Excel.
{"matchId": "xGNk7ynK","sport": "snooker","tournament": "UNITED KINGDOM: British Open","startTime": "2026-09-02T22:30:00.000Z","status": "finished","statusText": "Finished","home": "Pang J.","away": "Joyce M.","homeFrames": 0,"awayFrames": 4,"bestOfFrames": 7,"matchUrl": "https://www.flashscore.com/match/snooker/joyce-mark-vNcz9Bib/junxu-pang-8K5n4x0R/?mid=xGNk7ynK","scrapedAt": "2026-09-03T14:44:25.247Z"}
A live match carries the running frame score and the frame being played:
{"matchId": "AsspqOhc","sport": "snooker","tournament": "UNITED KINGDOM: British Open","startTime": "2026-09-03T12:00:00.000Z","status": "live","statusText": "Live Frame 7","home": "Higgins J.","away": "Thirapongpaiboon T.","homeFrames": 3,"awayFrames": 3,"bestOfFrames": 7,"matchUrl": "https://www.flashscore.com/match/snooker/higgins-john-SEI1iLWm/thirapongpaiboon-thanawat-nyR2uVsi/?mid=AsspqOhc","scrapedAt": "2026-09-03T14:44:25.247Z"}
A scheduled match looks the same with homeFrames and awayFrames empty:
{"matchId": "Y9HfPvrJ","sport": "snooker","tournament": "UNITED KINGDOM: British Open","startTime": "2026-09-03T18:00:00.000Z","status": "scheduled","statusText": "","home": "Boiko I.","away": "Selby M.","homeFrames": null,"awayFrames": null,"bestOfFrames": 7,"matchUrl": "https://www.flashscore.com/match/snooker/boiko-iulian-W20gkEIg/selby-mark-61B1YwrO/?mid=Y9HfPvrJ","scrapedAt": "2026-09-03T14:44:25.247Z"}
Data fields
| Field | Type | Description |
|---|---|---|
matchId | string | Flashscore's match id. Stable across days and reruns, so use it as your primary key. |
sport | string | Always snooker. |
tournament | string | Category and competition, e.g. UNITED KINGDOM: British Open. |
startTime | string | null | Scheduled start, ISO 8601 in UTC. |
status | string | scheduled, live, finished, or other for delayed, postponed and abandoned matches. |
statusText | string | Flashscore's own stage label, e.g. Finished, Live Frame 7, Delayed. Empty when scheduled. |
home | string | Home player. |
away | string | Away player. |
homeFrames | number | null | Frames won by the home side. Empty before the match starts. |
awayFrames | number | null | Frames won by the away side. |
bestOfFrames | number | null | The best-of format, e.g. 7 for a first-to-4-frames match. Present on scheduled matches too. |
matchUrl | string | null | Link to the match page on Flashscore. |
scrapedAt | string | When this run read the page, ISO 8601 in UTC. |
How much does it cost to scrape Flashscore snooker data?
This Actor uses pay per event pricing: $0.008 per match returned, plus $0.005 per run start. Platform usage is included, so those two numbers are the whole bill.
Two consecutive days measured while building this Actor held 20 and 12 matches, so a one-day run cost between
$0.10 and $0.17. Snooker is a seasonal calendar: a qualifying week at a ranking event runs much higher, and a
day between events can be empty, which costs one actor start and nothing else. A live-score run capped with
maxItems costs proportionally less. The Apify free plan comes with $5 of monthly platform credit, which is enough
to try the Actor and run it daily for a while.
To cap spending on a single run, set a maximum cost in the run options, or use the maxItems input.
Tips and advanced options
- Cut the bill on live runs. Set
status: liveand a smallmaxItems. You are only charged for matches that are actually pushed, so a quiet moment costs one actor start. - One run covers many days.
daysswitches days inside a single browser session, so[-3, -2, -1, 0]costs one actor start, not four. - Deduplicate across runs.
matchIdis stable, so upsert on it rather than appending. A match scraped while live and again after it finished will have the same id and a final frame score the second time. - Watch for delays. Snooker sessions slip. A delayed match comes back with
status: otherandstatusText: "Delayed", so includeother(or usestatus: all) if you want to see them. - Proxies are optional. Flashscore does not challenge these pages. Turn on Apify Proxy datacenter groups only if you are running very frequently from one address.
- Order is Flashscore's order. Items come back grouped by tournament in the order the site lists them, not sorted
by start time. Sort on
startTimeif you need chronological output.
FAQ, disclaimers and support
Does this Actor need a Flashscore login? No. It is a reader of public pages, with no login and no account of any kind.
Is scraping Flashscore legal? This Actor reads only publicly available pages and collects match facts (players, scores, times), not personal data. Scraping publicly accessible information is generally legal in the EU and the US, but you are responsible for how you use the output, including Flashscore's Terms of Service and any database rights that apply where you operate. Talk to a lawyer if you plan to redistribute the data commercially.
Does it return the points in each frame, breaks or century counts? No. Those live on Flashscore's match detail page, not on the day list this Actor reads. Open an issue if you need them and it can be looked at.
Why is startTime sometimes empty?
Flashscore does not publish a start time for every entry in its day list. The Actor fills in the exact UTC timestamp
where the site provides it, which in practice is nearly every match, and leaves the field empty rather than guessing.
Why do I get fewer matches than I see on the site?
Check maxItems and status. Also note the site's day list is live: matches are added and removed through the day,
so two runs an hour apart legitimately differ.
Does it cover a specific tournament or league?
It returns whatever Flashscore lists for the day, across every snooker competition. Filter by tournament on your
side.
Found a bug, or need something else? Open an issue on the Issues tab of this Actor and it will be picked up. If you need a custom version, a different sport, or an extraction that is not covered here, mention it in the issue.