Lichess

Open chess data — players, games and puzzles

🎮 GamesHEALTHYchecked 15h 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.

75HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: 75 · healthy
Uptime history
95.5%90 days
87.9%30 days
240P50 · ms
4088P95 · ms
operationalpartialdownno data
Response time · last 48 checks
Fastest 34 ms, slowest 764 ms, most recent 41 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/thibault240 mschecked 15h 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 95.5% uptime over 90 days and a 240 ms median response. We re-probe it every sweep — the status badge and uptime chart above always show the latest.