lolalytics.com APIlolalytics.com ↗
Access League of Legends champion tier lists, win rates, pick/ban rates, and top-player leaderboards from LoLalytics via a structured JSON API.
curl -X GET 'https://api.parse.bot/scraper/bda1fe1e-fb28-4f5f-85dc-49b48e6b1fc4/get_champion_meta?lane=top&tier=emerald_plus&patch=16.12&queue=420®ion=all' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed Python client. Install the CLI, sign in, then pull this API’s generated client:
pip install parse-sdk parse login parse add --marketplace lolalytics-com-api
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.
"""Walkthrough: LoLalytics SDK — champion meta tier list and leaderboards."""
from parse_apis.LoLalytics_API import Lolalytics, Lane, Tier, Region, ChampionNotFound
client = Lolalytics()
# Get tier list meta for bottom lane champions
for champ in client.meta_reports.get(lane=Lane.BOTTOM, tier=Tier.EMERALD_PLUS, limit=5):
print(f"#{champ.rank} cid={champ.champion_id} WR={champ.win_rate}% PR={champ.pick_rate}%")
# Get the top Jinx players globally
top_player = client.champion_leaderboards.get(champion="jinx", region=Region.ALL, limit=1).first()
if top_player:
print(f"Best Jinx: {top_player.name} ({top_player.region}) — {top_player.win_rate}% WR in {top_player.games} games, tier={top_player.tier}")
# Typed error handling
try:
for p in client.champion_leaderboards.get(champion="invalidchamp", limit=1):
print(p.name)
except ChampionNotFound as exc:
print(f"Champion not found: {exc}")
print("exercised: meta_reports.get / champion_leaderboards.get / ChampionNotFound catch")
Retrieve tier list meta data for all champions, including win rate, pick rate, ban rate, rank, and tier grade. Supports filtering by lane, rank tier, and region. Returns all champions across all lanes when lane is set to 'all'. Each champion entry includes their tier grade (1=S+, 2=S, etc.), rank within their lane, and top player statistics.
| Param | Type | Description |
|---|---|---|
| lane | string | Filter by lane. |
| tier | string | Rank tier filter for data aggregation. |
| patch | string | Game patch version (e.g. '16.12', '16.11'). Omitting uses recent aggregate data. |
| queue | string | Queue type ID. 420 = Ranked Solo/Duo, 440 = Ranked Flex. |
| region | string | Server region filter. |
{
"type": "object",
"fields": {
"patch": "string",
"champions": "array of champion meta objects",
"total_analysed": "integer",
"average_win_rate": "number"
},
"sample": {
"data": {
"patch": "16.12",
"champions": [
{
"lane": "bottom",
"rank": 1,
"games": 355359,
"top_elo": 850,
"ban_rate": 26.22,
"lane_pct": 73.2,
"top_rank": 1,
"win_rate": 56.41,
"pick_rate": 19.21,
"tier_grade": 1,
"champion_id": 235,
"default_lane": "bottom",
"top_win_rate": "58.43"
}
],
"total_analysed": 18500080,
"average_win_rate": 51.76
},
"status": "success"
}
}About the lolalytics.com API
The LoLalytics API provides 2 endpoints covering League of Legends champion meta statistics and top-player leaderboard data. The get_champion_meta endpoint returns tier grades, win rates, pick rates, and ban rates for every champion, filterable by lane, rank tier, region, and patch. The get_champion_leaderboard endpoint surfaces up to 50 top players for a given champion, including their summoner name, win rate, games played, and ranked tier.
Champion Meta Endpoint
The get_champion_meta endpoint returns a list of champion meta objects covering the current or a specified patch. Each object includes the champion's tier grade (where 1 = S+), win rate, pick rate, and ban rate. The response also surfaces total_analysed (the number of games factored in) and average_win_rate for context. You can scope results using the lane parameter — pass 'all' to receive every champion across all lanes — and further filter by tier (rank bracket), region (server), queue (420 for Ranked Solo/Duo, 440 for Ranked Flex), and patch (e.g. '16.12'). Omitting patch returns data aggregated across recent patches.
Champion Leaderboard Endpoint
The get_champion_leaderboard endpoint accepts a required champion parameter (lowercase, no spaces or apostrophes — e.g. 'leesin', 'aurelionsol') and returns up to 50 player entries. Each entry includes the summoner name, region, win rate, total games on that champion, ranked tier, and lane distribution. The same lane, tier, patch, queue, and region filters available on the meta endpoint apply here as well, letting you narrow results to, for example, Challenger-tier jungle players on a specific patch.
Filtering and Patch Behavior
Both endpoints share a consistent parameter surface. When patch is omitted, the API uses aggregated recent data rather than a single patch snapshot — useful for smoothing out small sample sizes. The queue parameter distinguishes Solo/Duo ranked from Flex ranked, which can produce meaningfully different tier distributions for some champions. Region filtering lets you compare, say, Korean versus North American meta differences for the same champion on the same patch.
The lolalytics.com API is a managed, monitored endpoint for lolalytics.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lolalytics.com 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 lolalytics.com 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?+
- Build a champion tier list dashboard that refreshes win rate and tier grade data by patch and rank tier.
- Track meta shifts between patches by comparing pick rate and ban rate across consecutive patch versions.
- Identify off-meta champion picks by filtering
get_champion_metafor high win rate with low pick rate in a specific lane. - Populate a champion select tool with per-lane tier grades and ban rate data for draft recommendations.
- Find the highest win-rate players on a specific champion using leaderboard summoner names and games-played counts.
- Compare ranked Flex versus Solo/Duo meta by querying both queue types and diffing the tier grades.
- Build region-specific meta reports by querying the same champion and patch across multiple region values.
| 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 | 250 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 LoLalytics have an official developer API?+
What does the tier grade value in `get_champion_meta` represent?+
Does the leaderboard endpoint return more than 50 players?+
get_champion_leaderboard endpoint returns up to 50 player entries per request. Pagination and deeper player lists are not currently supported. The endpoint covers summoner name, region, win rate, games played, ranked tier, and lane distribution for those 50 entries. You can fork the API on Parse and revise it to add pagination support if you need a larger player set.Is individual champion matchup data (win rate versus a specific opponent) available?+
How current is the data returned by these endpoints?+
patch value is specified, the response reflects data for that patch. Omitting patch returns an aggregate across recent patches. Data freshness depends on LoLalytics' own update cadence, which typically tracks closely with each game patch cycle — roughly every two weeks.