Jump to Main ContentJump to Primary Navigation
News

Player Universally Unique IDentifiers and a New Security Layer

  • By Gene Chorba
  • Nov 8, 2018

UPDATE (28 NOV 2018): The v4 endpoints are back online and we have moved back the deprecation date for the v3 endpoints to January 28th, 2019.

 

UPDATE (9 NOV 2018): Thank you all for the great feedback so far regarding the v4 endpoints. In the process of rolling these out, there have been some unexpected behaviors observed. As a result, we have temporarily turned off the v4 endpoints. 

We will implement a solution soon and, we will bring back the v4 endpoints once that implementation takes place. This should not impact the deprecation schedule. 

Watch this space for further updates.

--------------------------------------------------------------------------------------------------


Hi Folks,

 

TL;DR: We are introducing a new type of ID (Player Universally Unique Identifiers) (PUUID, /'puId/, POO-id), and a new layer of security to protect the privacy of players.

 

PUUIDs

 

As Riot continues to identify ways that we can better serve players across multiple regions, nations, and games, we need to also make sure that we’re better at appropriately connecting those players to the systems that we use. One of the ways that we can strengthen that connection is by ensuring that each player has a unique and consistent identifier across each of those systems.

 

To achieve this goal, we are introducing PUUIDs to the API. These PUUIDs will be accessible starting now, through the summoner-v4 endpoints. They open the door to many exciting ways to create bigger and better experiences for players, while also allowing for better support of players and systems in the future.

 

Non-intuitive interactions worth noting

  • This new identifier is globally unique, however it will still maintain a regional context. Querying data by PUUID in NA will return results for an account in NA and won’t include results from other regions.
  • A PUUID may be associated with accounts across multiple regions. For example, when a player transfers regions, a new account ID and Summoner ID are created in the new region but the PUUID remains the same in both regions.

 

Will the Riot Games API start using PUUIDs for all endpoints?

 

As many of you may know, it can be painful to work with summoner and account ids. This pain is shared internally, so the expectation is that going forward all new services will adopt PUUIDs. Legacy services will continue to key off their current identifiers.

 

API V4

 

Along with this release we are adding a new security layer for the privacy of players. In order to do so, we are releasing a new version of all Riot Games API endpoints. With the latest version of the API, all IDs are now encrypted and you will need to adjust your systems in accordingly.

 

In the past you would access summoner-v3 with a Summoner Name and receive the account ID of the Summoner. Now instead of seeing the actual ID you will see the encrypted form of that ID. All encrypted values are unique per API Key holder. As seen in the annotations for V4 below, the values for account ID, PUUID and id would be different for each key holder, for a given player.

 

All v3 endpoints that have a v4 counterpart will be deprecated in no less than 60 days.

 

Additionally tournaments v4 is being worked on and will be released soon. In the meantime the Tournaments v4-stub will be available today. Summoner ID inputs for the full tournaments API when launched will be replaced with encrypted values.

 

Scheduled Deprecation Date: January 28th, 2019* (KR region will deprecate sooner due to privacy requirements)

 

If you have questions or feedback, please post in this thread, or hit us up on Discord (Discord.gg/RiotAPI).

 

Thanks,

 

Gene

ANNOTATIONS



Examples:

V3
/lol/summoner/v3/summoners/by-name/{summonerName}

{    
    "profileIconId": 3777,    
    "name": "Riot Git Gene",    
    "summonerLevel": 55,    
    "accountId": 167594,    
    "id": 140755,    
    "revisionDate": 1541557856000
}


V4
/lol/summoner/v4/summoners/by-name/{summonerName}


{  
    "profileIconId": 3777,
    "name": "Riot Git Gene",
    "puuid": "qHn0uNkpA1T-NqQ0zHTEqNh1BhH5SAsGWwkZsacbeKBqSdkUEaYOcYNjDomm60vMrLWHu4ulYg1C5Q",
    "summonerLevel": 58,
    "accountId": "eBe6G4dKRDXpjsqf7WMAx6dB1keDQ9j1p-gtlp83qxs",
    "id": "_Pjl3Oq4ts4RpRHk_1VBsBJCSY0ICpnVAi_DQmmXKz5z",
    "revisionDate": 1543369368000
}


Example of a different user calling the same player:


{  
   "profileIconId": 3777,
   "name": "Riot Git Gene",
   "puuid": "iwmnue8i1ITVPpgXMAotlTfh0J_nuNZxUGl8UqxyC3R3r08ZQsH0w9A4quXkAT34nmPM2lXui8j3YQ",
   "summonerLevel": 58,
   "accountId": "p7PLPr6w_bLWEO4FCipeTqQvZ1JWpEk6hUFS3d31--Q",
   "id": "zApn-LewpQeGH_hApnrol0Il5zkrpic3vAgJa1B6E7vK",
   "revisionDate": 1543369368000
}