What is Lookup.GG?

Lookup is a website that allows you to lookup a League of Legends player and see the amount of games they have played on a champion. The website is written in python and uses the Riot Games API to get the data. The data is stored in a mongodb database and is can be updated manually or automatically. The website is hosted on a Hetzner server and is written in python using the flask framework. The idea came from the fact that I wanted to see how many games I had played on a champion and I couldn’t find a website that did that. I also wanted to learn how to use mongodb and flask so I decided to make a website that utilized both. The entire project is written and maintained by me since I started it in 2019.

Currently we have roughly 13 milion playeres tracked and 93 milion games in our database. The website is still in development and we are working on adding more features.

Features

  • Find a player and see the amount of games they have played on a champion
  • Ability to see at what time the match was played
  • Ability to see how many points the player has on a champion
  • Ability to see when the username of a player expires so it can be claimed.
  • Ability to see when the player was last active
  • Ability to see how many times their name has been changed and when it was changed
  • Lookup will try to download all the matches of a player and store them in the database, riot only allows you to download roughly 9 months of data so everything is stored in the DB for future use.
  • Using multihreading to download the matches of a player to speed up the process

Upcoming features

A lot of the endpoints are implemented in the backend but not in the frontend, but this will be added in the future some of them are listed below

  • Ability to see who the player is playing with
  • Ranked statistics (history, winrate, wins and losses)
  • Ability to see when you first played with a player and when you last played with a player.

Obstacles

  • Riot only allows you to download roughly between 9 months and 2 years of data so everything is stored in the DB for future use.
  • Players that have a lot of games played will reach the size limit of a document in mongodb. This is a problem since we need to store all the games in the same document. To fix this we use GridFS.

Tech stack

  • Python
  • MongoDB
  • FastAPI (as of 2023)
  • Hetzner server

Demo

This is my profile and can be used as an example.

Source code

The source code is not public.


Next post: LolAccountManager

Previous post: New Dedicated server