openapi: 3.1.0 info: version: 2.0.144 title: Lichess.org API reference Account Opening Explorer API contact: name: Lichess.org API url: https://lichess.org/api email: contact@lichess.org x-logo: url: https://lichess1.org/assets/logo/lichess-pad12.svg license: name: AGPL-3.0-or-later url: https://www.gnu.org/licenses/agpl-3.0.txt description: '# Introduction Welcome to the reference for the Lichess API! Lichess is free/libre, open-source chess server powered by volunteers and donations. - Get help in the [Lichess Discord channel](https://discord.gg/lichess) - API demo app with OAuth2 login and gameplay: [source](https://github.com/lichess-org/api-demo) / [demo](https://lichess-org.github.io/api-demo/) - API UI app with OAuth2 login and endpoint forms: [source](https://github.com/lichess-org/api-ui) / [website](https://lichess.org/api/ui) - [Contribute to this documentation on Github](https://github.com/lichess-org/api) - Check out [Lichess widgets to embed in your website](https://lichess.org/developers) - [Download all Lichess rated games](https://database.lichess.org/) - [Download all Lichess puzzles with themes, ratings and votes](https://database.lichess.org/#puzzles) - [Download all evaluated positions](https://database.lichess.org/#evals) ## Endpoint All requests go to `https://lichess.org` (unless otherwise specified). ## Clients - [Python general API](https://github.com/lichess-org/berserk) - [MicroPython general API](https://github.com/mkomon/uberserk) - [Python general API - async](https://pypi.org/project/async-lichess-sdk) - [Python Lichess Bot](https://github.com/lichess-bot-devs/lichess-bot) - [Python Board API for Certabo](https://github.com/haklein/certabo-lichess) - [Java general API](https://github.com/tors42/chariot) - [JavaScript & TypeScript general API](https://github.com/devjiwonchoi/equine) - [LichessNET - C# API Wrapper](https://github.com/Rabergsel/LichessNET) - [.NET general API](https://github.com/Dblike/LichessSharp) ## Rate limiting All requests are rate limited using various strategies, to ensure the API remains responsive for everyone. Only make one request at a time. If you receive an HTTP response with a [429 status](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#429), you have exceded one of the rate limits. In most cases, waiting one minute before retrying will be sufficient, but some limits may require longer. Reduce your request frequency before retrying. ## Streaming with ND-JSON Some API endpoints stream their responses as [Newline Delimited JSON a.k.a. **nd-json**](https://github.com/ndjson/ndjson-spec), with one JSON object per line. Here''s a [JavaScript utility function](https://gist.github.com/ornicar/a097406810939cf7be1df8ea30e94f3e) to help reading NDJSON streamed responses. ## Authentication ### Which authentication method is right for me? [Read about the Lichess API authentication methods and code examples](https://github.com/lichess-org/api/blob/master/example/README.md) ### Personal Access Token Personal API access tokens allow you to quickly interact with Lichess API without going through an OAuth flow. - [Generate a personal access token](https://lichess.org/account/oauth/token) - `curl https://lichess.org/api/account -H "Authorization: Bearer {token}"` - [NodeJS example](https://github.com/lichess-org/api/tree/master/example/oauth-personal-token) ### Token Security - Keep your tokens secret. Do not share them in public repositories or public forums. - Your tokens can be used to make your account perform arbitrary actions (within the limits of the tokens'' scope). You remain responsible for all activities on your account. - Do not hardcode tokens in your application''s code. Use environment variables or a secure storage and ensure they are not shipped/exposed to users. Be especially careful that they are not included in frontend bundles or apps that are shipped to users. - If you suspect a token has been compromised, revoke it immediately. To see your active tokens or revoke them, see [your Personal API access tokens](https://lichess.org/account/oauth/token). ### Authorization Code Flow with PKCE The authorization code flow with PKCE allows your users to **login with Lichess**. Lichess supports unregistered and public clients (no client authentication, choose any unique client id). The only accepted code challenge method is `S256`. Access tokens are long-lived (expect one year), unless they are revoked. Refresh tokens are not supported. See the [documentation for the OAuth endpoints](#tag/OAuth) or the [PKCE RFC](https://datatracker.ietf.org/doc/html/rfc7636#section-4) for a precise protocol description. - [Demo app](https://lichess-org.github.io/api-demo/) - [Minimal client-side example](https://github.com/lichess-org/api/tree/master/example/oauth-app) - [Flask/Python example](https://github.com/lakinwecker/lichess-oauth-flask) - [Java example](https://github.com/tors42/lichess-oauth-pkce-app) - [NodeJS Passport strategy to login with Lichess OAuth2](https://www.npmjs.com/package/passport-lichess) #### Real life examples - [PyChess](https://github.com/gbtami/pychess-variants) ([source code](https://github.com/gbtami/pychess-variants)) - [Lichess4545](https://www.lichess4545.com/) ([source code](https://github.com/cyanfish/heltour)) - [English Chess Federation](https://ecf.octoknight.com/) - [Rotherham Online Chess](https://rotherhamonlinechess.azurewebsites.net/tournaments) ### Token format Access tokens and authorization codes match `^[A-Za-z0-9_]+$`. The length of tokens can be increased without notice. Make sure your application can handle at least 512 characters. By convention tokens have a recognizable prefix, but do not rely on this. ' servers: - url: https://lichess.org - url: https://lichess.dev - url: http://localhost:{port} variables: port: default: '8080' - url: http://l.org tags: - name: Opening Explorer description: 'Lookup positions from the [Lichess opening explorer](https://lichess.org/analysis#explorer). Runs . > [!important] > The hostname for these endpoints is `explorer.lichess.org` and not `lichess.org`. ' paths: /masters: get: operationId: openingExplorerMaster summary: Masters database description: '**Endpoint: ** Example: `curl https://explorer.lichess.org/masters?play=d2d4,d7d5,c2c4,c7c6,c4d5` ' tags: - Opening Explorer servers: - url: https://explorer.lichess.org - url: http://localhost:{port} variables: port: default: '9002' security: - OAuth2: [] parameters: - in: query name: fen description: X-FEN of the root position schema: type: string example: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 - in: query name: play description: 'Comma separated sequence of legal moves in UCI notation. Play additional moves starting from `fen`. Required to find an opening name, if `fen` is not an exact match for a named position. ' schema: type: string default: '' example: d2d4,d7d5,c2c4,c7c6,c4d5 - in: query name: since description: Include only games from this year or later schema: type: integer default: 1952 - in: query name: until description: Include only games from this year or earlier schema: type: integer - in: query name: moves description: Number of most common moves to display schema: type: integer default: 12 - in: query name: topGames description: Number of top games to display schema: type: integer default: 15 maximum: 15 responses: '200': description: Opening statistics and game references for the position. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/OpeningExplorerMasters' examples: default: $ref: '#/components/examples/openingExplorer-masters.json' /lichess: get: operationId: openingExplorerLichess summary: Lichess games description: '**Endpoint: ** Aggregated rated games from all Lichess players. Example: `curl https://explorer.lichess.org/lichess?variant=standard&speeds=blitz,rapid,classical&ratings=2200,2500&fen=rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR%20w%20KQkq%20-%200%201` ' tags: - Opening Explorer servers: - url: https://explorer.lichess.org - url: http://localhost:{port} variables: port: default: '9002' security: - OAuth2: [] parameters: - in: query name: variant description: Variant schema: $ref: '#/components/schemas/VariantKey' default: standard - in: query name: fen description: X-FEN or EPD of the root position schema: type: string example: rnbqkbnr/ppp1pppp/8/3pP3/8/8/PPPP1PPP/RNBQKBNR b KQkq - 0 2 - in: query name: play description: 'Comma separated sequence of legal moves in UCI notation. Play additional moves starting from `fen`. Required to find an opening name, if `fen` is not an exact match for a named position. ' schema: type: string default: '' example: d2d4,d7d5,c2c4,c7c6,c4d5 - in: query name: speeds description: Comma separated list of game speeds to filter by schema: type: array items: $ref: '#/components/schemas/Speed' - in: query name: ratings description: 'Comma separated list of ratings groups to filter by. Each group ranges from its value to the next higher group in the enum (`0` from 0 to 999, `1000` from 1000 to 1199, ..., `2500` from 2500 to any rating above). ' schema: type: array items: type: integer enum: - 0 - 1000 - 1200 - 1400 - 1600 - 1800 - 2000 - 2200 - 2500 - in: query name: since description: Include only games from this month or later schema: type: string default: 1952-01 - in: query name: until description: Include only games from this month or earlier schema: type: string default: 3000-12 - in: query name: moves description: Number of most common moves to display schema: type: integer default: 12 - in: query name: topGames description: 'Maximum number of top games to display. Due to the way banned users are handled internally, the response may contain fewer games than expected. ' schema: type: integer default: 4 maximum: 4 - in: query name: recentGames description: 'Maximum number of recent games to display. Due to the way banned users are handled internally, the response may contain fewer games than expected. ' schema: type: integer default: 4 maximum: 4 - in: query name: history description: Optionally retrieve history schema: type: boolean default: false responses: '200': description: Opening statistics and game references for the position. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/OpeningExplorerLichess' examples: default: $ref: '#/components/examples/openingExplorer-lichess.json' /player: get: operationId: openingExplorerPlayer summary: Player games description: '**Endpoint: ** Games of a Lichess player. Responds with a stream of [newline delimited JSON](#description/streaming-with-nd-json). Will start indexing on demand, immediately respond with the current results, and stream more updates until indexing is complete. The stream is throttled and deduplicated. Empty lines may be sent to avoid timeouts. Will index new games at most once per minute, and revisit previously ongoing games at most once every day. Example: `curl https://explorer.lichess.org/player?player=revoof&color=white&play=d2d4,d7d5&recentGames=1` ' tags: - Opening Explorer servers: - url: https://explorer.lichess.org - url: http://localhost:{port} variables: port: default: '9002' security: - OAuth2: [] parameters: - in: query name: player description: Username or ID of the player schema: type: string example: revoof required: true - in: query name: color description: Look for games with *player* on the given side schema: type: string enum: - white - black example: white required: true - in: query name: variant description: Variant schema: $ref: '#/components/schemas/VariantKey' default: standard - in: query name: fen description: X-FEN of the root position schema: type: string example: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 - in: query name: play description: 'Comma separated sequence of legal moves in UCI notation. Play additional moves starting from `fen`. Required to find an opening name, if `fen` is not an exact match for a named position. ' schema: type: string default: '' example: d2d4,d7d5 - in: query name: speeds description: Comma separated list of game speeds to look for schema: type: array items: $ref: '#/components/schemas/Speed' - in: query name: modes description: Comma separated list of modes schema: type: array items: type: string enum: - casual - rated - in: query name: since description: Include only games from this month or later schema: type: string default: 1952-01 - in: query name: until description: Include only games from this month or earlier schema: type: string default: 3000-12 - in: query name: moves description: Number of most common moves to display schema: type: integer - in: query name: recentGames description: Number of recent games to display schema: type: integer default: 8 maximum: 8 responses: '200': description: Opening statistics and game references for the position. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/OpeningExplorerPlayer' examples: default: $ref: '#/components/examples/openingExplorer-player.json' /masters/pgn/{gameId}: get: operationId: openingExplorerMasterGame summary: OTB master game description: '**Endpoint: `https://explorer.lichess.org/masters/pgn/{gameId}`** Example: `curl https://explorer.lichess.org/masters/pgn/aAbqI4ey` ' tags: - Opening Explorer servers: - url: https://explorer.lichess.org - url: http://localhost:{port} variables: port: default: '9002' security: - OAuth2: [] parameters: - in: path name: gameId schema: type: string required: true responses: '200': description: The PGN representation of the game. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: type: string description: Game PGN examples: pgn: $ref: '#/components/examples/openingExplorer-otbMasterGame.pgn' components: schemas: OpeningExplorerPlayerGame: type: object properties: id: type: string winner: oneOf: - $ref: '#/components/schemas/GameColor' - type: 'null' speed: $ref: '#/components/schemas/Speed' mode: type: string enum: - rated - casual white: $ref: '#/components/schemas/OpeningExplorerGamePlayer' black: $ref: '#/components/schemas/OpeningExplorerGamePlayer' year: type: integer month: type: string required: - id - winner - speed - mode - white - black - year - month Speed: type: string enum: - ultraBullet - bullet - blitz - rapid - classical - correspondence OpeningExplorerPlayer: type: object properties: opening: oneOf: - $ref: '#/components/schemas/OpeningExplorerOpening' - type: 'null' queuePosition: type: integer description: Waiting for other players to be indexed first white: type: integer draws: type: integer black: type: integer moves: type: array items: type: object properties: uci: type: string san: type: string averageOpponentRating: type: integer performance: type: integer white: type: integer draws: type: integer black: type: integer game: oneOf: - $ref: '#/components/schemas/OpeningExplorerPlayerGame' - type: 'null' opening: oneOf: - $ref: '#/components/schemas/OpeningExplorerOpening' - type: 'null' required: - uci - san - averageOpponentRating - performance - white - draws - black - game - opening recentGames: type: array items: allOf: - type: object properties: uci: type: string required: - uci - $ref: '#/components/schemas/OpeningExplorerPlayerGame' required: - opening - queuePosition - white - draws - black - moves - recentGames example: opening: eco: D00 name: Queen's Pawn Game queuePosition: 25 white: 366 draws: 23 black: 279 moves: - uci: c2c4 san: c4 averageOpponentRating: 1695 performance: 1744 white: 361 draws: 23 black: 272 game: null opening: eco: D06 name: Queen's Gambit - uci: c2c3 san: c3 averageOpponentRating: 1797 performance: 1797 white: 2 draws: 0 black: 2 game: null opening: null - uci: e2e4 san: e4 averageOpponentRating: 1762 performance: 1640 white: 1 draws: 0 black: 2 game: null opening: eco: D00 name: Blackmar-Diemer Gambit - uci: g1f3 san: Nf3 averageOpponentRating: 1497 performance: 1374 white: 1 draws: 0 black: 2 game: null opening: eco: D02 name: 'Queen''s Pawn Game: Zukertort Variation' - uci: h2h4 san: h4 averageOpponentRating: 1674 performance: 874 white: 0 draws: 0 black: 1 game: id: 9vA24xBn winner: black speed: bullet mode: rated black: name: MentalBlood rating: 1674 white: name: revoof rating: 1657 year: 2020 month: 2020-06 opening: null recentGames: - uci: c2c4 id: ycZbWQZO winner: white speed: bullet mode: rated black: name: Winavesh rating: 1700 white: name: revoof rating: 1700 year: 2024 month: 2024-11 OpeningExplorerMastersGame: type: object properties: id: type: string winner: oneOf: - $ref: '#/components/schemas/GameColor' - type: 'null' white: $ref: '#/components/schemas/OpeningExplorerGamePlayer' black: $ref: '#/components/schemas/OpeningExplorerGamePlayer' year: type: integer month: type: string required: - id - winner - white - black - year OpeningExplorerLichessGame: type: object properties: id: type: string winner: oneOf: - $ref: '#/components/schemas/GameColor' - type: 'null' speed: $ref: '#/components/schemas/Speed' white: $ref: '#/components/schemas/OpeningExplorerGamePlayer' black: $ref: '#/components/schemas/OpeningExplorerGamePlayer' year: type: number month: type: - string - 'null' required: - id - winner - white - black - year - month OpeningExplorerMasters: type: object properties: opening: oneOf: - $ref: '#/components/schemas/OpeningExplorerOpening' - type: 'null' white: type: integer draws: type: integer black: type: integer moves: type: array items: properties: uci: type: string san: type: string averageRating: type: integer white: type: integer draws: type: integer black: type: integer game: oneOf: - $ref: '#/components/schemas/OpeningExplorerMastersGame' - type: 'null' opening: oneOf: - $ref: '#/components/schemas/OpeningExplorerOpening' - type: 'null' required: - uci - san - averageRating - white - draws - black - game - opening topGames: type: array items: allOf: - type: object properties: uci: type: string required: - uci - $ref: '#/components/schemas/OpeningExplorerMastersGame' required: - opening - white - draws - black - moves - topGames VariantKey: type: string enum: - standard - chess960 - crazyhouse - antichess - atomic - horde - kingOfTheHill - racingKings - threeCheck - fromPosition example: standard default: standard GameColor: type: string enum: - white - black OpeningExplorerGamePlayer: type: object properties: name: type: string rating: type: integer required: - name - rating OpeningExplorerLichess: type: object properties: opening: oneOf: - $ref: '#/components/schemas/OpeningExplorerOpening' - type: 'null' white: type: integer draws: type: integer black: type: integer moves: type: array items: type: object properties: uci: type: string san: type: string averageRating: type: integer white: type: integer draws: type: integer black: type: integer game: oneOf: - $ref: '#/components/schemas/OpeningExplorerLichessGame' - type: 'null' opening: oneOf: - $ref: '#/components/schemas/OpeningExplorerOpening' - type: 'null' required: - uci - san - averageRating - white - draws - black - game - opening topGames: type: array items: allOf: - type: object properties: uci: type: string required: - uci - $ref: '#/components/schemas/OpeningExplorerLichessGame' recentGames: type: array items: allOf: - type: object properties: uci: type: string required: - uci - $ref: '#/components/schemas/OpeningExplorerLichessGame' history: type: array items: type: object properties: month: type: string white: type: integer draws: type: integer black: type: integer required: - month - white - draws - black required: - opening - white - draws - black - moves - topGames OpeningExplorerOpening: type: object properties: eco: type: string name: type: string required: - eco - name examples: openingExplorer-otbMasterGame.pgn: value: '[Event "Wch Blitz"] [Site "Astana"] [Date "2012.07.10"] [Round "23"] [White "Carlsen, Magnus"] [Black "Chadaev, Nikolay"] [Result "1-0"] [WhiteElo "2837"] [BlackElo "2580"] 1. e4 e5 2. f4 d5 3. exd5 exf4 4. Nf3 Nf6 5. c4 c6 6. d4 cxd5 7. c5 Nc6 8. Bb5 Be7 9. O-O O-O 10. Bxf4 Bg4 11. Nc3 Ne4 12. Qd3 Bf5 13. Qe3 Bf6 14. Bxc6 bxc6 15. Ne5 Bxe5 16. Bxe5 Bg6 17. Nxe4 Bxe4 18. Qg3 f6 19. Bd6 Re8 20. b4 Bg6 21. a4 a6 22. h4 Qd7 23. h5 Bxh5 24. Rxf6 Qg4 25. Qxg4 Bxg4 26. Rf4 Bh5 27. Raf1 h6 28. Be5 Ra7 29. b5 axb5 30. axb5 cxb5 31. c6 Raa8 32. c7 Kh7 33. Rb1 Be2 34. Rf7 Rg8 35. Re7 Bc4 36. Kh2 Rae8 37. Rd7 Ra8 38. Rb2 Raf8 39. g4 Ra8 40. Rf2 b4 41. Rff7 h5 42. Rxg7+ Rxg7 43. Rxg7+ 1-0 ' openingExplorer-lichess.json: value: white: 5061745 draws: 492487 black: 4458129 moves: - uci: c6d5 san: cxd5 averageRating: 1806 white: 4517660 draws: 450366 black: 4016728 game: null opening: null - uci: d8d5 san: Qxd5 averageRating: 1662 white: 236785 draws: 17561 black: 170379 game: null opening: null - uci: g8f6 san: Nf6 averageRating: 1973 white: 195502 draws: 17425 black: 184987 game: null opening: eco: D06 name: 'Queen''s Gambit Declined: Marshall Defense, Tan Gambit' - uci: e7e6 san: e6 averageRating: 1839 white: 40807 draws: 2695 black: 32332 game: null opening: null - uci: d8a5 san: Qa5+ averageRating: 1436 white: 19458 draws: 1221 black: 13712 game: null opening: null - uci: c8f5 san: Bf5 averageRating: 1705 white: 17503 draws: 1118 black: 15374 game: null opening: null - uci: c6c5 san: c5 averageRating: 1802 white: 11081 draws: 678 black: 6174 game: null opening: null - uci: g7g6 san: g6 averageRating: 1861 white: 3867 draws: 325 black: 3561 game: null opening: null - uci: c8g4 san: Bg4 averageRating: 1866 white: 3775 draws: 255 black: 3715 game: null opening: null - uci: e7e5 san: e5 averageRating: 1820 white: 2796 draws: 156 black: 2555 game: null opening: null - uci: a7a6 san: a6 averageRating: 1877 white: 2180 draws: 139 black: 1876 game: null opening: null - uci: b8d7 san: Nd7 averageRating: 1627 white: 2302 draws: 119 black: 1574 game: null opening: null recentGames: - uci: c6d5 id: PFRcQXaV winner: white speed: bullet mode: rated black: name: chaotic_logic rating: 2611 white: name: AritzMancha rating: 2626 year: 2026 month: 2026-01 - uci: c6d5 id: 1Eu0KMO6 winner: white speed: blitz mode: rated black: name: Helmy-Saber2 rating: 2160 white: name: denk_er rating: 2222 year: 2026 month: 2026-01 - uci: c6d5 id: Oykwl4gi winner: white speed: blitz mode: rated black: name: JonKi1002 rating: 1831 white: name: KonstantinXCII rating: 1940 year: 2026 month: 2026-01 - uci: c6d5 id: ayG0PtAu winner: black speed: bullet mode: rated black: name: IlyaGaon rating: 1364 white: name: hitomii rating: 1413 year: 2026 month: 2026-01 topGames: - uci: g8f6 id: EqJcFS1j winner: white speed: ultraBullet mode: rated black: name: toivok rating: 2708 white: name: penguingim1 rating: 2969 year: 2018 month: 2018-04 - uci: c6d5 id: Z8bSC15J winner: black speed: rapid mode: rated black: name: ShadowsOfPain rating: 2971 white: name: rightup rating: 2630 year: 2025 month: 2025-07 - uci: c6d5 id: IGCORYDn winner: null speed: rapid mode: rated black: name: torombot rating: 2987 white: name: the_magnificent_bob rating: 2981 year: 2024 month: 2024-03 opening: eco: D10 name: 'Slav Defense: Exchange Variation' openingExplorer-player.json: value: white: 366 draws: 23 black: 279 moves: - uci: c2c4 san: c4 averageOpponentRating: 1695 performance: 1744 white: 361 draws: 23 black: 272 game: null opening: eco: D06 name: Queen's Gambit - uci: c2c3 san: c3 averageOpponentRating: 1797 performance: 1797 white: 2 draws: 0 black: 2 game: null opening: null - uci: e2e4 san: e4 averageOpponentRating: 1762 performance: 1640 white: 1 draws: 0 black: 2 game: null opening: eco: D00 name: Blackmar-Diemer Gambit - uci: g1f3 san: Nf3 averageOpponentRating: 1497 performance: 1374 white: 1 draws: 0 black: 2 game: null opening: eco: D02 name: 'Queen''s Pawn Game: Zukertort Variation' - uci: h2h4 san: h4 averageOpponentRating: 1674 performance: 874 white: 0 draws: 0 black: 1 game: id: 9vA24xBn winner: black speed: bullet mode: rated black: name: MentalBlood rating: 1674 white: name: revoof rating: 1657 year: 2020 month: 2020-06 opening: null - uci: h2h3 san: h3 averageOpponentRating: 1696 performance: 2496 white: 1 draws: 0 black: 0 game: id: zyI4GGKv winner: white speed: bullet mode: rated black: name: gocool99 rating: 1696 white: name: revoof rating: 1702 year: 2020 month: 2020-07 opening: null recentGames: - uci: c2c4 id: ycZbWQZO winner: white speed: bullet mode: rated black: name: Winavesh rating: 1700 white: name: revoof rating: 1700 year: 2024 month: 2024-11 opening: eco: D00 name: Queen's Pawn Game queuePosition: 178 openingExplorer-masters.json: value: white: 1927 draws: 5215 black: 1469 moves: - uci: c6d5 san: cxd5 averageRating: 2412 white: 1927 draws: 5215 black: 1468 game: null opening: null - uci: g8f6 san: Nf6 averageRating: 2515 white: 0 draws: 0 black: 1 game: id: 1EErB5jc winner: black black: name: Dobrov, Vladimir rating: 2515 white: name: Drozdovskij, Yuri rating: 2509 year: 2006 month: 2006-01 opening: eco: D06 name: 'Queen''s Gambit Declined: Marshall Defense, Tan Gambit' topGames: - uci: c6d5 id: kN6d9l2i winner: black black: name: Anand, V. rating: 2785 white: name: Carlsen, M. rating: 2881 year: 2014 month: 2014-06 - uci: c6d5 id: qeYPJL2y winner: white black: name: Carlsen, M. rating: 2843 white: name: So, W. rating: 2778 year: 2018 month: 2018-06 - uci: c6d5 id: VpWYyv3g winner: null black: name: Carlsen, M.. rating: 2847 white: name: So, W.. rating: 2770 year: 2021 month: 2021-03 - uci: c6d5 id: nlh6QPSg winner: white black: name: Vachier Lagrave, Maxime rating: 2778 white: name: Caruana, Fabiano rating: 2835 year: 2020 month: 2020-06 - uci: c6d5 id: IYy7abvG winner: black black: name: Caruana, Fabiano rating: 2835 white: name: So, Wesley rating: 2770 year: 2020 month: 2020-06 - uci: c6d5 id: sKEBcLbM winner: null black: name: Carlsen, M. rating: 2832 white: name: Grischuk, A. rating: 2761 year: 2017 month: 2017-06 - uci: c6d5 id: ambcPQzJ winner: white black: name: Nakamura, Hikaru rating: 2775 white: name: Aronian, Levon rating: 2813 year: 2013 month: 2013-05 - uci: c6d5 id: 7x23lu2J winner: black black: name: Karjakin, Sergey rating: 2771 white: name: Aronian, L. rating: 2815 year: 2014 month: 2014-06 - uci: c6d5 id: FLar3fv2 winner: white black: name: Duda, Jan Krzysztof rating: 2757 white: name: Caruana, Fabiano rating: 2828 year: 2020 month: 2020-10 - uci: c6d5 id: mOtWn31m winner: black black: name: Nakamura, Hi rating: 2804 white: name: Caruana, F. rating: 2776 year: 2025 month: 2025-05 - uci: c6d5 id: 2O6imBL4 winner: black black: name: Aronian, L. rating: 2764 white: name: Mamedyarov, S. rating: 2808 year: 2018 month: 2018-06 - uci: c6d5 id: 4DG6brd6 winner: null black: name: Caruana, Fabiano rating: 2835 white: name: Nakamura, Hikaru rating: 2736 year: 2020 month: 2020-05 - uci: c6d5 id: LNwpnUi7 winner: null black: name: Vachier Lagrave, M. rating: 2779 white: name: Nakamura, Hi rating: 2777 year: 2018 month: 2018-10 - uci: c6d5 id: f7QMeZlL winner: black black: name: Carlsen, M. rating: 2840 white: name: Vallejo Pons, F. rating: 2711 year: 2016 month: 2016-12 - uci: c6d5 id: vZzIG6Vo winner: white black: name: Nakamura, Hikaru rating: 2774 white: name: Ivanchuk, Vassily rating: 2776 year: 2011 month: 2011-06 opening: eco: D10 name: 'Slav Defense: Exchange Variation' securitySchemes: OAuth2: type: oauth2 description: 'Read [the introduction for how to make authenticated requests](#description/authentication). ' flows: authorizationCode: authorizationUrl: https://lichess.org/oauth tokenUrl: https://lichess.org/api/token scopes: preference:read: Read your preferences preference:write: Write your preferences email:read: Read your email address engine:read: Read your external engines engine:write: Create, update, delete your external engines challenge:read: Read incoming challenges challenge:write: Create, accept, decline challenges challenge:bulk: Create, delete, query bulk pairings study:read: Read private studies and broadcasts study:write: Create, update, delete studies and broadcasts tournament:write: Create tournaments racer:write: Create and join puzzle races puzzle:read: Read puzzle activity puzzle:write: Write puzzle activity team:read: Read private team information team:write: Join, leave teams team:lead: Manage teams (kick members, send PMs) follow:read: Read followed players follow:write: Follow and unfollow other players msg:write: Send private messages to other players board:play: Play with the Board API bot:play: Play with the Bot API. Only for [Bot accounts](#tag/bot/POST/api/bot/account/upgrade) web:mod: Use moderator tools (within the bounds of your permissions)