Liquipedia Scraper: Esports Teams, Players & Tournaments
Pricing
Pay per event
Liquipedia Scraper: Esports Teams, Players & Tournaments
Scrape Liquipedia esports wikis (Dota 2, CS, Valorant, LoL + 14 more): full-text search, category listings and page details with parsed infobox fields for teams, players and tournaments. Export CSV, Excel, JSON, XML. No login or API key. 18 game wikis from one input.
Pricing
Pay per event
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Security
Limited permissionsShare
Liquipedia Scraper by RecordsData extracts esports data from Liquipedia across 63 game wikis: search hits, category listings, full pages with the infobox parsed into columns, and typed rows for prizes, participating teams, matches, team rosters with join and leave dates, player team history, player transfers and playoff brackets. An "Only new or changed pages" mode returns just the pages with a new revision. Every row carries
revisionIdand the CC-BY-SA 3.0 license. No login, no API key. Export CSV, Excel, JSON or XML. Page rows cost $17 per 1,000, search and category rows $10 per 1,000, and typed rows $2 per 1,000. Updated 2026-10-11.
Liquipedia is the reference encyclopedia for competitive gaming, but its data sits inside wikitext templates. This Liquipedia scraper calls the official MediaWiki API at the rate Liquipedia asks for (one request per 2 seconds), parses each page's infobox, and reads the prize, match, roster, transfer and bracket templates into flat rows.Typed rows work best on Counter-Strike, Rocket League, Overwatch and StarCraft II, and have limits on Dota 2, Valorant and League of Legends (below).
๐ What does Liquipedia Scraper do?
- Search by keyword or list a category such as Tournaments, Players or Teams, one row per page.
- Scrape pages with parsed infobox data: exact page titles in, structured fields out plus the full
infoboxobject. Redirects are followed. - Extract typed rows (
extractRecords): prizes, participants, matches, rosters, team history, transfers and brackets. - Any of 63 game wikis, including Dota 2, Counter-Strike, Valorant and League of Legends.
- Monitor changes:
onlyNewreturns only new or updated pages, withchangeTypeon each row. Skipped pages are free. - Filter and follow:
entityTypeskeeps one kind of page;includeSubpagesfetches sub-pages.
๐ What data can you extract from Liquipedia?
Every row has a recordType: search-result, category-member, page, prize, participant, match, roster, team-history, transfer or bracket.
| Group | Fields |
|---|---|
| Every row | recordType, wiki, title, pageId, revisionId, url, license, licenseUrl, scrapedAt |
| Search and category rows | snippet, wordCount, category, sizeBytes, lastEdited |
| Page rows | entityType, infoboxType, infobox, categories, changeType, wikitext (optional), plus infobox columns such as startDate, prizePoolUsd, tier, organizer, country, currentTeam |
| Prize rows | place, participant, prizeUsd, prizeLocal, currency, points, percentage, qualifier |
| Participant rows | participant, players, coaches |
| Match rows | matchId, matchDate, opponent1, opponent2, opponent1Name, opponent2Name, score1, score2, winner, bestOf |
| Roster and team-history rows | team, player, position, role, rosterStatus, staff, captain, joinDate, leaveDate |
| Transfer rows | transferDate, fromTeam, fromRole, toTeam, toRole, players, references |
| Bracket rows | bracketId, nodeCount, decidedCount, nodes (round, opponents, scores, winner) |
The dataset schema has 95 columns. Missing fields are left out. Private-person details such as real name and birth date stay inside the infobox object only.
Limits of the typed rows
Typed rows are read from the page source, not from Liquipedia's database (LPDB), which needs an approved key.
- Prizes: work on most wikis. On Dota 2 The International and some League of Legends events only the
percentageshare is on the page. - Rosters and team history: work on Counter-Strike, Dota 2 team rosters and StarCraft II. Valorant and League of Legends rosters and Dota 2 player team history return the page row only.
- Matches: partial.
opponent1Nameandopponent2Nameare filled on about 80 percent of rows on Counter-Strike, 55 on Valorant and 20 on Dota 2.winneris derived when missing: 98 percent on Counter-Strike. League of Legends gives none. - Transfers: read from archive pages of Dota 2, Counter-Strike, Valorant and League of Legends.
fromTeamis filled on 69 percent of rows andtoTeamon 57. - Brackets: only those whose teams are in the page source; empty placeholders are skipped and not billed. Counter-Strike usually has them (8 of 9 on the sample), Dota 2 and Valorant rarely, League of Legends none.
- Not included: head-to-head records.
๐งพ Liquipedia scraper sample output
Shape of a prize row from a tournament page. The values below are illustrative, not copied from a logged run:
{"recordType": "prize","wiki": "counterstrike","title": "Intel Extreme Masters/2025/Cologne","url": "https://liquipedia.net/counterstrike/Intel_Extreme_Masters/2025/Cologne","place": "1","participant": "Example Team","prizeUsd": 300000,"license": "CC-BY-SA 3.0","scrapedAt": "2026-10-10T08:00:00.000Z"}
๐ฐ How much does it cost to scrape Liquipedia?
Pay per event, only for rows saved with real content.
| Event | What is billed | Price per 1,000 (Free plan) | Price per row |
|---|---|---|---|
| page-record | One parsed page | $17.00 | $0.017 |
| search-record | One search hit | $10.00 | $0.01 |
| category-record | One category member | $10.00 | $0.01 |
| typed-record | One typed row | $2.00 | $0.002 |
Paid plans get tier discounts on page rows, down to $13 per 1,000 on Gold and above. Search, category and typed prices are flat on every plan.
Worked examples at Free plan prices: one tournament page with 82 typed rows costs $0.017 + 82 x $0.002 = $0.181. 100 team pages with 10 roster rows each cost $3.70.
You are not charged for error rows, pages that do not exist, pages skipped by entityTypes or onlyNew, empty bracket placeholders, invalid input or searches with zero results.
๐ How to scrape Liquipedia in 3 steps
- Pick a wiki (for example
counterstrike). - Fill Search query, Category listing or Page titles, optionally typed records, and set Max items.
- Click Start, then download CSV, Excel, JSON or XML.
โ๏ธ Liquipedia Scraper input
| Field | Type | Default | What it does |
|---|---|---|---|
| wiki | select | dota2 | One of 63 wikis |
| searchQuery | string | The International | Full-text search |
| category | string | empty | List pages in a category |
| pageTitles | array | empty | Exact page titles, up to 5,000 |
| includeSubpages, maxSubpages | boolean, integer | false, 25 | Fetch sub-pages (1 to 200 per title) |
| fetchPageDetails | boolean | false | Full page records for hits |
| entityTypes | array | empty | Keep only tournament, team, player or other pages |
| extractRecords | array | empty | prizes, participants, matches, roster, teamHistory, transfers, brackets |
| includeWikitext | boolean | false | Attach raw wikitext |
| maxItems | integer | 10 | Cap on all rows (free users: 10) |
| onlyNew, stateKey, resetSeen | boolean, string, boolean | false, empty, false | Monitor mode, name, forget memory |
Setting entityTypes or extractRecords switches on full page records for search and category hits. Example:
{"wiki": "counterstrike","searchQuery": "","pageTitles": ["Intel Extreme Masters/2025/Cologne"],"extractRecords": ["prizes", "participants", "matches"],"maxItems": 200}
With none of search, category or page titles set, the run ends with one free error row.
๐ Monitor Liquipedia for new or changed pages
Turn on onlyNew and give the run a stateKey such as daily-ti. Delivered pages are remembered by id and revision. On the next run with the same input, unchanged pages are skipped and not charged; a new revision comes back as updated, a never-seen page as new.
๐ค Liquipedia Scraper output
A search with no results finishes as SUCCEEDED with the message "No results for this query or category. Nothing was charged." If every requested page is missing, the run ends as FAILED.
โ๏ธ Liquipedia scraper vs alternatives
Read on 2026-10-10 from public Store pages:
| This actor | clintsa/liquipedia-scraper | automation-lab/liquipedia-esports-wiki-scraper | |
|---|---|---|---|
| Wikis | 63 | 80+ | 13 named, rest not listed |
| Typed data | prizes, teams, matches, rosters, transfers, brackets | transfers, brackets, matches, head-to-head | event, match, team, player, roster, prize |
| Change tracking | onlyNew, new or updated | new, updated, unchanged, removed | none, compare revisionId yourself |
| Revision id | on every row | not listed | on every record |
| Price | $17 page, $2 typed per 1,000 | $2 per record + $0.001 per run | $7.60 per record + $0.005 per run |
We are not the cheapest per page: clintsa charges $2 per 1,000 records and also lists head-to-head data, which this actor does not return. Our typed rows cost the same but each page row costs $17. This actor adds revision ids and a license on every row and never bills error or empty rows. parseforge/liquipedia-esports-wiki-scraper lists 24 wikis and $0.016 per result, with no typed rows.
๐ก Use cases
Tournament prize tables, team rosters over time, transfer tracking, bracket analysis and cross-game analytics.
๐ Run Liquipedia Scraper via API, schedule and integrations
curl -X POST "https://api.apify.com/v2/acts/RecordsData~liquipedia-esports-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"wiki":"valorant","searchQuery":"","category":"Teams","maxItems":50}'
Use the Apify API client, schedule runs, and connect results to Zapier, Make, n8n, Google Sheets or Airbyte.
๐ค Liquipedia Scraper MCP server for AI agents (Claude, Cursor, VS Code)
This URL exposes only this actor as a tool in any MCP client:
https://mcp.apify.com?tools=RecordsData/liquipedia-esports-scraper
Config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/liquipedia-esports-scraper"}}}
Example agent prompt: "Use the Liquipedia Scraper on the counterstrike wiki for the page Intel Extreme Masters/2025/Cologne with prizes and participants, then list the top four placements with their prize in USD."
Tool description: Fetches structured esports data from Liquipedia (63 game wikis): search hits, category members, parsed pages and typed prize, match, roster, transfer and bracket rows. Choose it for tournament prizes, rosters with join dates, team infobox fields, or pages changed since the last run. Keep maxItems low so agent runs stay cheap.
๐ก๏ธ Is it legal to scrape Liquipedia?
The actor reads public wiki content through Liquipedia's official MediaWiki API with a descriptive user agent, within the published rate limit. Liquipedia text is CC BY-SA 3.0, so credit Liquipedia when you republish it. It collects no private data and bypasses no login.
โ Frequently asked questions
Which page titles work for Liquipedia page records?
Use the exact page titles as they appear on the selected wiki, such as "Team Spirit" or "The International/2025". Redirects are followed, so "PSG.LGD" resolves to the current team page. If you are unsure of the exact titles, run a search or a category listing first.
Why does Liquipedia Scraper return 0 results?
The search had no hits, the category name is wrong, the page title does not exist on the selected wiki, or with onlyNew every page was already delivered. Check that the wiki matches the game. Empty runs finish successfully and bill nothing at all.
What is infoboxType in the Liquipedia data?
It is the template type of the infobox, for example team, player or league. The entityType column turns it into tournament, team, player or other, and the entityTypes input filters on it before anything is billed, so you never pay for pages of a kind you did not ask for.
Why is the Liquipedia Scraper not instant?
Liquipedia's API terms allow one request every 2 seconds, and the actor waits 2.1 seconds between requests. Search returns up to 50 hits and category listings up to 100 members per request, and page titles are fetched ten per request.
Can I scrape player, match or standings data from Liquipedia?
Yes, partly. Player and tournament pages work as page rows, and extractRecords adds prizes, participants, matches, rosters, team history, transfers and brackets as separate rows. Coverage depends on the wiki, because the data must be in the page source. Head-to-head records are not returned.
How many Liquipedia rows can I get on the free plan?
Free plan users get 10 rows per run, shared across all row types. Paid plans allow up to 1,000,000 rows per run. At Free plan prices, a 10-row preview of parsed team pages costs $0.17, which is enough to check the fields and the output format.
Will the Liquipedia Scraper stop at my budget?
Yes. When the Max total charge you set on the run is reached, the actor stops cleanly with the message "Stopped at your max charge limit" and keeps every row already saved. The cap translates directly into a maximum row count, since every page, hit and member is its own event.
Are error rows billed in Liquipedia Scraper?
No. Error rows, missing pages and pages without an infobox carry no charge. A page title that does not exist returns one free row with error: "Page not found on this wiki". You pay only for rows saved with real content, nothing else.
What happens if I send an empty or invalid input to Liquipedia Scraper?
An unknown wiki value is rejected by the platform with a 400 error before any run starts. If you clear searchQuery, category and pageTitles together, the run ends as SUCCEEDED with one free error row (errorType: invalid-input). Sending {} searches "The International" on the Dota 2 wiki, capped at 10 rows.
Which Liquipedia wikis does the scraper support?
It supports 63 wikis, including Dota 2, Counter-Strike, Valorant, League of Legends, Rocket League, Overwatch, StarCraft II, Call of Duty, Hearthstone, Chess and Fortnite. Slugs people guess, such as csgo, cs2 or lol, do not exist on Liquipedia: use counterstrike and leagueoflegends.
How do I get only new or changed Liquipedia pages?
Switch on onlyNew and set a stateKey. The first run returns every page with changeType new. Later runs with the same input skip unchanged pages at no charge and return edited pages as updated. Use resetSeen to forget the memory. Pages removed from the wiki are not reported.
What are the typed prize, match and roster rows, and what are their limits?
They are extra rows read from the page source with extractRecords, at $0.002 each. They only exist where Liquipedia puts the data in the page itself, so Dota 2 The International pool amounts and Valorant and League of Legends rosters return less or nothing.
Can I reuse Liquipedia data, and what attribution is needed?
Liquipedia content is CC-BY-SA 3.0. Credit Liquipedia, link to the source page and share derived text under the same license. Each row carries license, licenseUrl, url and revisionId for the exact page revision, so you can show where each value came from. This is general information, not legal advice.
What is the Liquipedia rate limit?
Liquipedia's API terms allow one request per 2 seconds with a custom user agent, and this actor waits 2.1 seconds between requests. The slower parse endpoint (one request per 30 seconds) is never used. On a 429 answer the actor retries after the delay Liquipedia asks for.
๐งฐ Want more gaming data? Other RecordsData scrapers
๐ฌ Support
Found a bug? Open the Issues tab or write to contact.punkrecordsdata@gmail.com. Custom solutions on request.
Last updated: 2026-10-11