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.


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

import lichess

myclient = lichess.Client()
user = myclient.get_data("bmartin")

Get the rating history of a user

import lichess

myclient = lichess.Client()
history = myclient.get_rating_history("agadmator")

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

import lichess

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

import lichess

myclient = lichess.Client()
games = myclient.export_by_user("penguingim1")

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

Get the list of all the members of a team

import lichess

API_KEY = "<YOUR API KEY GOES HERE>"
myclient = lichess.Client(token=API_KEY)
members = myclient.get_team_members("vu-chess-club")

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

import lichess

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.7.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

lichess-0.2.7-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lichess-0.2.7.tar.gz
  • Upload date:
  • Size: 12.8 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.7.tar.gz
Algorithm Hash digest
SHA256 eddd97b840e88b500ddaf28e63bb4b5e8b168c4e8eb59b7c2a7a268d63e6b516
MD5 9665c4f683d35fb74241e8f725e3381d
BLAKE2b-256 4a1c77820f32cc8b54ce9f70bb56216f79a04dc4580be04869e958027bdeceb0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lichess-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 11.5 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8642f1cb85f9dd629466b94c4c785a36a6be7384e1e8cbba5f14d45855ca2349
MD5 ba0345e2f2851521e60c5a0313064cf4
BLAKE2b-256 63f995e8e95d551872ba6a3bc7efbdb5c7176c3e6e8453934e81755eac4f865c

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