OAuth Client Documentation
Discover more about using OAuth, including an in-depth tutorial and frequently asked questions.
OAuth Integration
All apps must request that users opt-in to sharing their personal data. To do this, your application will need to verify players using an OAuth flow, which is done through an OAuth client.
Getting a Production Key
Before you can get started with OAuth, you need a production key. If you don't have one, create one at developer.riotgames.com. We'll contact you using the email linked to your developer account to kick off the OAuth integration process.
Requesting an App
To request an app, fill out the form.
After your App is Approved
Before making any calls with your app, verify that you have an approved, functioning production application in the Developer Portal and a separate, approved app (we will have created this for you) with an app ID that matches exactly what we send you in an email.
Here's where you direct players to login:
https://auth.riotgames.com/authorize?client_id=&redirect_uri=&response_type=code&scope=openid+offline_accessAfter logging in, players are redirected back to the redirect_uri you specified. Here's information about how to integrate with OAuth and to view a sample Node web server that implements the example:
Implementing OAuthDownload OAuth Node App Example
Your app has access to endpoints that lets you identify who logged in.
VALORANT
Use https://developer.riotgames.com/apis#account-v1/GET_getByAccessToken
curl --location --request GET 'https://americas.api.riotgames.com/riot/account/v1/accounts/me' --header 'Authorization: Bearer {accessToken}'
curl --location --request GET 'https://europe.api.riotgames.com/riot/account/v1/accounts/me' --header 'Authorization: Bearer {accessToken}'
curl --location --request GET 'https://asia.api.riotgames.com/riot/account/v1/accounts/me' --header 'Authorization: Bearer {accessToken}'
The data return from each cluster is identical. We recommend using the cluster closest to your servers.
League of Legends
Use https://developer.riotgames.com/apis#summoner-v4/GET_getByAccessToken
curl --location --request GET 'https://na1.api.riotgames.com/lol/summoner/v4/summoners/me' --header 'Authorization: Bearer {accessToken}'
You'll need to include the cpid (current platform id) scope when directing the user to login, so that the OAuth access token is generated with the cpid scope. The cpid scope will ensure the cpid field is returned when making requests to https://auth.riotgames.com/userinfo. Once you determine the user's current platform id (cpid) then you can make requests to the DNS associated with their current platform. (for example, https://na1.api.riotgames.com)
Teamfight Tactics
Use https://developer.riotgames.com/apis#tft-summoner-v1/GET_getByAccessToken
curl --location --request GET 'https://na1.api.riotgames.com/tft/summoner/v1/summoners/me' --header 'Authorization: Bearer {accessToken}'
You'll need to include the cpid (current platform id) scope when directing the user to login, so that the OAuth access token is generated with the cpid scope. The cpid scope will ensure the cpid field is returned when making requests to https://auth.riotgames.com/userinfo. Once you determine the user's current platform id (cpid) then you can make requests to the DNS associated with their current platform. (for example, https://na1.api.riotgames.com)
Legends of Runeterra
Use https://developer.riotgames.com/apis#account-v1/GET_getByAccessToken
curl --location --request GET 'https://americas.api.riotgames.com/riot/account/v1/accounts/me' --header 'Authorization: Bearer {accessToken}'
curl --location --request GET 'https://europe.api.riotgames.com/riot/account/v1/accounts/me' --header 'Authorization: Bearer {accessToken}'
curl --location --request GET 'https://asia.api.riotgames.com/riot/account/v1/accounts/me' --header 'Authorization: Bearer {accessToken}'
The data return from each cluster is identical. We recommend using the cluster closest to your servers.