Esports Tournament Roster Scraper
Pricing
Pay per event
Esports Tournament Roster Scraper
Scrape esports player rosters from Liquipedia across CS, Valorant, Dota 2, LoL, Rocket League and 30+ game wikis. Returns handle, real name, nationality, role, current team, full team history, status, and social handles.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Actor stats
1
Bookmarked
3
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Liquipedia Esports Player Roster Scraper
Scrape esports player profiles from Liquipedia, the canonical wiki for competitive gaming. Returns handle, real name, nationality, role, current team, full chronological team history, and social handles across CS, Valorant, Dota 2, League of Legends, Rocket League, and 30+ other game wikis.
Liquipedia Esports Roster Scraper Features
- Pulls player profiles from any of 30+ Liquipedia game wikis in a single run
- Returns 30+ fields per profile, including the things you'd expect (handle, nationality, current team) and the cross-platform IDs you'd otherwise scrape one site at a time (Steam64, FACEIT, ESEA, ESL, GamersClub)
- Parses chronological team history from Liquipedia's
{{TH}}template — every stint, every loan, every "inactive" stretch - Surfaces social handles from 12 platforms — Twitter, Twitch, YouTube, Instagram, Facebook, TikTok, Reddit, Discord, Telegram, Bilibili, Douyin, plus the wiki's native FACEIT/ESEA links
- Pure JSON API — no browser, no proxy, no captcha solving
- Honours Liquipedia's API Terms of Use, including the 1 req / 2 second rate limit and identifying User-Agent
Who Uses Liquipedia Roster Data?
- Esports team managers — scout free agents and track recent transfers across CS2, Valorant, and LoL without copy-pasting from 30 tabs
- Sports-betting and odds platforms — feed roster changes into match-prediction models the day they happen
- Sponsorship and agency teams — pull social-handle inventories for outreach lists, sliced by game and current team
- Fantasy esports operators — populate player pools for DraftKings Rocket-style products with normalized handles, real names, and active teams
- Researchers and journalists — answer questions like "every Brazilian CS pro born after 2002" without writing a wiki crawler from scratch
How the Liquipedia Esports Roster Scraper Works
- Pick one or more game wikis (defaults to the top 5: CS, Valorant, Dota 2, LoL, Rocket League).
- The scraper hits Liquipedia's MediaWiki API with
generator=categorymembers + prop=revisions, pulling up to 50 player profiles' wikitext per request. - Each profile's
{{Infobox player}}template is parsed into a flat record — handle, real name, romanized name, nationality, birth date, role(s), current team, status, social handles, and cross-platform IDs. - Team history is parsed from
{{TH|date_from — date_to|TeamName|qualifier}}rows and flattened into a single human-readable summary string. Profiles that use Liquipedia's{{TeamHistoryAuto}}placeholder return an empty history field — that data is computed at render time, not stored in wikitext.
Input
{"games": ["counterstrike", "valorant", "dota2"],"maxItems": 100,"contactEmail": "you@yourdomain.com"}
| Field | Type | Default | Description |
|---|---|---|---|
games | string[] | [counterstrike, valorant, dota2, leagueoflegends, rocketleague] | Liquipedia wiki slugs to scrape. Pick from CS, Valorant, Dota 2, LoL, Rocket League, Mobile Legends, Apex, R6, Overwatch, StarCraft 2, Halo, CoD, Fortnite, TFT, Hearthstone, Smash, Heroes, osu!, Paladins, Free Fire, GeoGuessr, CrossFire, Deadlock, EA SPORTS FC, Wild Rift, Brawl Stars, World of Tanks, Trackmania, PUBG Mobile, and Fighting Games. |
maxItems | integer | 15 | Maximum total profiles to return across all selected wikis. The default is conservative for the Apify tester. Production runs can set it to 1,000+ — a single CS pull at 50 records per request and 1 req / 2 s finishes a 5,000-player wiki in roughly four minutes. |
contactEmail | string | contact@orbtop.com | Email embedded in the User-Agent header sent to Liquipedia. Liquipedia's API ToS asks for identifying contact info — change it to yours so support can reach you if rate-limit issues come up. |
Scrape one wiki, full roster
{"games": ["counterstrike"],"maxItems": 5000,"contactEmail": "you@yourdomain.com"}
Pull rosters across the top three esports
{"games": ["counterstrike", "valorant", "leagueoflegends"],"maxItems": 500,"contactEmail": "you@yourdomain.com"}
Liquipedia Esports Roster Scraper Output Fields
{"pageId": 142086,"wiki": "counterstrike","game": "Counter-Strike","handle": "NiKo","realName": "Никола Ковач","romanizedName": "Nikola Kovač","nationality": "Bosnia and Herzegovina","birthDate": "1997-02-16","roles": "entry","currentTeam": "Team Falcons","status": "Active","yearsActive": "2009 - Present","otherIds": "NiKolinho, nIKOLINHO, NiKOLINHO, nik0k0, niko","teamHistorySummary": "2015-03-04 → 2015-05-04 mousesports; 2015-05-04 → 2015-08-30 mousesports [inactive]; 2015-08-30 → 2017-02-19 mousesports; 2017-02-19 → 2020-10-28 FaZe Clan; 2020-10-28 → 2025-01-03 G2 Esports; 2025-01-03 → Present Team Falcons","teamCount": 19,"twitterHandle": "NiKoCS_","twitchHandle": "NiKo","youtubeChannel": "@NiKo_cs","instagramHandle": "csgoniko","facebookHandle": "csgoNiKo","tiktokHandle": "csgoniko1","redditHandle": "","discordHandle": "","telegramHandle": "","bilibiliId": "3632311203531669","douyinHandle": "NIKO1602","steamId64": "76561198041683378","eseaId": "571970","eslId": "","faceitId": "19606e0c-137b-4885-a904-744fa12d25f6","gamersclubId": "","profileUrl": "https://liquipedia.net/counterstrike/NiKo","scrapedAt": "2026-05-02T16:22:53.941Z"}
| Field | Type | Description |
|---|---|---|
pageId | number | Liquipedia page ID — stable identifier within a wiki |
wiki | string | Liquipedia wiki slug (counterstrike, valorant, dota2, etc.) |
game | string | Human-readable game name |
handle | string | In-game player handle / nickname |
realName | string | Real name in native script when present |
romanizedName | string | Real name romanized to Latin script when applicable |
nationality | string | Country of origin |
birthDate | string | Date of birth in YYYY-MM-DD format when available |
roles | string | Comma-separated player roles (awp, rifle, mid, support, igl, etc.) |
currentTeam | string | Current team. Empty when Liquipedia uses the {{PlayerTeamAuto}} placeholder |
status | string | Career status: Active, Inactive, Retired, or Deceased |
yearsActive | string | Years-active span as displayed on the profile |
otherIds | string | Comma-separated alternate handles or aliases |
teamHistorySummary | string | Chronological team history as a single semicolon-delimited string of YYYY-MM-DD → YYYY-MM-DD TeamName [qualifier] rows |
teamCount | number | Total number of teams in the player's career history |
twitterHandle | string | Twitter / X handle without @ |
twitchHandle | string | Twitch channel name |
youtubeChannel | string | YouTube channel handle or ID |
instagramHandle | string | Instagram handle |
facebookHandle | string | Facebook page slug |
tiktokHandle | string | TikTok handle |
redditHandle | string | Reddit username |
discordHandle | string | Discord handle |
telegramHandle | string | Telegram username |
bilibiliId | string | Bilibili user ID |
douyinHandle | string | Douyin handle |
steamId64 | string | Steam community ID (64-bit) |
eseaId | string | ESEA player ID, when set (Counter-Strike profiles) |
eslId | string | ESL player ID, when set |
faceitId | string | FACEIT user UUID |
gamersclubId | string | GamersClub player ID (Brazilian CS profiles) |
profileUrl | string | Full URL to the Liquipedia player profile page |
scrapedAt | string | ISO 8601 timestamp of when the record was scraped |
FAQ
How do I scrape Liquipedia player profiles?
Liquipedia Esports Roster Scraper does it for you. Pick the game wikis you want from the dropdown, set a record cap, and run. The scraper hits Liquipedia's MediaWiki API directly and parses the {{Infobox player}} template into a flat JSON record, so you don't have to learn how to balance template braces by hand.
What esports does this actor cover?
Liquipedia Esports Roster Scraper covers every game with a Liquipedia wiki — CS, Valorant, Dota 2, League of Legends, Rocket League, Mobile Legends, Apex Legends, Rainbow Six, Overwatch, StarCraft 2, Halo, Call of Duty, Fortnite, Teamfight Tactics, Hearthstone, Super Smash Bros., Heroes of the Storm, osu!, Paladins, Free Fire, GeoGuessr, CrossFire, Deadlock, EA SPORTS FC, Wild Rift, Brawl Stars, World of Tanks, Trackmania, PUBG Mobile, and Fighting Games. Liquipedia adds new wikis periodically — re-run with the latest enum to pick them up.
How much does the Liquipedia Esports Roster Scraper cost to run?
Liquipedia Esports Roster Scraper costs $0.10 per run start plus $0.001 per record. A 1,000-record pull is about $1.10. A 5,000-player Counter-Strike full-roster sync is about $5.10. There are no hidden proxy fees because the actor does not use a proxy.
Why does currentTeam come back empty for some players?
Liquipedia Esports Roster Scraper returns an empty currentTeam when the wiki uses the {{PlayerTeamAuto}} template, which auto-resolves at render time from match data — not from anything stored in the page wikitext. Pulling that field would require Liquipedia's action=parse endpoint, which is rate-limited at one request every thirty seconds and would slow a 5,000-player crawl down by a factor of 60. The wikitext-derived teamHistorySummary field still includes their full history, including the most recent stint, so you can reconstruct the current team from there.
Does the Liquipedia Esports Roster Scraper need proxies?
Liquipedia Esports Roster Scraper does not need proxies. It hits Liquipedia's public API directly with a polite User-Agent that identifies the run, and respects the 1 request / 2 seconds rate limit baked into the API ToS. Liquipedia welcomes API traffic as long as you behave — proxies would obscure that, which is the opposite of what they ask for.
Can I run this on a schedule?
Liquipedia Esports Roster Scraper can run on any Apify schedule. Liquipedia profiles are wiki-edited daily for active rosters, so a weekly or twice-weekly schedule on the top 5 wikis is enough to keep a roster dataset reasonably fresh.
Need More Features?
Need additional fields, a different target site, or a custom mode? File an issue or get in touch.
Why Use the Liquipedia Esports Roster Scraper?
- Affordable — $0.001 per record, no proxy surcharge
- Multi-game in one actor — one input array picks any combination of 30+ game wikis, instead of running one scraper per game and reconciling the schemas yourself
- Clean structured output — flat JSON with consistent field names across every wiki, so a CS profile and a Valorant profile come back in the same shape and your downstream code doesn't care which game it's looking at