League of Graphs APIleagueofgraphs.com ↗
Access League of Legends and TFT player stats, champion build data, live game status, and leaderboards from League of Graphs via 8 structured endpoints.
What is the League of Graphs API?
The League of Graphs API exposes 8 endpoints covering League of Legends and Teamfight Tactics data including summoner profiles, champion statistics, ranked leaderboards, and build recommendations. The get_lol_summoner_details endpoint returns a player's current rank, LP, peak season history across queues, and up to several recent matches with KDA, champion, result, and duration — all in a single call.
curl -X GET 'https://api.parse.bot/scraper/a37a789e-d312-4d4e-b7cc-9407bfc6963f/get_lol_summoner_details?name=Faker-KR1®ion=kr' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve a summoner's profile including current rank tier and recent match history in one page fetch. Each match includes the champion played, result, KDA, game type, and duration. peak_ranks lists the player's season history: one row per season and ranked queue (e.g. Ranked Solo/Duo and Ranked Flex appear as separate rows for the same season) with the peak tier reached, the tier held at season end, and the peak LP. The site only publishes peak LP for Master, GrandMaster and Challenger peaks, so lp is an empty string for lower tiers and for older seasons. The summoner is identified by Riot ID (Name#Tag or Name-Tag format) and region. Returns empty match_history and peak_ranks arrays if the profile exists but has no recent games or season history; an unknown Riot ID yields a not-found error.
| Param | Type | Description |
|---|---|---|
| namerequired | string | Summoner Riot ID (format: Name-Tag or Name#Tag, e.g. Faker-KR1) |
| region | string | Region code for the summoner's server |
{
"type": "object",
"fields": {
"name": "string, the summoner Riot ID as provided",
"rank": "object with tier (string, e.g. 'Emerald IV' or 'Challenger') and lp (string such as '2090 LP'; empty when the site shows no LP)",
"region": "string, the region queried",
"peak_ranks": "array of season-history rows, one per season and queue: season (string, e.g. '13 (Split 2)' or '2025'), queue (string, e.g. 'Ranked Solo/Duo' or 'Ranked Flex'), tier (string, peak tier reached), lp (string, peak LP; empty unless the peak was Master or above), end_tier (string, tier held at season end)",
"match_history": "array of match objects with champion, result, kda, type, duration"
},
"sample": {
"data": {
"name": "SEMZ#NA1",
"rank": {
"lp": "",
"tier": "Emerald IV"
},
"region": "na",
"peak_ranks": [
{
"lp": "",
"tier": "Emerald II",
"queue": "Ranked Solo/Duo",
"season": "13 (Split 2)",
"end_tier": "Emerald IV"
},
{
"lp": "",
"tier": "Gold III",
"queue": "Ranked Flex",
"season": "13 (Split 2)",
"end_tier": "Gold III"
},
{
"lp": "",
"tier": "Diamond IV",
"queue": "Ranked Solo/Duo",
"season": "2025",
"end_tier": "Emerald III"
}
],
"match_history": [
{
"kda": "19/6/8",
"type": "Soloqueue",
"result": "Defeat",
"champion": "Quinn",
"duration": "35min 51s"
},
{
"kda": "10/6/11",
"type": "Soloqueue",
"result": "Victory",
"champion": "Quinn",
"duration": "30min 8s"
}
]
},
"status": "success"
}
}About the League of Graphs API
Summoner Profiles and Live Status
Look up any summoner by Riot ID (Name#Tag or Name-Tag format) using get_lol_summoner_details, which returns the player's current rank.tier, rank.lp, and a match_history array covering recent games. Each match entry includes champion played, win/loss result, KDA string, game type, and duration. The peak_ranks field lists one row per season and queue (e.g. 13 (Split 2), Ranked Solo), giving a full seasonal history. To check whether a player is actively in a game right now, get_lol_live_game returns an in_game boolean and a plain status string without requiring any additional parameters beyond the summoner name and optional region.
Champion Statistics and Builds
get_lol_champion_stats returns approximately 210 rows — one per champion — with win_rate, pick_rate, ban_rate, KDA, primary role, tier classification, and a slug field. That slug feeds directly into get_lol_champion_build, which returns the recommended build for that champion: starting_build, core_build, boots, final_item_options, summoner_spells, runes (primary tree, secondary tree, and stat shards), and skill_order (both a priority array and an 18-level sequence). The sort_by parameter on get_lol_champion_stats lets you order the full list by popularity (default) or win rate.
Rankings and Leaderboards
get_lol_rankings returns roughly 100 players per page with rank position, summoner Riot ID, region, LP string, and tier. Use the page integer and optional region filter to paginate through challenger and high-elo ladders. get_tft_rankings works the same way for Teamfight Tactics but additionally includes wins and played counts per player. get_tft_champion_stats returns a flat list of every TFT champion in the current set, with championName and championSlug.
Batch Player Ranking
rank_lol_players accepts a comma-separated list of 1–64 Riot IDs, fetches a profile for each, and returns them sorted by a chosen metric (via sort_by). The response includes a players array with tier, display_name, and the ranking metric, plus a failed array for unresolvable profiles and a not_processed array for IDs that exceeded the call's time budget. Resubmit any IDs listed in not_processed in a follow-up call.
The League of Graphs API is a managed, monitored endpoint for leagueofgraphs.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when leagueofgraphs.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 leagueofgraphs.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 solo queue tier list by pulling win and pick rates from get_lol_champion_stats sorted by win_rate
- Display a player's ranked history across seasons using peak_ranks from get_lol_summoner_details
- Show live game alerts for tracked players by polling get_lol_live_game for in_game status
- Render region-specific challenger leaderboards with get_lol_rankings filtered by region and paginated
- Generate champion build pages using item IDs, rune selections, and skill_order from get_lol_champion_build
- Compare a group of friends' ranked performance by submitting their Riot IDs to rank_lol_players
- Track TFT high-elo players by wins and games played using get_tft_rankings with region filtering
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does League of Graphs have an official developer API?+
What does get_lol_champion_build return, and where does the champion slug come from?+
champion parameter is the slug value found in the slug field of each entry returned by get_lol_champion_stats.How does pagination work for the rankings endpoints?+
page integer. Omitting the parameter or passing 1 returns ranks 1–100; page 2 returns 101–200, and so on. Both also accept an optional region string to filter to a specific server. The response includes the page and region values that were applied.Does the API expose detailed TFT match history or summoner profiles for TFT players?+
Are there any limitations when using rank_lol_players with large batches?+
failed array with a status of not_found or error. IDs that exceeded the call's time budget appear in not_processed and should be resubmitted in a separate call.