Liquipedia Esports Events, Matches, Teams & Players Scraper
Pricing
from $4.56 / 1,000 item extracteds
Liquipedia Esports Events, Matches, Teams & Players Scraper
Export structured Liquipedia esports events, matches, teams, players, rosters, prizes, scores, and source revision records.
Pricing
from $4.56 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Export structured Liquipedia esports events matches teams and players records for tournament research, roster analysis, result tracking, and revision-aware data pipelines.
The Actor uses Liquipedia's official MediaWiki API. It turns wiki templates and rendered bracket data into typed event, match, team, player, roster, prize, page, and revision rows.
Supply exact Liquipedia URLs or titles, search a game wiki, browse one category, or include tournament subpages. Every result retains its source URL, source revision, timestamp, and CC BY-SA attribution.
What can this Liquipedia scraper do?
- Extract tournament metadata from event infoboxes.
- Export bracket matches with teams, scores, dates, and status.
- Normalize team and player profile infoboxes.
- Turn roster templates into one row per player entry.
- Capture placements and prize fields when the page exposes them.
- Record the exact page and revision behind every extraction.
- Search a selected game wiki through MediaWiki search.
- Discover exact category members.
- Follow tournament subpages within a bounded page limit.
- Optionally include raw wikitext for archival or custom parsing.
The default dataset is ready for JSON, CSV, Excel, API, webhook, and scheduled-run workflows.
Who is it for?
Esports analysts can refresh tournament schedules, brackets, results, and roster datasets.
Team and player researchers can compare current profiles and source revisions across scheduled runs.
Data engineers can feed attributed wiki records into warehouses, dashboards, notebooks, and monitoring jobs.
Publishers and community teams can create source-linked event and matchup tables without copying rendered pages by hand.
Scouting and competitive-intelligence teams can export structured participant and roster data for further analysis.
Why use this Actor?
Liquipedia pages mix MediaWiki templates, transclusion, and LPDB-backed rendered brackets. A plain HTML selector or generic page downloader does not produce stable typed records.
This Actor:
- Uses the documented API instead of automating generated HTML pages.
- Respects the published two-second API gate and 30-second parse gate.
- Batches revision requests where the API permits it.
- Extracts typed records instead of returning only a large HTML body.
- Keeps stable page IDs, revision IDs, canonical URLs, and attribution.
- Fails clearly on malformed inputs and upstream API errors.
Supported game wikis
The input selector includes major Liquipedia wikis such as:
- Dota 2
- Counter-Strike
- Valorant
- League of Legends
- Rocket League
- Rainbow Six
- Overwatch
- StarCraft and StarCraft II
- Apex Legends
- PUBG
- Mobile Legends
- Warcraft and World of Warcraft
- and the other game values listed in the input schema
A run processes one game wiki so that titles, search results, and categories remain unambiguous.
What data is extracted?
| Record type | Typical fields |
|---|---|
event | name, dates, status, series, location, prize pool, template data |
match | opponents, scores, scheduled time, completion status, best-of value |
team | name, region, location, website, social handles, source template data |
player | handle, real name, nationality, role, team, profile fields |
roster | player, team context, role/position, join date, leave date |
prize | placement, prize, currency, participant data |
revision | page ID, revision ID, timestamp, editor/comment metadata, categories |
page | source identity for pages without a recognized entity template |
Fields that do not apply to a record type are omitted. The complete normalized template content remains available in data.
Getting started
- Open the Actor in Apify Console.
- Select a
wiki, for exampledota2. - Choose exactly one route:
urlsorpageTitles;searchQuery; orcategory.
- Set
maxPagesandmaxItemsfor the desired scope. - Enable
includeSubpagesfor a tournament overview when stage pages are needed. - Click Start.
- Open the default dataset and select the Esports records view.
- Export JSON, CSV, XML, RSS, or Excel, or retrieve results through the API.
A good first run is:
{"wiki": "dota2","urls": ["https://liquipedia.net/dota2/The_International/2024/Main_Event"],"maxPages": 1,"maxItems": 100}
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
wiki | string | dota2 | Selected Liquipedia game wiki. |
urls | string[] | Main Event example | Exact public wiki page URLs. |
pageTitles | string[] | — | Exact titles such as Team Liquid or Nisha. |
searchQuery | string | — | MediaWiki full-text search query. |
category | string | — | Exact category name, with or without Category:. |
includeSubpages | boolean | false | Include matching title subpages up to maxPages. |
includeRawWikitext | boolean | false | Attach source wikitext to revision rows. |
maxPages | integer | 10 | Maximum source pages, from 1 to 50. |
maxItems | integer | 20 | Maximum saved records, from 1 to 5,000. |
Use only one discovery route per run. URLs and exact titles may be combined because both identify explicit pages.
Output example
This abbreviated record comes from a real local Main Event run:
{"recordId": "dota2:145966:2419892:rendered-match:1","type": "match","wiki": "dota2","pageTitle": "The International/2024/Main Event","name": "Xtreme Gaming vs Team Liquid","date": "2024-09-08T08:00:00.000Z","status": "finished","team1": "Xtreme Gaming","team2": "Team Liquid","score1": "0","score2": "2","revisionId": 2419892,"source": "Liquipedia","sourceUrl": "https://liquipedia.net/dota2/The_International/2024/Main_Event","license": "CC BY-SA 3.0"}
Record IDs include wiki, page, revision, type, and sequence. They are useful for revision-aware imports and deduplication.
How much does it cost to export Liquipedia esports records?
The Actor uses pay-per-event pricing:
- Start: $0.005 once per run.
- Item: $0.0076 per saved record at the BRONZE tier.
At that tier, 10 records cost about $0.081, 100 records about $0.765, and 1,000 records about $7.605 including the start event.
Apify applies account-tier prices automatically. The Console shows the applicable price before a run. Only records saved to the dataset incur the item event; rejected, duplicate, missing, or failed pages are not item events.
Rendered match pages can run longer because Liquipedia requires a 30-second interval between expensive parse requests. This affects runtime, not the number of item events.
Tournament and match workflow
Use an exact stage URL when match rows are the priority:
{"wiki": "dota2","urls": ["https://liquipedia.net/dota2/The_International/2024/Main_Event"],"maxPages": 1,"maxItems": 100}
Use the overview URL with includeSubpages when you need several linked stage pages:
{"wiki": "dota2","pageTitles": ["The International/2024"],"includeSubpages": true,"maxPages": 8,"maxItems": 500}
Subpages are bounded by maxPages. Set the page limit deliberately because each match-bearing page must respect Liquipedia's parse interval.
Team and roster workflow
Exact titles are efficient for recurring roster jobs:
{"wiki": "dota2","pageTitles": ["Nisha", "Team Liquid"],"maxPages": 2,"maxItems": 200}
Schedule the same input daily or weekly. Compare revisionId with the prior dataset before processing deeper fields.
Roster templates may contain current and historical members. Use the source template fields, join/leave dates, and revision ID when deciding which entries belong in a downstream current-roster view.
Search and category workflow
Search finds ranked page titles before extraction:
{"wiki": "dota2","searchQuery": "The International 2024","maxPages": 5,"maxItems": 100}
Category mode uses an exact MediaWiki category:
{"wiki": "dota2","category": "Players","maxPages": 20,"maxItems": 500}
Category membership and page content change over time. Preserve revision fields when building snapshots.
Scheduling and monitoring changes
Create an Apify Schedule with a stable explicit-title or URL input.
A practical change pipeline is:
- Run the Actor on a schedule.
- Read revision records first.
- Compare
pageIdandrevisionIdwith the previous successful run. - Process entity rows only for changed pages.
- Send changed rows to a webhook, database, or automation platform.
The Actor exports snapshots. It does not retain prior runs or send alerts by itself.
API usage with cURL
Start a run and wait for its dataset:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~liquipedia-esports-wiki-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"wiki":"dota2","pageTitles":["Nisha"],"maxPages":1,"maxItems":20}'
For larger jobs, start asynchronously and poll the run status rather than holding one HTTP connection.
API usage with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/liquipedia-esports-wiki-scraper').call({wiki: 'dota2',urls: ['https://liquipedia.net/dota2/The_International/2024/Main_Event'],maxPages: 1,maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((item) => item.type === 'match'));
API usage with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/liquipedia-esports-wiki-scraper').call(run_input={'wiki': 'dota2','pageTitles': ['Nisha', 'Team Liquid'],'maxPages': 2,'maxItems': 200,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint([item for item in items if item['type'] in ('player', 'team', 'roster')])
Use with Apify MCP
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/liquipedia-esports-wiki-scraper"
Claude Desktop, Cursor, and VS Code can use this MCP server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/liquipedia-esports-wiki-scraper"}}}
Example prompts:
- “Export The International 2024 Main Event match scores from Liquipedia.”
- “Get the Liquipedia Dota 2 profiles and roster records for Nisha and Team Liquid.”
- “Search the Valorant wiki for VCT 2026 event pages and return revision IDs.”
Integrations
Connect the dataset to:
- Google Sheets or Microsoft Excel for analyst review;
- webhooks for revision-change processing;
- Make, Zapier, or n8n for scheduled workflows;
- BigQuery, Snowflake, PostgreSQL, or object storage;
- Python/R notebooks and BI tools;
- Apify dataset exports and REST API clients.
Use type to route heterogeneous records into separate destination tables.
Legality and responsible use
Liquipedia content is licensed under CC BY-SA 3.0. Keep attribution and comply with share-alike requirements when redistributing adapted content. Every row includes Liquipedia attribution and a source URL.
The Actor follows Liquipedia's MediaWiki API terms: custom identification, gzip transport, at most one API request per two seconds, and at most one parse request per 30 seconds. It does not automate generated HTML pages.
You are responsible for your downstream use, publication, retention, and compliance. Do not remove attribution or use the data to misrepresent Liquipedia, teams, players, or event organizers.
Source templates and page structures can change. Validate critical decisions against the linked source page.
Troubleshooting
Why did my run fail before requesting Liquipedia?
The input must contain one route only. Remove extra searchQuery or category values when using URLs/titles. Confirm that every URL belongs to the selected wiki.
Why did a valid search return no rows?
Search can naturally return no matching page. Try a shorter exact event/player phrase, verify the game wiki, and increase maxPages only when relevant results exist.
Why is a match-page run slower than a profile run?
Rendered brackets depend on Liquipedia's expensive parse operation. The Actor enforces the required 30-second interval. Team/player revision queries are batchable and normally faster.
Why are some optional fields absent?
Liquipedia templates differ by game, era, and entity type. The Actor omits unavailable normalized fields and preserves recognized template values in data.
Can I use raw wikitext?
Enable includeRawWikitext. It is attached only to revision records and can make datasets much larger.
Does the Actor bypass blocks with proxies?
No. The documented direct API works and generated-page automation is prohibited. The Actor does not expose an automatic residential or browser fallback.
FAQ
Does it support multiple game wikis in one run?
No. Run one wiki at a time so discovery and titles remain deterministic. Multiple runs can execute concurrently if they still respect each source's API usage.
Are results live scores?
Results reflect the current source revision when fetched. The Actor is not a live push feed and does not promise sub-minute updates.
Does it download images or media?
No. It may preserve source template image names or URLs as text, but it does not download media assets.
Are revision rows charged separately?
All saved rows use the same item event. There is no separate revision, match, roster, or prize event.
Can I export only matches?
Use an exact stage/main-event URL and filter the default dataset by type=match downstream. All emitted source revision context remains in the same run dataset.
Related automation-lab Actors
For broader sports workflows, explore other public automation-lab Actors in the Apify Store. Choose a source-specific Actor when you need official schedules or statistics outside Liquipedia, and combine datasets by source URL and event identity in your pipeline.
This Actor intentionally focuses on Liquipedia's public esports wiki data rather than claiming unrelated sports feeds or private APIs.