Search code examples
riot-games-api

Riot Games API: Requests return same identifiers for same player name but different region


I have these two URLs:

https://euw1.api.riotgames.com/lol/summoner/v4/summoners/by-name/okusen https://eun1.api.riotgames.com/lol/summoner/v4/summoners/by-name/okusen

They just have the same player name and they are two different players from two different regions (Europe West and Europe Nordic & East).

Then, the two JSON responses respectively:

{
    "profileIconId": 4275,
    "name": "Okusen",
    "puuid": "KFM4xJBwzy7T-rytrj9J8lGx0QduGLsBJ-WY9xdx4Q9cZNvxXCSNv_k4YQdfPgQjS52ppwlO_f9vhA",
    "summonerLevel": 121,
    "accountId": "PsopchdPCOnlQJB4AjXZ6TCrHuEZ9JlMqZMrDP6iAtznGQ",
    "id": "zYkVlVUGHDuDmbfo1lmU0neHdpQdqxBNJ-hHMunqC__2K-4",
    "revisionDate": 1583882906000
}
{
    "profileIconId": 25,
    "name": "Okusen",
    "puuid": "KFM4xJBwzy7T-rytrj9J8lGx0QduGLsBJ-WY9xdx4Q9cZNvxXCSNv_k4YQdfPgQjS52ppwlO_f9vhA",
    "summonerLevel": 30,
    "accountId": "PsopchdPCOnlQJB4AjXZ6TCrHuEZ9JlMqZMrDP6iAtznGQ",
    "id": "zYkVlVUGHDuDmbfo1lmU0neHdpQdqxBNJ-hHMunqC__2K-4",
    "revisionDate": 1495766289000
}

They have the same identifiers so this is incorrect. I need puuid, accountId or id as parameter in other requests in order to get data for a specific player but I can't do that correctly if I don't have the correct identifier.

LoLCHESS.GG does not seem to have this problem as they display different data for these two players so I probably miss something but I really don't know what.


Solution

  • Neither of those IDs are guaranteed to be unique.

    summonerId and accountId are guaranteed to be unique on a per region basis (so we won't find two summoners with the same ID on EUW).

    puuid is guaranteed to be unique globally but if a user transfers regions, the two accounts will have the same puuid.

    Thanks to thomasmarton in GitHub, more details in this thread.