Discover/OP API
live

OP APIop.gg

Access OP.GG summoner profiles, match history, champion stats, mastery, builds, and leaderboards via a structured REST API with 9 endpoints.

Endpoint health
verified 21h ago
get_summoner_mastery
get_summoner_ranked_stats
get_summoner_season_history
search_summoner
get_summoner_match_history
9/9 passing latest checkself-healing
Endpoints
9
Updated
22d ago

What is the OP API?

The OP.GG API exposes 9 endpoints covering League of Legends summoner data, from ranked profiles and match history to champion builds and regional leaderboards. The get_summoner_match_history endpoint returns up to 20 recent matches per call with KDA, items, runes, and team compositions, while get_champion_build surfaces pick rates, win rates, and recommended rune pages for any champion by position and tier.

Try it
Search keyword (summoner name or partial name)
Region code
api.parse.bot/scraper/a11058bd-d7ba-443d-b6b0-d28a13c48742/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/a11058bd-d7ba-443d-b6b0-d28a13c48742/search_summoner?query=Faker&region=na' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 op-gg-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.

"""OP.GG SDK — League of Legends player statistics and champion builds."""
from parse_apis.op_gg_api import (
    OPGG, Region, GameType, LeaderboardTier, Position, BuildRegion, SummonerNotFound
)

client = OPGG()

# Search for summoners by name
for summoner in client.summoners.search(query="Faker", region=Region.KR, limit=3):
    print(summoner.game_name, summoner.tagline, summoner.ranked)

# Get a summoner's full profile
profile = client.summoners.get_profile(name="Faker", tag="1God", region=Region.KR)
print(profile.name, profile.tag, profile.level, profile.rank_summary)

# Get match history filtered by game type
for match in client.summoners.get_match_history(
    name="never type", tag="1998", region=Region.NA, game_type=GameType.SOLORANKED, limit=3
):
    print(match.champion.name, match.game_result, match.stats.kda.kill, match.stats.kda.death)

# Get leaderboard for a region
for entry in client.leaderboardentries.list(region=Region.NA, tier=LeaderboardTier.CHALLENGER, limit=5):
    print(entry.name, entry.tag)

# Get champion build recommendations
try:
    build = client.championbuilds.get(
        champion="ahri", position=Position.MID, region=BuildRegion.KR
    )
    print(build.champion, build.position, build.win_rate, build.patch)
    print(build.runes[0].primary_style, build.runes[0].primary_runes)
except SummonerNotFound as exc:
    print(f"Not found: {exc}")

print("exercised: summoners.search / get_profile / get_match_history / leaderboardentries.list / championbuilds.get")
All endpoints · 9 totalmissing one? ·

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.

Input
ParamTypeDescription
queryrequiredstringSearch keyword (summoner name or partial name)
regionstringRegion code
Response
{
  "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 Profiles and Ranked Data

The search_summoner endpoint accepts a partial name and optional region code, returning an array of matching summoner objects with gameName, tagline, ranked tier, and thumbnail. From there, get_summoner_profile and get_summoner_ranked_stats both accept a name and tag pair (e.g., name=Faker, tag=KR1) and return rank_summary, win_loss_summary, level, puuid, and a champions_summary string. Optional fields return null when OP.GG has no data for that summoner yet.

Match History and Champion Statistics

get_summoner_match_history returns up to 20 matches per request. Each match object includes champion, position, game_result, game_length, game_type, stats, items, runes, spells, and a created_at timestamp. Pass the ended_at cursor (an ISO timestamp from the last match's created_at) to paginate backward through older games. You can also filter by champion name or game_type. get_summoner_champion_stats returns per-champion aggregates for the current ranked season: play count, win_rate, kda, cs, and cs_per_min.

Champion Builds and Leaderboards

get_champion_build takes a champion string in lowercase-no-spaces format (e.g., leesin, drmundo) along with optional position, tier, and region filters. The response includes runes, core_builds, boots, ban_rate, win_rate, pick_rate, and the current patch version. Each rune page object contains primary_style, sub_style, primary_runes, sub_runes, and shards alongside aggregated games and win_rate. get_leaderboard returns up to 100 summoner name and tag pairs for a specified region and tier.

Mastery and Season History

get_summoner_mastery returns every champion a summoner has mastery on, with fields including level, points, tokens_earned, grades, champion_image_url, and last_played_at. get_summoner_season_history returns an ordered array of integer season IDs the summoner has data for, which can be used to scope historical queries.

Reliability & maintenanceVerified

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.

Last verified
21h ago
Latest check
9/9 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track a summoner's ranked climb by polling get_summoner_profile for rank_summary and win_loss_summary over time.
  • Build a champion-select helper that pulls get_champion_build rune pages and core_builds filtered by position and tier.
  • Populate a post-game review tool with get_summoner_match_history KDA, items, and runes for each recent game.
  • Generate champion pool reports from get_summoner_champion_stats win_rate and cs_per_min for a given player.
  • Display regional top-100 leaderboards using get_leaderboard with configurable tier and region inputs.
  • Show a player's mastery progression using get_summoner_mastery points, level, and last_played_at per champion.
  • Identify ban-worthy champions in a given rank tier by sorting get_champion_build results by ban_rate.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does OP.GG have an official developer API?+
OP.GG does not publish a public developer API. This Parse API provides structured access to OP.GG data across summoner profiles, match history, champion stats, and builds.
How does pagination work in get_summoner_match_history?+
The endpoint returns up to 20 matches per call. To load older games, pass the created_at value from the last match in the current response as the ended_at parameter in the next request. Repeat until the returned matches array is empty.
Does the API cover TFT (Teamfight Tactics) player data?+
Not currently. All 9 endpoints cover League of Legends summoner data — profiles, ranked stats, match history, champion builds, mastery, and leaderboards. You can fork this API on Parse and revise it to add endpoints targeting TFT-specific data.
What does get_champion_build return for rune recommendations?+
The runes array contains one object per rune page variant, each with primary_style, sub_style, primary_runes, sub_runes, and shards, plus aggregate pick_rate, win_rate, and games counts. Results reflect the specified position and tier filters, defaulting to aggregated data when those params are omitted.
Does the API expose live in-game data or spectator feeds?+
Not currently. The API covers completed match history (via get_summoner_match_history), ranked standings, champion builds, and mastery — all post-game or aggregated data. You can fork this API on Parse and revise it to add an endpoint for live game state if OP.GG exposes that view.
Page content last updated . Spec covers 9 endpoints from op.gg.
Related APIs in SportsSee all →
leagueofgraphs.com API
Access League of Legends and Teamfight Tactics player statistics, rankings, and match histories. Look up summoner profiles, champion performance data, live game status, and competitive standings across both game modes and all supported regions.
lolpros.gg API
Search and discover professional League of Legends players while exploring detailed profiles, ladder rankings, and competitive statistics from the pro scene. Track player performance metrics, find competitors by name, and monitor where top players stand in the rankings.
dpm.lol API
Look up League of Legends champion builds, tier lists, and leaderboard rankings from dpm.lol to optimize your gameplay. Search through champion data and discover the best builds for any champion you want to master.
opendota.com API
Access detailed Dota 2 match statistics, player performance metrics, hero win rates, and professional tournament data to analyze gameplay trends and competitive performance. Search for specific players, explore custom data queries through SQL, and retrieve comprehensive match histories to improve your understanding of the game.
tracker.gg API
Track Valorant player profiles, match histories, competitive rankings, and agent performance statistics from tracker.gg. Search leaderboards, analyze player segments, view daily game data, and access comprehensive reference information covering all Valorant-related data available on the platform.
rib.gg API
Access comprehensive Valorant competitive data including match results, player statistics, team information, and tournament details with powerful search and filtering capabilities. Track player performance history, view rankings, discover free agents, and analyze in-depth match rounds and analytics all in one place.
mlbb.io API
Access real-time Mobile Legends hero statistics, tier rankings, optimal builds, and emblem recommendations to make informed gameplay decisions. Search for specific heroes and view comprehensive data including item lists and competitive tier placements to optimize your strategy.
csstats.gg API
Access Counter-Strike 2 player statistics, match history, and leaderboard rankings from csstats.gg. Search players by Steam ID or name, retrieve detailed performance metrics and recent match results, explore scoreboard data, view played-with history, and check global ban statistics.