Skip to main content

Python wrapper for the Lichess API

Project description

Logo

lichess: a Python wrapper for the Lichess API

Docs License PyPI GitHub Repo Size GitHub Code Size (bytes) Total Lines of Code

lichess is a Python library for interacting with the Lichess API and can be used to get profile data, game data, and much more.

This project is still in Pre-Alpha. As a result, it is still unstable, and not all features have been implemented.


Installation

You can install lichess on the Terminal (macOS/UNIX) or the Command Prompt (Windows) with:

pip install lichess

Alternatively, you can use Git to clone the repository from GitHub with:

git clone https://github.com/qe/lichess.git
cd lichess
pip install .

Or, if you already have it, upgrade to the latest version with:

pip install lichess -U

Usage

For the full documentation, please check the Lichess Python API Documentation.

Some methods, such as Client.get_email(), require authorization while others, such as Client.get_leaderboard(), do not require it. As a result, if you want to use a method/endpoint that does require authorization, you will need to generate a personal access token on Lichess. If you do so, this will be your API Key.

To determine whether or nor you need to generate a personal access token, check if the endpoint you are interested in using has a OAuth2 badge in the Lichess API Documentation.

Here is an example of using lichess without a personal access token:

import lichess

myclient = lichess.Client()

Here is an example of using lichess with a personal access token:

import lichess

API_KEY = "<YOUR API KEY GOES HERE>"
myclient = lichess.Client(token=API_KEY)

Quick Examples

The following are some examples of popular uses of this package:


Get the profile data of a user

myclient = lichess.Client()

user = myclient.get_data("bmartin")

Get the rating history of a user

myclient = lichess.Client()

history = myclient.get_rating_history("agadmator")

Get the list of users that are offline, online, and playing

myclient = lichess.Client()

users = ["Oliver_Penrose", "bmartin", "ismodes", "penguingim1", "Zhigalko_Sergei"]
data = myclient.get_status(users)

offline = [i['name'] for i in data if 'online' not in i.keys()]
online = [i['name'] for i in data if 'online' in i.keys()]
playing = [i['name'] for i in data if 'playing' in i.keys()]

Download all the games of a user

myclient = lichess.Client()

games = myclient.export_by_user(<USERNAME GOES HERE>)

with open("games.pgn", "w") as f:
    f.write(games)
f.close()

Get the list of all the members of a team

API_KEY = "<YOUR API KEY GOES HERE>"
myclient = lichess.Client(token=API_KEY)

members = myclient.get_team_members(<TEAMNAME GOES HERE>)

Get the list of all the IDs of the puzzles you have failed

API_KEY = "<YOUR API KEY GOES HERE>"
myclient = lichess.Client(token=API_KEY)

activity = myclient.get_puzzle_activity()
failed = [i['id'] for i in activity if not i['win']]

For more examples, check the examples directory in the source code.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lichess-0.2.6.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

lichess-0.2.6-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file lichess-0.2.6.tar.gz.

File metadata

  • Download URL: lichess-0.2.6.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.2

File hashes

Hashes for lichess-0.2.6.tar.gz
Algorithm Hash digest
SHA256 f273dd0b333f6049b16cd87ccc33e3a2a73c1d5a1b228022a172270f44e8f9d8
MD5 cf3f5548764b95cd0a2d0dd15acc04ae
BLAKE2b-256 f98ad51249ad47a60c6f25361cf2b86474ba577494b96c2970c0f5af62c8a734

See more details on using hashes here.

File details

Details for the file lichess-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: lichess-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.2

File hashes

Hashes for lichess-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6990c8a2ec2897979ef1ae2d42c22c7dad59bbf25c0f6a24952a8464e14817f7
MD5 5a76142654b389bae08ad772566042f8
BLAKE2b-256 5856570293c395eacb7be545152adf384819a7bf6fb2791114fd8aa9e714bfd9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page