Lichess

Open chess data — players, games and puzzles

🎮 GamesHEALTHYchecked 3h ago
AUTH NONECORS AGENT HTTPS COMMERCIAL ?

Lichess exposes profiles, ratings, game exports (PGN/JSON) and tournaments through a public API. Many read endpoints need no token (one raises rate limits and unlocks account routes). The go-to open alternative to Chess.com for chess tooling.

74HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: 74 · healthy
Uptime history
99.02%90 days
100%30 days
436P50 · ms
4088P95 · ms
operationalpartialdownno data
Response time · last 48 checks
Fastest 31 ms, slowest 2303 ms, most recent 42 ms.
Live response samplecaptured by our last successful check
GET https://lichess.org/api/user/thibault

{
  "id": "thibault",
  "username": "thibault",
  "perfs": {
    "ultraBullet": {
      "games": 3,
      "rating": 1688,
      "rd": 359,
      "prog": 0,
      "prov": true
    },
    "bullet": {
      "games": 7482,
      "rating": 1785,
      "rd": 92,
      "prog": 12
    },
    "blitz": {
      "games": 11625,
      "rating": 1760,
      "rd": 51,
      "prog": -31
    },
    "rapid": {
      "games": 912,
      "rating": 1814,
      "rd": 58,
      "prog": -74
    },
    "classical": {
      "games": 25,
      "rating": 1858,
      "rd": 244,
      "prog": 48,
      "prov": true
    },
    "correspondence": {
      "games": 377,
      "rating": 1942,
      "rd": 169,
      "prog": -12,
      "prov": true
    },
    "chess960": {
      "games": 348,
      "rating": 1551,
      "rd": 267,
      "prog": 61,
      "prov": true
    },
    "kingOfTheHill": {
      "games": 94,
      "rating": 1744,
      "rd": 287,
      "prog": 14,
      "prov": true
    }
  },
  "flair": "nature.seedling",
  "patron": true,
  "patronColor": 10,
  "verified": true,
  "createdAt": 1290415680000
}
Call itcurl · fetch · python
curl "https://lichess.org/api/user/thibault"
const res = await fetch("https://lichess.org/api/user/thibault");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://lichess.org/api/user/thibault")
print(res.json())
Endpoints · 6HealthyFULL DOCS ↗
Monitored path responding — GET /user/thibault436 mschecked 3h ago
GET/user/thibaultPROBED

Open chess data — players, games and puzzles

GET/user

Single user profile.

GET/user/1

User details by ID (example: 1).

GET/user?limit=10

Single user profile.

GET/user/search?q=test

Search by query parameters.

GET/api/assets/index-7o4Qoux5.js

Index 7o4Qoux5 Js — documented GET route.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Stable. No schema drift observed since monitoring began — the response shape has not changed under our checks.

Lichess: common questions

Is Lichess free to use?

Yes — Lichess is a free games API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.

Does Lichess need an API key?

No — Lichess needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).

Can I call Lichess from the browser?

Yes — Lichess returns CORS headers over HTTPS, so front-end code can fetch it directly with no backend proxy. Use the fetch snippet on this page, or hit "Run live" to try it now.

Is Lichess up right now?

As of our last scheduled check, Lichess is healthy with 99.02% uptime over 90 days and a 436 ms median response. We re-probe it every sweep — the status badge and uptime chart above always show the latest.