Public API Documentation
v1.4, revised May 22, 2022
# Introduction
WhatIsMyMMR.com analyzes hundreds of millions of matches each month, resulting in highly correlated MMR values and robust distribution data. The WhatIsMyMMR public API makes it easier than ever to tap into this wealth of knowledge at no cost. This document outlines what’s possible with the API along with the ground rules.
Built something amazing, have a question, or need a higher rate limit? Feel free to reach out to Josh by sending an email.
# License
Creative Commons Attribution 4.0 International (CC BY 4.0). You must provide attribution if you use this API.
# Rules
Although the API is a free public resource, API consumers are expected to obey some basic rules to keep things running smoothly:
- Use a unique and descriptive user agent string, which should include the target platform, a unique application identifier, and a version string.
- The following format is recommended:
<platform>:<app ID>:<version string>
. For example,iOS:com.example.helloworld:v1.0.3
. - Don’t lie about your user agent, such as spoofing popular browsers. This is a bannable offense.
- The following format is recommended:
- Limit the rate of requests to 60 per minute.
- The database server is only so powerful. If you think you’ll need a higher request rate, contact Josh before hitting the servers.
- Provide additional value to players, don’t just clone WhatIsMyMMR. Some examples of acceptable uses:
- A research paper studying the correlation between MMR and reaction time.
- A Discord bot that shows player stats that include MMR.
- A leaderboard for ARAM and Normal queues.
- ARAM champion and item win rates based MMR instead of rank.
# Regions
Endpoints are scoped by region and specified by the request subdomain. If no valid region is specified, na
is used instead.
na | North America |
---|---|
euw | EU West |
eune | EU Nordic & East |
kr | Korea |
# Queues
MMR is analyzed and tracked for the following queues:
ranked | Ranked 5v5 Draft Pick games |
---|---|
normal | Normal 5v5 Draft & Blind Pick games |
ARAM | ARAM games |
#GET /api/v1/summoner
Returns the estimated ranked
, normal
, and ARAM
MMRs for a summoner.
Example: https://na.whatismymmr.com/api/v1/summoner?name=Alkraan
name | A case insensitive, whitespace sensitive summoner’s name. |
---|
<queue>.avg | The estimated MMR for the summoner in this queue. Is null if no estimate is available. |
---|---|
<queue>.err | The margin of error for the estimate using an 95% confidence interval for this queue. |
<queue>.warn | A boolean flag indicating that the estimate may have reduced accuracy due to insufficient match data. |
<queue>.timestamp | The UTC timestamp of the last data processed for the summoner in this queue. |
<queue>.historical | An array of previous queue data objects with a minimum timescale of one day. |
<queue>.closestRank | The closest equivalent rank to the estimated MMR. For unranked queues this is derived by mapping the percentile to the ranked distribution. |
<queue>.percentile | A rough percentile for the closest ranked division. For unranked queues this is for the overall distribution instead. |
ranked.summary | HTML-formatted analysis of the summoner’s ranked standings based on MMR. This field will be deprecated in v2. |
ranked.tierData | An array of tier objects relative to the summoner’s current MMR, containing average, min, and max MMR. |
ranked.historicalTierData | An array of reduced tier objects relative to the summoner’s current MMR, containing the average MMR. |
0 | Unexpected internal server error. |
---|---|
1 | Unable to connect to the database. |
100 | Summoner is not on record. |
101 | No recent MMR data for summoner. |
200 | Missing 'name' query parameter. |
600 | Missing user agent. |
666 | Contact Josh to use the API. |
9001 | Too many requests. |
#GET /api/v1/distribution
Returns a scaled number of players across the entire range of MMR for all queues.
Example: https://na.whatismymmr.com/api/v1/distribution
<queue>.<mmr> | A scaled number of players at this MMR. |
---|
0 | Unexpected internal server error. |
---|---|
1 | Unable to connect to the database. |
9001 | Too many requests. |