How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Lichess Puzzles API

Fetch and solve [puzzles](https://lichess.org/training), view your puzzle history and dashboard.Our collection of puzzles is in the public domain, you can [download it here](https://database.lichess.org/#puzzles).For a list of our [puzzle themes](https://lichess.org/training/themes) with their description, check out the [theme translation file](https://github.com/ornicar/lila/blob/master/translation/source/puzzleTheme.xml).

Lichess Puzzles API is one of 23 APIs that Lichess publishes on the APIs.io network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification.

This API exposes 2 JSON Schema definitions.

Tagged areas include Puzzles. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an AsyncAPI specification, a JSON-LD context, and 2 JSON Schemas.

This API exposes 11 operations across 10 paths, and defines 19 schemas. It is described by OpenAPI 3.1.0, at version 2.0.144.

Requests are made against 4 base URLs: https://lichess.org, https://lichess.dev, http://localhost:{port}, http://l.org.

11 operations 10 paths 19 schemas 9 GET2 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
2.0.144
Base URL
https://lichess.org
Authentication
OAuth 2.0
Resource Areas
1

Authentication & Security 1

Lichess Puzzles API declares 1 security scheme for authenticating requests. It supports OAuth 2.0 (OAuth2) using the authorizationCode flow, exposing 23 scopes.

  • OAuth2 — Read [the introduction for how to make authenticated requests](description/authentication).

Paths & Operations 11

Across 10 paths, the API surfaces 11 operations — 9 GET, 2 POST. Each is listed below with its method, path, parameters, and response codes.

Puzzles 11

Fetch and solve [puzzles](https://lichess.org/training), view your puzzle history and dashboard. Our collection of puzzles is in the public domain, you can [download it here](http…

GET
/api/puzzle/daily
Get the daily puzzle
apiPuzzleDaily → 200
GET
/api/puzzle/{id}
Get a puzzle by its ID
apiPuzzleId 1 param → 200
GET
/api/puzzle/next
Get a new puzzle
apiPuzzleNext 3 params → 200
GET
/api/puzzle/batch/{angle}
Get multiple puzzles at once
apiPuzzleBatchSelect 4 params → 200
POST
/api/puzzle/batch/{angle}
Solve multiple puzzles at once
apiPuzzleBatchSolve 2 params body → 200
GET
/api/puzzle/activity
Get your puzzle activity
apiPuzzleActivity 3 params → 200
GET
/api/puzzle/replay/{days}/{theme}
Get puzzles to replay
apiPuzzleReplay 2 params → 200404
GET
/api/puzzle/dashboard/{days}
Get your puzzle dashboard
apiPuzzleDashboard 1 param → 200
GET
/api/storm/dashboard/{username}
Get the storm dashboard of a player
apiStormDashboard 2 params → 200
POST
/api/racer
Create and join a puzzle race
racerPost → 200
GET
/api/racer/{id}
Get puzzle race results
racerGet 1 param → 200404

Schemas 19

The contract defines 19 schemas that model the data the API accepts and returns. The most detailed are PuzzleRaceResults (6 properties), PuzzlePerformance (5 properties), PuzzleActivity (3 properties), PuzzleBatchSolveResponse (3 properties). Each schema is shown below with its type and property counts.

PuzzleBatchSolveRequest
object
1 property
PuzzleDashboard
object
3 properties 3 required
PuzzleAndGame
object
2 properties 2 required
PatronColor
integer
Players can choose a color for their Patron wings. See [here for the color mappings](https://github.com/lichess-org/lila/blob/master/ui/lib/css/abstract/patron…
PuzzleBatchSolveResponse
object
3 properties
PuzzleRacer
object
2 properties 2 required
PuzzlePerformance
object
5 properties 5 required
Patron
boolean
Use patronColor value instead to determine if player is a patron.
GameColor
string
NotFound
object
1 property 1 required
PuzzleBatchSelect
object
2 properties
PerfType
string
PuzzleStormDashboard
object
2 properties 2 required
Flair
string
See [available flair list and images](https://github.com/lichess-org/lila/tree/master/public/flair)
PuzzleGlicko
object
3 properties
PuzzleReplay
object
2 properties 2 required
PuzzleActivity
object
3 properties 3 required
Title
string
only appears if the user is a titled player or a bot user
PuzzleRaceResults
object
6 properties 6 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

lichess-puzzles-api-openapi.yml Raw ↑

Other APIs Lichess publishes across the network.

Lichess Account API
Lichess Analysis API
Lichess Board API
Lichess Bot API
Lichess Broadcasts API
Lichess Bulk pairings API
Lichess Challenges API
Lichess External engine API
Lichess FIDE API
Lichess Games API
Lichess Messaging API
Lichess OAuth API
Where this information came from

This is an independent, third-party profile of Lichess Puzzles API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.