OP APIop.gg ↗
Access OP.GG summoner profiles, match history, champion stats, mastery, leaderboards, and champion builds via a structured REST API.
What is the OP API?
The OP.GG API exposes 9 endpoints covering League of Legends summoner data, champion performance, and ranked leaderboards. Use get_summoner_match_history to retrieve up to 20 recent matches per call with per-game champion, KDA, items, runes, and team composition fields, or get_champion_build to pull current-patch rune pages, item sets, skill orders, and counter-pick data for any champion by position and rank tier.
curl -X GET 'https://api.parse.bot/scraper/a11058bd-d7ba-443d-b6b0-d28a13c48742/search_summoner?query=Faker®ion=na' \ -H 'X-API-Key: $PARSE_API_KEY'
Full-text search for summoners by name and region. Returns matching summoner profiles with game name, tagline, rank, and thumbnail. Results are not paginated; server returns all matches.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword (summoner name or partial name) |
| region | string | Region code |
{
"type": "object",
"fields": {
"summoners": "array of summoner summary objects with gameName, tagline, href, ranked, thumbnail, teamInfo"
},
"sample": {
"data": {
"summoners": [
{
"href": "/summoners/kr/Faker-1God",
"ranked": "Level 152",
"tagline": "1God",
"gameName": "Faker",
"teamInfo": null,
"highlight": "<b>Faker</b>",
"thumbnail": "https://opgg-static.akamaized.net/meta/images/profile_icons/profileIcon6637.jpg"
}
]
},
"status": "success"
}
}About the OP API
Summoner Data
The search_summoner endpoint accepts a partial or full summoner name plus an optional region code and returns an array of matching profiles, each with gameName, tagline, ranked status, and a thumbnail URL. Once you have an exact name and tag, get_summoner_profile and get_summoner_ranked_stats return the summoner's level, PUUID, current rank and LP (rank_summary), win/loss record, and a champions_summary string listing top champions with win rates. Both endpoints return null for optional fields when no data is available for that summoner.
Match History and Champion Stats
get_summoner_match_history returns up to 20 matches per call. Each match object includes game_type, game_length, game_result, champion played, position, per-game stats, items, runes, spells, and full team compositions. Pass the ended_at ISO timestamp from the oldest match in a response as the pagination cursor to fetch earlier games. You can also filter by champion name or game_type. get_summoner_champion_stats aggregates the current ranked season into per-champion rows with play count, win_rate, kda, cs, and cs_per_min. get_summoner_season_history returns the list of season IDs a summoner has data for, ordered newest to oldest.
Champion Builds and Leaderboards
get_champion_build requires a lowercase, space-free champion slug (e.g., leesin, drmundo) and accepts optional position, tier, and region filters. The response includes runes (primary style, sub style, individual rune selections, shards, pick/win rates), boots, ban_rate, win_rate, pick_rate, and counters — split into weak_against and strong_against arrays with champion keys and rates — all tagged to the current patch. The position field in the response will be null if the site has no data for the requested lane.
Mastery and Leaderboards
get_summoner_mastery returns every champion a summoner has mastery on, with level, points, tokens_earned, grades, and last_played_at timestamps. get_leaderboard returns up to 100 summoners for a given region and tier, with each entry containing name and tag fields alongside a total count.
The OP API is a managed, monitored endpoint for op.gg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when op.gg 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 op.gg 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?+
- Track a summoner's ranked climb by polling
get_summoner_profilefor rank and LP changes over time. - Build a post-game analyzer using
get_summoner_match_historyitems, runes, and KDA fields to surface performance trends. - Generate champion tier lists by aggregating
win_rateandpick_ratefields fromget_champion_buildacross multiple champions and positions. - Display server-wide top-player rankings for a region by calling
get_leaderboardwith a specific tier. - Show a player's champion mastery depth on a profile page using
level,points, andlast_played_atfromget_summoner_mastery. - Suggest counter-picks in a draft tool using the
counters.strong_againstarray fromget_champion_build. - Audit a summoner's seasonal champion pool using
get_summoner_champion_statsfiltered bywin_rateandplaycount.
| 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 OP.GG have an official developer API?+
How does pagination work in get_summoner_match_history?+
created_at timestamp from the last match in the current response and pass it as the ended_at parameter in the next call. Continue until the returned matches array is empty, which indicates no further history is available for the specified filters.Does the API cover TFT (Teamfight Tactics) or other OP.GG game modes?+
What does get_champion_build return when I request a position the site has no data for?+
position field in the response will be null and the build data served will reflect the champion's most common or default position. The patch, runes, boots, and counters fields are still populated based on available data.Does the API return live in-game data or spectator information for active matches?+
get_summoner_match_history and aggregate statistics. You can fork this API on Parse and revise it to add a live-game endpoint if that data is available on OP.GG for a given summoner.