Esports Tournament Roster Scraper avatar

Esports Tournament Roster Scraper

Pricing

Pay per event

Go to Apify Store
Esports Tournament Roster Scraper

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

BowTiedRaccoon

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

6 days ago

Last modified

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

  1. Pick one or more game wikis (defaults to the top 5: CS, Valorant, Dota 2, LoL, Rocket League).
  2. The scraper hits Liquipedia's MediaWiki API with generator=categorymembers + prop=revisions, pulling up to 50 player profiles' wikitext per request.
  3. 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.
  4. 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"
}
FieldTypeDefaultDescription
gamesstring[][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.
maxItemsinteger15Maximum 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.
contactEmailstringcontact@orbtop.comEmail 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"
}
FieldTypeDescription
pageIdnumberLiquipedia page ID — stable identifier within a wiki
wikistringLiquipedia wiki slug (counterstrike, valorant, dota2, etc.)
gamestringHuman-readable game name
handlestringIn-game player handle / nickname
realNamestringReal name in native script when present
romanizedNamestringReal name romanized to Latin script when applicable
nationalitystringCountry of origin
birthDatestringDate of birth in YYYY-MM-DD format when available
rolesstringComma-separated player roles (awp, rifle, mid, support, igl, etc.)
currentTeamstringCurrent team. Empty when Liquipedia uses the {{PlayerTeamAuto}} placeholder
statusstringCareer status: Active, Inactive, Retired, or Deceased
yearsActivestringYears-active span as displayed on the profile
otherIdsstringComma-separated alternate handles or aliases
teamHistorySummarystringChronological team history as a single semicolon-delimited string of YYYY-MM-DD → YYYY-MM-DD TeamName [qualifier] rows
teamCountnumberTotal number of teams in the player's career history
twitterHandlestringTwitter / X handle without @
twitchHandlestringTwitch channel name
youtubeChannelstringYouTube channel handle or ID
instagramHandlestringInstagram handle
facebookHandlestringFacebook page slug
tiktokHandlestringTikTok handle
redditHandlestringReddit username
discordHandlestringDiscord handle
telegramHandlestringTelegram username
bilibiliIdstringBilibili user ID
douyinHandlestringDouyin handle
steamId64stringSteam community ID (64-bit)
eseaIdstringESEA player ID, when set (Counter-Strike profiles)
eslIdstringESL player ID, when set
faceitIdstringFACEIT user UUID
gamersclubIdstringGamersClub player ID (Brazilian CS profiles)
profileUrlstringFull URL to the Liquipedia player profile page
scrapedAtstringISO 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