League Client APIs
How are our policies changing?
Prior to now, we’ve asked devs to keep applications that use undocumented League Client APIs separate from apps that use the Riot Games API. We couldn’t guarantee uptime on those services, nor could we promise they wouldn’t be encrypted or go away sometime in the near future. While the first point still stands —we don’t own those services and can’t commit to predictable uptime— we can confidently say that they won’t be getting encrypted in the short term. As a result, we’re updating our policy: We are now allowing access to the League Client endpoints, however you must share your plans with before you use League Client APIs in your League of Legends projects. Additionally we currently do not allow players logged into the KR server to use applications that leverage the League Client APIs. You should use lol-platform-config to determine if a player has logged into the KR server and disable features that leverage the League Client APIs.
Three caveats, though!
First, abide by the rules around app submissions. Be sure to follow the best practices and guidance listed on the Developer Portal. We will give corrective feedback to (or shut down) apps that violate the letter or spirit, of our ToS, our Legal Jibber Jabber, or any guidance we’ve shared through official channels.
Second, this list includes the only League Client endpoints we will allow applications to use:
Lastly, whether you’re combining endpoints or doing something by only using the undocumented endpoints, We need to know about it. Either create a new app in the Developer Portal or leave an app note as you would normally in the Developer Portal (see below). You must tell us which endpoints you’re using and how you’re using them. We collect and use this info to lobby dev teams here at Riot to expand on current or future feature sets so we can give you more toys to play with.
What League Client APIs are we referring to?
In an article on the Riot Games Engineering Blog, there's an image that is useful for defining what we’re classifying as "League Client APIs".
Specifically, we’re referring to a set of APIs that the Chromium Embedded Framework (CEF) uses to communicate with a C++ Library that in turn communicates with the League of Legends platform. As you’ll notice the communications between the C++ library and the CEF all occur locally on your desktop. These are the League Client APIs.
Planning on using League Client APIs?
- Create an application (if you don’t already have an existing application)
- Leave an app note with information on how you’re using these APIs.
Example Note (use this template, but also use your own words)
Which League Client API are you using? Champion Select API What has prompted the use of this API? Our application provides our users with information that will allow them to optimize their champion selection process. Utilizing this API provides a smooth experience for our users without requiring our users to manually input champion selections. How are you planning on using the data you gather from this API? We'll be reading both teammate and opponent champion selections, sending this information to our servers which will provide the user with champion, rune, and summoner spell suggestions.
(repeat as necessary)
One additional note, if we do find devs that are using undocumented APIs for their apps without disclosing them, we can and will revoke Riot Games API access, so please update your applications accordingly. We can’t promise to have up to date documentation around these endpoints, but we aim to use your feedback to create official resources, helping you navigate these endpoints in the future. Your best, most up-to-date sources of info here are potentially your fellow developers. Seek out apps that are doing things like pulling player replays or giving advice in champ select (two common uses of these endpoints), and either talk to those devs or hit up our community Discord for advice.