CueTracker Snooker Stats Scraper
Pricing
from $3.00 / 1,000 results
CueTracker Snooker Stats Scraper
Scrape CueTracker.net snooker data - player profiles & bios, match results, world rankings by season, tournament draws/results, and head-to-head records between any two players. No login or proxy required.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape professional snooker data from CueTracker.net — player profiles and career bios, match-by-match results, world rankings by season, tournament draws and results, and head-to-head records between any two players. No login, cookies, or paid proxy required.
What this actor does
- Six modes:
rankings,playerProfile,players,tournamentResults,tournamentsBySeason,headToHead - World rankings for any season, either the official start-of-season snapshot or the final end-of-season snapshot
- Full match history for a player's season, including opponent, score, round, tournament, date, referee and frame-by-frame scores
- Tournament draws — every match played at a given tournament/season, from qualifiers through to the final
- Season tournament calendar — browse every tournament played in a season (dates, category, winner) to discover
tournamentSlugvalues without knowing them upfront - Head-to-head comparisons — lifetime stats (matches, frames, centuries, maximums, prize money) plus the full list of matches the two players have contested against each other
- Player directory browsable by country (140-option dropdown covering every nation CueTracker tracks), with name filtering
- Empty fields are always omitted — every record only contains data CueTracker actually published
Output fields
Fields vary by recordType. scrapedAt is always included; most record types also carry sourceUrl (player records carry profileUrl instead):
player—fullName,nationality,countrySlug,playerSlug,profileUrl; player-directory listings (mode=players) also includefirstName,lastName; player profiles (mode=playerProfile) also includedateOfBirth,age,turnedProfessional,seasonsAsProfessional,matchesPlayedmatch—round,tournamentName,tournamentUrl,player1Name/player2Name(+ nationality/slug),player1Score/player2Score,score,winnerName,matchDate,referee,frameScores,matchIdranking—season,rankingType,rankingPosition,rankingPoints,playerName,nationality,countrySlug,playerSlug,profileUrltournament—tournamentName,tournamentStatus,season,dates,location(mode=tournamentResults);mode=tournamentsBySeasonemits one lightertournamentrecord per event instead:season,tournamentName,tournamentSlug,dates,category,winnerName,winnerSlug,winnerNationality,winnerCountrySlug,sourceUrl(winner fields omitted for events not yet played)headToHead—player1Slug/player2Slug,player1Name/player2Name, and per player (player1/player2prefix):SeasonsAsProfessional,MaximumsMade,MatchesPlayed/MatchesWon(+Rate)/MatchesLost(+Rate)/MatchesDrawn(+Rate),FramesPlayed/FramesWon(+Rate),TournamentsPlayed/TournamentsWon(+Rate),CenturiesMade,CenturyRate,DecidersPlayed/DecidersWon(+Rate),WhitewashesPlayed/WhitewashesWon(+Rate),PrizeMoney— e.g.player1MatchesPlayed,player2FramesWonRate,player1PrizeMoney
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | rankings | rankings / playerProfile / players / tournamentResults / tournamentsBySeason / headToHead |
season | string | – (auto) | Season in YYYY-YYYY format. Auto-detects the latest published season if omitted. |
rankingType | string | start | start (world ranking players began the season with) or finish (final ranking, once the season concludes) |
playerSlugs | array | ["judd-trump"] | Player slugs or profile URLs (mode=playerProfile) |
status | string | professional | professional or non-professional match filter (mode=playerProfile) |
country | string (dropdown) | – (any) | Country to filter the player directory — 139-option dropdown, e.g. england, china (mode=players) |
nameQuery | string | – | Case-insensitive substring filter on player name (mode=players) |
tournamentSlug | string | world-championship | Tournament slug (mode=tournamentResults) |
player1Slug / player2Slug | string | judd-trump / ronnie-osullivan | Two players to compare (mode=headToHead) |
maxItems | int | 25 | Hard cap on emitted records (1-1000) |
Example: current world rankings
{ "mode": "rankings", "season": "2025-2026", "rankingType": "start", "maxItems": 32 }
Example: a player's season results
{ "mode": "playerProfile", "playerSlugs": ["judd-trump"], "season": "2025-2026", "status": "professional" }
Example: World Championship draw
{ "mode": "tournamentResults", "tournamentSlug": "world-championship", "season": "2025-2026" }
Example: head-to-head
{ "mode": "headToHead", "player1Slug": "judd-trump", "player2Slug": "ronnie-osullivan" }
Example: browse tournaments played in a season
{ "mode": "tournamentsBySeason", "season": "2024-2025", "maxItems": 50 }
Use cases
- Sports media — build live rankings tables and player bio pages
- Betting & fantasy sports — head-to-head records and recent form for odds modeling
- Fan sites & apps — tournament draws, match results, and player career stats
- Sports analytics — bulk-export match-by-match data for statistical modeling
- Broadcast research — pull player bios and career milestones ahead of coverage
FAQ
What's CueTracker? A community-run statistics site tracking professional and amateur snooker results back to the sport's earliest recorded tournaments. See cuetracker.net.
Why does rankingType=finish sometimes return nothing? CueTracker only populates the end-of-season "finish" ranking once that season has actually concluded. For the current, in-progress season, use rankingType=start (the official ranking players carried into the season).
How do I find a player's slug? It's the last part of their CueTracker profile URL, e.g. judd-trump from cuetracker.net/players/judd-trump. You can also discover slugs via mode=players.
Why does mode=players with nameQuery but no country sometimes miss well-known players? CueTracker's unscoped /players directory (used when no country is given) is a smaller subset of the full database and can omit current top professionals entirely. Each country-specific listing (mode=players, country=england, etc.) is comprehensive for that country. For reliable name search, pair nameQuery with a country, or use mode=playerProfile if you already know the slug, or mode=rankings to browse current professionals by name.
What tournament slugs are supported? Any tournament CueTracker tracks, e.g. world-championship, masters, uk-championship, welsh-open, players-championship, tour-championship, world-open, german-masters, championship-league. The actor resolves the slug against the given season automatically. Don't know a slug? Run mode=tournamentsBySeason first to list every tournament (with its slug) played in a given season.
Why are some frameScores long strings instead of arrays? CueTracker publishes frame-by-frame scores as a single semicolon-separated string (e.g. 21-86(58); 102(70)-9; ...), with break values in parentheses. The actor preserves this exactly as published.
How far back does the data go? CueTracker's ranking archive goes back to the 1930s; match-level detail is most complete from the 1980s onward.
Is a proxy or login required? No — CueTracker serves full match/ranking data to plain HTTP requests. This actor uses Apify's free AUTO proxy group only as a fallback if ever rate-limited.