Home

Awesome

<!-- README.md --> <h1 align="center" id="top">League of Legends Analytics</h1> <h3 align="center">A space for League of Legends analytics projects by <a href="https://x.com/lol_arailla">Arailla</a>, including a curated list of publicly available resources published by the League of Legends community.</h3> <!-- ABOUT THE REPOSITORY --> <h2 id="wave-about-this-repository">:wave: About This Repository</h2>

The README of this repository is an attempt to gather all LoL data-related guides, libraries, tutorials, or any other resources that may be of use to a League of Legends Data Analyst. If you feel like there's any resource that I've missed, please feel free to create a pull request or <a href="https://x.com/lol_arailla">contact me on Twitter/X!</a>

:information_source: This repository has been heavily inspired by the work of Edd Wester on his <a href="https://github.com/eddwebster/football_analytics">Football Analytics Github</a>, which I highly recommend.

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

<!-- TABLE OF CONTENTS --> <h2 id="book-table-of-contents">:book: Table of Contents</h2> <details open="open"> <summary>Table of Contents</summary> <ol> <li><a href="#wave-about-this-repository">About This Repository</a></li> <li><a href="#book-table-of-contents">Table of Contents</a></li> <li> <a href="#seedling-lol-data-sources">LoL Data Sources</a> <ul> <li><a href="#ladder-solo-queue-data">Solo Queue Data</a></li> <li><a href="#art-static-data">Static Data</a></li> <li><a href="#tv-esports-data">Esports Data</a></li> <li><a href="#house-lol-client-data">LoL Client Data</a></li> </ul> </li> <li> <a href="#books-resources">Resources</a> <ul> <li><a href="#libraries">Libraries</a></li> <li><a href="#tutorials">Tutorials</a></li> <li><a href="#written-pieces">Written Pieces</a></li> <li><a href="#videos-and-podcasts">Videos and Podcasts</a></li> <li><a href="#github-repositories">Github Repositories</a></li> <li><a href="#discord-servers">Discord Servers</a></li> </ul> </li> </ol> </details>

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

<!-- LOL DATA SOURCES --> <h2 id="seedling-lol-data-sources">:seedling: LoL Data Sources</h2>

While all data come from the League of Legends servers, you'll need to know how to query different APIs depending on which kind of data you're interested in. Solo Queue data is available through the Riot official API, while games played on the tournament realms can be accessed in different ways.

<h3 id="ladder-solo-queue-data">:ladder: Solo Queue Data</h3>

Documentation: https://developer.riotgames.com/

<a href="#book-table-of-contents">Back to Contents</a>

<h4 id="collecting-soloq-data">Collecting Data</h4>

The following links are coming straight from https://riot-api-libraries.readthedocs.io/en/latest/collectingdata.html

Collecting large amounts of match IDs is far from straightforward and requires quite a few requests. If you want to spare yourself a couple of steps, Canisback on the Riot Games Third-Party Developer Community Discord currently <a href="http://canisback.com/matchId/">hosts</a> a list of match IDs that you can use to pull matches from the matches/{matchId} endpoints. These lists are provided for free to the community for use and may go down or stop being updated at any time.

You can also use the League endpoints to get lists of ranked summoners. The positional league endpoints provide a paginated list of all summoners in a Tier + Division + Position (e.g., all ranked Diamond II Top laners). Alternatively, Canisback on the Discord currently <a href="http://canisback.com/leagueId/">hosts</a> a list of league IDs that you can use to pull summoners from the leagues/{leagueId} endpoints. These lists are provided for free to the community for use and may go down or stop being updated at any time.

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

<h3 id="art-static-data">:art: Static Data</h3>

Static data comes in extremely handy when you want to

Since the data only changes when a new patch comes out, it's highly recommended for you to implement caching.

ddragon is the official CDN where you can retrieve all of this information. However, you might find it quite underwhelming if you're interested in champion and item stats as it only gives you the minimal stats.

DDragon data only changes when a new LoL patch is released, which you can see the availability of in: https://ddragon.leagueoflegends.com/api/versions.json

Documentation: https://developer.riotgames.com/docs/lol

cdragon is a massive collection of community-generated files to augment the data in DDragon. You'll find that items and spell descriptions match the ones you'll see when looking at their in-game description.

Documentation: https://riot-api-libraries.readthedocs.io/en/latest/ddragon.html

You can also clone this repository which contains and archives all of the official DDragon content: https://github.com/InFinity54/LoL_DDragon

<a href="#book-table-of-contents">Back to Contents</a>

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

<h3 id="tv-esports-data">:tv: Esports Data</h3>

Esports Data is about all of the matches played on tournament servers, thus not accessible by the Riot official API.

Riot mentioned that this data would be accessible to the community <a href="https://lolesports.com/article/dev-diary-introducing-the-new-lol-esports-data-portal/bltf694d66e32ce380a">at some point in the future</a>, but for now:

<h4 id="lol-data-esports-leaguepedia">Leaguepedia API</h4>

Leaguepedia is one of the few community projects that have been given access to the LoL Data Portal and thus act as a proxy for the public to have access to these matches, as well as aggregated data coming from their own pages.

Documentation: https://lol.fandom.com/wiki/Help:Leaguepedia_API

<h4 id="lol-data-esports-oracles-elixir">Oracle's Elixir Dataset</h4>

If you'd rather work with a prebuilt dataset, Oracle's Elixir is the perfect place for you to start as you can download .csv files with the biggest leagues' data: https://oracleselixir.com/tools/downloads

<h4 id="lol-data-esports-chinese-matches">Chinese Matches</h4>

Chinese Matches (mainly LPL and LDL) are quite specific as these competitions are not hosted by Riot themselves, and thus the data is not available from the same sources nor format (you'll notice that the data points do not exactly match the ones you get from the other leagues).

Leaguepedia is maintaining a link between the calendar and their lpl.qq link (under the "VODs & Match Links" tournament section), which in turn can be used to fetch the in-game data.

You can see it being called when opening an lpl.qq link, i.e., https://lpl.qq.com/es/stats.shtml?bmid=10413

A full API definition <a href="https://open.tjstats.com/match-auth-app/swagger/v1/index.html">can be found here</a>, but only a fraction of the endpoints can be queried using the token you can find when looking at lpl.qq match pages.

<h4 id="lol-data-esports-data-portal">LoL Data Portal</h4>

While it's not opened to the community as of yet, esports teams from ERL1+ can access it. They have access to their scrims (private training matches) data as well as all of Riot's matches data, in a very detailed (second per second) manner.

You may have heard of this data as Bayes Esports', which was the previous data provider contracted to Riot. The LoL Data portal is now being operated by GRID Esports. Source: https://esportsinsider.com/2023/11/riot-games-grid-major-data-partnership-acquires-equity-stake

GRID Esports does not provide any open documentation nor data samples.

<h4 id="lol-data-esports-live-data">LoLEsports Live Data</h4>

There is an API used by https://lolesports.com/, but it is not officially supported and may change at any time without warning. There is some unofficial documentation here, but it might not be accurate or up-to-date https://vickz84259.github.io/lolesports-api-docs/

<a href="#book-table-of-contents">Back to Contents</a>

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

<h3 id="house-lol-client-data">:house: LoL Client Data</h3>

Documentation: https://github.com/Pupix/rift-explorer - An automatically generated documentation of Riot Games LCU API.

<a href="#book-table-of-contents">Back to Contents</a>

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

<!-- RESOURCES --> <h2 id="books-resources">:books: Resources</h2> <h3 id="libraries">Libraries</h3>

All languages

Python

<a href="#book-table-of-contents">Back to Contents</a>

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

<h3 id="tutorials">Tutorials</h3>

Python

Elixir

Others

<a href="#book-table-of-contents">Back to Contents</a>

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

<h3 id="written-pieces">Written Pieces</h3>

Blogs I couldn't include them all, but Itero.gg has released a lot of articles in their Esports Analyst Club newsletter.

Papers:

<a href="#book-table-of-contents">Back to Contents</a>

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

<h3 id="videos-and-podcasts">Videos and Podcasts</h3>

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

<h3 id="github-repositories">Github Repositories</h3>

Using the Riot Official API:

Using Leaguepedia API:

Using Oracle's Elixir dataset:

Using Bayes API:

Organize your replay files (.rofl):

Extracting positional data from VODS using computer vision:

Tools for Google Sheet:

<a href="#book-table-of-contents">Back to Contents</a>

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

<h3 id="discord-servers">Discord Servers</h3>

<a href="#book-table-of-contents">Back to Contents</a>

This repository isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing League of Legends. League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. League of Legends © Riot Games, Inc.