Register an app at developer.riotgames.com and obtain an API key; development keys expire daily, production keys require an application.
Resolve the player's PUUID by calling GET https://<PLATFORM>.api.riotgames.com/riot/account/v1/accounts/by-riot-id/<GAMENAME>/<TAGLINE> with header X-Riot-Token: <API_KEY>, where PLATFORM is one of the regional clusters (e.g., americas, europe, asia, sea).
Use the correct regional routing host for match-v5 — americas covers NA1/BR1/LA1/LA2; europe covers EUW1/EUNE1/TR1/RU; asia covers KR/JP1; sea covers OC1/PH2/SG2/TH2/TW2/VN2.
Call GET https://<REGION>.api.riotgames.com/lol/match/v5/matches/by-puuid/<PUUID>/ids?start=0&count=20 to retrieve a list of match IDs.
Fetch individual match details with GET https://<REGION>.api.riotgames.com/lol/match/v5/matches/<MATCHID> — the response includes metadata (participants, game version) and info (timeline, team stats, per-participant data).
For timeline events (kills, item purchases, etc.) call /lol/match/v5/matches/<MATCHID>/timeline separately.
Known gotchas
The platform routing value (e.g., na1) and the regional routing value (e.g., americas) are different and used for different endpoint groups — using a platform host for match-v5 returns a 404 or routing error.
PUUID is account-wide across Riot games and regions; the older summoner ID is game- and region-specific and is not accepted by match-v5 endpoints.
The count parameter for match IDs is capped (at most 100 per request); paginate using start to retrieve older history, and be aware that very old matches may not be available in match-v5 if they predate the data migration.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp