Liquipedia APIliquipedia.net ↗
Access Liquipedia esports data via API: match schedules, team rosters, player profiles, tournament results, and Valorant agent stats across CS, LoL, and Dota 2.
What is the Liquipedia API?
The Liquipedia API exposes esports data across 4 endpoints covering Valorant, Counter-Strike, League of Legends, and Dota 2. Use get_upcoming_matches to pull live and recent match schedules with scores and start times, get_team_roster to retrieve active rosters from any supported wiki, or get_valorant_agent_stats for per-tournament agent pick rates and player performance figures. Counter-Strike player bios, team rosters, and tournament placements are all available through get_cs_esports_data.
curl -X GET 'https://api.parse.bot/scraper/4ee21497-024f-4570-b075-97b9fd21ae78/get_valorant_agent_stats?tournament_path=VCT%2F2025%2FChampions%2FStatistics' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace liquipedia-net-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.liquipedia_esports_api import Liquipedia, Wiki, Match, Roster, ValorantStat, MapStat
client = Liquipedia()
# Get upcoming esports matches across all games
for match in client.matches.list():
print(match.game, match.team1, "vs", match.team2, match.start_time_ph, match.tournament)
# Get a team roster from a specific wiki
roster = client.rosters.get(team="T1", wiki=Wiki.LEAGUE_OF_LEGENDS)
print(roster.team, roster.wiki)
for player in roster.roster:
print(player.id, player.name, player.position, player.join_date)
# Get Valorant tournament map statistics
stats = client.valorantstats.get(tournament_path="VCT/2025/Champions/Statistics")
print(stats.tournament)
for map_stat in stats.map_stats:
print(map_stat.map_name, map_stat.total)
# Query Counter-Strike player data
result = client.csresults.query(player="s1mple")
print(result.player.name, result.player.info)
Extract Valorant agent usage statistics and map play counts from a tournament statistics page on Liquipedia. Returns agent pick rates (when available), individual player stats, and map play counts. The page must use the exact Liquipedia wiki path. Returns stale_input if the tournament page does not exist.
| Param | Type | Description |
|---|---|---|
| tournament_path | string | Tournament statistics page path on the Valorant wiki (e.g. VCT/2025/Champions/Statistics, VCT/2024/Stage_1/Masters/Statistics). Must match the exact Liquipedia page title. |
{
"type": "object",
"fields": {
"map_stats": "array of MapStat objects with map name and total play count",
"tournament": "string - the tournament path used"
},
"sample": {
"data": {
"map_stats": [
{
"Map": "Abyss",
"Total": "15×",
"Playoffs": "5×",
"Group Stage": "10×"
},
{
"Map": "Ascent",
"Total": "16×",
"Playoffs": "9×",
"Group Stage": "7×"
}
],
"tournament": "VCT/2025/Champions/Statistics"
},
"status": "success"
}
}About the Liquipedia API
Match Schedules and Roster Data
get_upcoming_matches returns a chronological array of match objects, each with game, team1, team2, score, and start_time_ph fields. Coverage spans Valorant, Counter-Strike, League of Legends, and Dota 2, with results starting from the last hour. No filtering parameters are accepted — all four games are returned in a single call.
get_team_roster accepts a team page name and a wiki slug (leagueoflegends, valorant, counterstrike, or dota2). The response includes each player's ID, Name, and Join Date. Some wikis also return a Position field; others do not. If the team page does not exist on Liquipedia, the endpoint returns a stale_input error rather than an empty array.
Counter-Strike and Valorant Specifics
get_cs_esports_data accepts up to three independent parameters — team, player, and tournament — and returns whichever objects correspond to the params you provide. A team response includes the roster as an array of {ID, Name, Join Date} objects. A player response includes a name string and an info object with biographical key-value pairs drawn from the Liquipedia infobox (nationality, birth date, team history, etc.). A tournament response includes placement results. At least one parameter is required.
get_valorant_agent_stats targets a specific tournament statistics page via the tournament_path parameter, which must match the exact Liquipedia page title. The data object contains agent_stats — an array of {agent, players_using, usage_rate} objects — alongside player_stats with individual performance figures and map play counts for the tournament. If the page does not exist, the endpoint returns stale_input.
The Liquipedia API is a managed, monitored endpoint for liquipedia.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when liquipedia.net changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official liquipedia.net API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display live match countdowns by polling
get_upcoming_matchesfor start times across all four supported games - Build a CS2 team tracker that shows current roster members and join dates using
get_cs_esports_datawith theteamparam - Pull player biographies for fantasy esports apps via the
playerparam inget_cs_esports_data - Analyze Valorant agent meta trends by comparing
usage_ratevalues across multiple tournaments withget_valorant_agent_stats - Track tournament standings and placement results for Counter-Strike events using
get_cs_esports_datawith thetournamentparam - Sync multi-game roster pages by querying
get_team_rosterwith the appropriatewikislug for each title - Identify which agents specific players favor by cross-referencing
player_statsfromget_valorant_agent_stats
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Liquipedia have an official developer API?+
What does `get_cs_esports_data` return when I pass all three parameters at once?+
team (with roster), player (with infobox fields), and tournament (with placement results) — in a single response. Each object is only present when its corresponding parameter is supplied. You can pass one, two, or all three in a single request.How specific does `tournament_path` need to be for `get_valorant_agent_stats`?+
stale_input rather than partial data.Does the API cover game titles beyond Valorant, Counter-Strike, League of Legends, and Dota 2?+
get_team_roster accepts only the wiki slugs leagueoflegends, valorant, counterstrike, and dota2. Liquipedia hosts wikis for many other games (Rocket League, PUBG, StarCraft, etc.) that are not covered here. You can fork this API on Parse and revise it to add endpoints targeting those additional wikis.Is historical match data available through `get_upcoming_matches`?+
get_cs_esports_data with a tournament param for historical placement results in Counter-Strike. You can fork the API on Parse and revise it to add a dedicated historical match history endpoint for other games.