openapi: 3.1.0 info: version: 2.0.144 title: Lichess.org API reference 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: Account description: | Read and write account information and preferences. - name: Analysis description: | Access Lichess cloud evaluations database. - name: Board description: | Play on Lichess with physical boards and third-party clients. Works with normal Lichess accounts. Engine play or assistance is [forbidden](https://lichess.org/page/fair-play). ### Features - [Stream incoming chess moves](#tag/board/GET/api/board/game/stream/{gameId}) - [Play chess moves](#tag/board/POST/api/board/game/{gameId}/move/{move}) - [Read](#tag/board/GET/api/board/game/stream/{gameId}) and [write](#tag/board/POST/api/board/game/{gameId}/chat) in the player and spectator chats - [Receive](#tag/board/GET/api/stream/event), [create](#tag/challenges/POST/api/challenge/{username}) and [accept](#tag/challenges/POST/api/challenge/{challengeId}/accept) (or [decline](#tag/challenges/POST/api/challenge/{challengeId}/decline)) challenges - [Abort](#tag/board/POST/api/board/game/{gameId}/abort) and [resign](#tag/board/POST/api/board/game/{gameId}/resign) games - Compatible with normal Lichess accounts ### Restrictions - Engine assistance, or any kind of outside help, is [forbidden](https://lichess.org/page/fair-play) - Time controls: [Rapid, Classical and Correspondence](https://lichess.org/faq#time-controls) only. For direct challenges, games vs AI, and bulk pairing, Blitz is also possible. ### Links - [Announcement](https://lichess.org/blog/XlRW5REAAB8AUJJ-/welcome-lichess-boards) - [Implementation example](https://github.com/lichess-org/api-demo) and [live demo](https://lichess-org.github.io/api-demo/) - [Certabo support](https://github.com/haklein/certabo-lichess) - [Lichs (play from command-line)](https://github.com/Cqsi/lichs) - [Lichess discord bot](https://top.gg/bot/707287095911120968) - [cli-chess](https://github.com/trevorbayless/cli-chess/) - [Blunderly 3D board](https://github.com/maurimo/blunderly) - Yours? Please make [an issue or pull request](https://github.com/lichess-org/api). - name: Bot description: | Play on Lichess as a bot. Allows engine play. Read the [blog post announcement of lichess bots](https://lichess.org/blog/WvDNticAAMu_mHKP/welcome-lichess-bots). Only works with [Bot accounts](#tag/bot/POST/api/bot/account/upgrade). ### Features - [Stream incoming chess moves](#tag/bot/GET/api/bot/game/stream/{gameId}) - [Play chess moves](#tag/bot/POST/api/bot/game/{gameId}/move/{move}) - [Read](#tag/bot/GET/api/bot/game/stream/{gameId}) and [write](#tag/bot/POST/api/bot/game/{gameId}/chat) in the player and spectator chats - [Receive](#tag/bot/GET/api/stream/event), [create](#tag/challenges/POST/api/challenge/{username}) and [accept](#tag/challenges/POST/api/challenge/{challengeId}/accept) (or [decline](#tag/challenges/POST/api/challenge/{challengeId}/decline)) challenges - [Abort](#tag/bot/POST/api/bot/game/{gameId}/abort) and [resign](#tag/bot/POST/api/bot/game/{gameId}/resign) games - Engine assistance is [allowed](https://lichess.org/page/fair-play) ### Restrictions - Bots can only play challenge games: pools and tournaments are off-limits - Bots cannot play UltraBullet (¼+0) because it requires making too many requests. But 0+1 and ½+0 are allowed. - Bots must follow [Lichess TOS](https://lichess.org/terms-of-service) specifically Sandbagging, Constant Aborting, Boosting, etc - Bot devs are advised to make their Bots play casual only when testing their Bots logic and to avoid breaking Lichess TOS. ### Integrations - [Python3 lichess-bot](https://github.com/lichess-bot-devs/lichess-bot) (official) - [Python3 lichess UCI bot](https://github.com/Torom/BotLi) - [JavaScript bot-o-tron](https://github.com/tailuge/bot-o-tron) - [Golang lichess-bot](https://github.com/dolegi/lichess-bot) - [Electronic Chessboard](http://www.oliviermercier.com/res/projects/chessboard/) - Yours? Please make [an issue or pull request](https://github.com/lichess-org/api). ### Links - [Announcement](https://lichess.org/blog/WvDNticAAMu_mHKP/welcome-lichess-bots) - Join the [Lichess Bots team](https://lichess.org/team/lichess-bots) with your bot account - [Get help in the discord channel](https://discord.gg/quwueFd) - Watch [Lichess Bot TV](https://lichess.org/tv/bot) - name: Broadcasts description: | Relay chess events on Lichess. [Official broadcasts](https://lichess.org/broadcast) are maintained by Lichess, but you can [create your own broadcasts](https://lichess.org/broadcast/new) to cover any live game or chess event. You will need to publish PGN on a public URL so that Lichess can pull updates from it. Alternatively, you can push PGN updates to Lichess using [this API endpoint](#tag/broadcasts/POST/api/broadcast/round/{broadcastRoundId}/push). Broadcasts are organized in tournaments, which have several rounds, which have several games. You must first create a tournament, then you can add rounds to them. - name: Bulk pairings description: | Create many games for other players. These endpoints are intended for tournament organisers. - name: Challenges description: | Send and receive challenges to play. To create a lot of challenges, consider [bulk pairing](#tag/bulk-pairings/POST/api/bulk-pairing) instead. - name: External engine description: | **This API is in alpha and subject to change.** Use or provide external engine analysis. External engines can provide analysis on pages like the [analysis board](https://lichess.org/analysis), running as a service outside of the browser, or even on a different machine. - name: FIDE description: | FIDE players and federations from [their public download](https://ratings.fide.com/download_lists.phtml). - name: Games description: | Access games played on Lichess. - name: Messaging description: | Private messages with other players. - 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`. - name: Puzzles description: | 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). - name: Relations description: | Access relations between users. - name: Simuls description: | Access simuls played on Lichess. - name: Studies description: | Access Lichess studies. - name: Tablebase description: | Lookup positions from the [Lichess tablebase server](https://lichess.org/blog/W3WeMyQAACQAdfAL/7-piece-syzygy-tablebases-are-complete). > [!important] > The hostname for these endpoints is `tablebase.lichess.org` and not `lichess.org`. - name: Teams description: | Access and manage Lichess teams and their members. - name: Tournaments (Arena) description: | Access Arena tournaments played on Lichess. [Official Arena tournaments](https://lichess.org/tournament) are maintained by Lichess, but you can [create your own Arena tournaments](https://lichess.org/tournament/new) as well. - name: Tournaments (Swiss) description: | Access Swiss tournaments played on Lichess. [Read more about Swiss tournaments.](https://lichess.org/swiss). - name: TV description: | Access Lichess TV channels and games. & - name: Users description: | Access registered users on Lichess. - Each user blog exposes an atom (RSS) feed, like - User blogs mashup feed: https://lichess.org/blog/community.atom - User blogs mashup feed for a language: https://lichess.org/blog/community/fr.atom - name: OAuth description: | Obtaining and revoking OAuth tokens. [Read about the Lichess API authentication methods and code examples](https://github.com/lichess-org/api/blob/master/example/README.md). paths: /api/users/status: get: operationId: apiUsersStatus summary: Get real-time users status description: | Read the `online`, `playing` and `streaming` flags of several users. This API is very fast and cheap on lichess side. So you can call it quite often (like once every 5 seconds). Use it to track players and know when they're connected on lichess and playing games. tags: - Users security: [] parameters: - in: query name: ids required: true description: User IDs separated by commas. Up to 100 IDs. schema: type: string example: thibault,maia1,maia5 - in: query name: withSignal required: false description: | Also return the network signal of the player, when available. It ranges from 1 (poor connection, lag > 500ms) to 4 (great connection, lag < 150ms) Defaults to `false` to preserve server resources. schema: type: boolean example: true - in: query name: withGameIds required: false description: | Also return the ID of the game being played, if any, for each player, in a `playingId` field. Defaults to `false` to preserve server resources. schema: type: boolean example: true - in: query name: withGameMetas required: false description: | Also return the id, time control and variant of the game being played, if any, for each player, in a `playing` field. Defaults to `false` to preserve server resources. Disables `withGameIds`. schema: type: boolean example: true responses: '200': description: The list of users and their respective statuses. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: type: object properties: id: type: string name: type: string flair: $ref: '#/components/schemas/Flair' title: $ref: '#/components/schemas/Title' online: type: boolean playing: type: boolean streaming: type: boolean patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' required: - id - name examples: default: $ref: '#/components/examples/users-getRealTimeUsersStatus.json' /api/player: get: operationId: player summary: Get all top 10 tags: - Users security: [] description: | Get the top 10 players for each speed and variant. See . responses: '200': description: The list of variants with their respective top players. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Top10s' examples: default: $ref: '#/components/examples/users-getAllTop10.json' /api/player/top/{nb}/{perfType}: get: operationId: playerTopNbPerfType summary: Get one leaderboard tags: - Users security: [] description: | Get the leaderboard for a single speed or variant (a.k.a. `perfType`). There is no leaderboard for correspondence or puzzles. See . parameters: - in: path name: nb description: How many users to fetch schema: type: integer minimum: 1 maximum: 100 example: 100 required: true - in: path name: perfType description: The speed or variant schema: type: string example: bullet enum: - ultraBullet - bullet - blitz - rapid - classical - chess960 - crazyhouse - antichess - atomic - horde - kingOfTheHill - racingKings - threeCheck required: true responses: '200': description: The list of top players for the variant. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/vnd.lichess.v3+json: schema: $ref: '#/components/schemas/Leaderboard' examples: default: $ref: '#/components/examples/users-getOneLeaderboard.json' /api/user/{username}: get: operationId: apiUser summary: Get user public data description: | Read public data of a user. tags: - Users security: - OAuth2: [] parameters: - in: path name: username schema: type: string required: true - in: query name: trophies description: Include user trophies schema: type: boolean default: false - in: query name: profile description: Include user profile data schema: type: boolean default: true - in: query name: rank description: Include global lichess ranking for each perf schema: type: boolean default: false - in: query name: fideId description: Include public FIDE ID if any schema: type: boolean default: false responses: '200': description: The information of the user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/UserExtended' examples: default: $ref: '#/components/examples/users-getUserPublicData.json' /api/user/{username}/rating-history: get: operationId: apiUserRatingHistory summary: Get rating history of a user description: | Read rating history of a user, for all perf types. There is at most one entry per day. Format of an entry is `[year, month, day, rating]`. `month` starts at zero (January). tags: - Users security: [] parameters: - in: path name: username schema: type: string required: true responses: '200': description: The rating history of the user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/RatingHistory' examples: default: $ref: '#/components/examples/users-getRatingHistoryOfAUser.json' /api/user/{username}/perf/{perf}: get: operationId: apiUserPerf summary: Get performance statistics of a user description: | Read performance statistics of a user, for a single performance. Similar to the [performance pages on the website](https://lichess.org/@/thibault/perf/bullet). tags: - Users security: [] parameters: - in: path name: username schema: type: string required: true - in: path name: perf schema: $ref: '#/components/schemas/PerfType' required: true responses: '200': description: The performance statistics of the user headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PerfStat' examples: default: $ref: '#/components/examples/users-getPerformanceStatisticsOfAUser.json' /api/user/{username}/activity: get: operationId: apiUserActivity summary: Get user activity description: | Read data to generate the activity feed of a user. tags: - Users security: [] parameters: - in: path name: username schema: type: string required: true responses: '200': description: The activity feed of the user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: $ref: '#/components/schemas/UserActivity' examples: default: $ref: '#/components/examples/users-getUserActivity.json' /api/puzzle/daily: get: operationId: apiPuzzleDaily summary: Get the daily puzzle description: | Get the daily Lichess puzzle in JSON format. tags: - Puzzles security: [] responses: '200': description: The daily puzzle. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleAndGame' examples: default: $ref: '#/components/examples/puzzles-getDailyPuzzle.json' /api/puzzle/{id}: get: operationId: apiPuzzleId summary: Get a puzzle by its ID description: Get a single Lichess puzzle in JSON format. tags: - Puzzles security: [] parameters: - in: path name: id required: true description: The puzzle ID schema: type: string responses: '200': description: The requested puzzle. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleAndGame' examples: default: $ref: '#/components/examples/puzzles-getPuzzleById.json' /api/puzzle/next: get: operationId: apiPuzzleNext summary: Get a new puzzle description: | Get a random Lichess puzzle in JSON format. If authenticated, only returns puzzles that the user has never seen before. **DO NOT** use this endpoint to enumerate puzzles for mass download. Instead, download the [full public puzzle database](https://database.lichess.org/#puzzles). tags: - Puzzles security: - OAuth2: - puzzle:read parameters: - in: query name: angle required: false description: | The theme or opening to filter puzzles with. Available themes are listed in [the lichess source code](https://github.com/ornicar/lila/blob/master/translation/source/puzzleTheme.xml) and [the lichess training themes hyperlinks](https://lichess.org/training/themes). schema: type: string - in: query name: difficulty required: false description: The desired puzzle difficulty, relative to the authenticated user puzzle rating, or 1500 if anonymous. schema: type: string enum: - easiest - easier - normal - harder - hardest - in: query name: color required: false description: The color to play. Better left empty to automatically get 50% white. schema: type: string enum: - white - black responses: '200': description: The requested puzzle. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleAndGame' examples: default: $ref: '#/components/examples/puzzles-getNewPuzzle.json' /api/puzzle/batch/{angle}: get: operationId: apiPuzzleBatchSelect summary: Get multiple puzzles at once description: | Get a batch of random Lichess puzzles in JSON format. If authenticated, only returns puzzles that the user has never seen before. **DO NOT** use this endpoint to enumerate puzzles for mass download. Instead, download the [full public puzzle database](https://database.lichess.org/#puzzles). tags: - Puzzles security: - OAuth2: - puzzle:read parameters: - in: path name: angle schema: type: string example: mix required: true description: | The theme or opening to filter puzzles with. Recommended: `mix`. Available themes are listed in [the lichess source code](https://github.com/ornicar/lila/blob/master/translation/source/puzzleTheme.xml) and [the lichess training themes hyperlinks](https://lichess.org/training/themes). - in: query name: difficulty required: false description: The desired puzzle difficulty, relative to the authenticated user puzzle rating, or 1500 if anonymous. schema: type: string enum: - easiest - easier - normal - harder - hardest - in: query name: nb description: | How many puzzles to fetch. Just set it to `1` if you only need one puzzle. schema: type: integer minimum: 1 maximum: 50 example: 10 default: 15 required: false - in: query name: color required: false description: | The color to play. Better left empty to automatically get 50% white. Currently only works when `nb=1`. schema: type: string enum: - white - black responses: '200': description: The requested puzzles. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleBatchSelect' examples: default: $ref: '#/components/examples/puzzles-getMultiplePuzzlesAtOnce.json' post: operationId: apiPuzzleBatchSolve summary: Solve multiple puzzles at once description: | Set puzzles as solved and update ratings. tags: - Puzzles security: - OAuth2: - puzzle:write parameters: - in: path name: angle schema: type: string example: mix required: true description: | The theme or opening of the solved puzzles. Available themes are listed in [the lichess source code](https://github.com/ornicar/lila/blob/master/translation/source/puzzleTheme.xml) and [the lichess training themes hyperlinks](https://lichess.org/training/themes). - in: query name: nb description: | When > 0, the response includes a new puzzle batch with that many puzzles. This is equivalent to calling [/api/puzzle/batch/{angle}](#tag/puzzles/GET/api/puzzle/batch/{angle}), and can sometimes save a request. schema: type: integer minimum: 0 maximum: 50 example: 1 default: 0 required: false requestBody: description: List of solved puzzles required: true content: application/json: schema: $ref: '#/components/schemas/PuzzleBatchSolveRequest' responses: '200': description: The solved puzzles, named `rounds`, and a new puzzle batch named `puzzles`. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleBatchSolveResponse' examples: default: $ref: '#/components/examples/puzzles-solveMultiplePuzzlesAtOnce.json' /api/puzzle/activity: get: operationId: apiPuzzleActivity summary: Get your puzzle activity description: | Download your puzzle activity in [ndjson](#description/streaming-with-nd-json) format. Puzzle activity is sorted by reverse chronological order (most recent first) We recommend streaming the response, for it can be very long. tags: - Puzzles security: - OAuth2: - puzzle:read parameters: - in: query name: max description: How many entries to download. Leave empty to download all activity. schema: type: integer minimum: 1 - in: query name: before description: Download entries before this timestamp. Defaults to now. Use `before` and `max` for pagination. schema: type: integer minimum: 1356998400070 - in: query name: since description: Download entries since this timestamp. Defaults to account creation date. schema: type: integer minimum: 1356998400070 responses: '200': description: The puzzle activity of the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/PuzzleActivity' examples: default: $ref: '#/components/examples/puzzles-getYourPuzzleActivity.json' /api/puzzle/replay/{days}/{theme}: get: operationId: apiPuzzleReplay summary: Get puzzles to replay description: Gets the puzzle IDs of remaining puzzles to re-attempt in JSON format. tags: - Puzzles security: - OAuth2: - puzzle:read parameters: - in: path name: days required: true description: How many days to look back when aggregating puzzle results. 30 is sensible. schema: type: integer - in: path name: theme required: true description: The theme or opening to filter puzzles with. schema: type: string responses: '200': description: The requested puzzles to replay. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleReplay' examples: default: $ref: '#/components/examples/puzzles-getPuzzlesToReplay.json' '404': description: No puzzles to replay were found content: application/json: schema: properties: error: type: string example: No puzzles to replay /api/puzzle/dashboard/{days}: get: operationId: apiPuzzleDashboard summary: Get your puzzle dashboard description: | Download your [puzzle dashboard](https://lichess.org/training/dashboard/30/dashboard) as JSON. Also includes all puzzle themes played, with aggregated results. Allows re-creating the [improvement/strengths](https://lichess.org/training/dashboard/30/improvementAreas) interfaces. tags: - Puzzles security: - OAuth2: - puzzle:read parameters: - in: path name: days required: true description: How many days to look back when aggregating puzzle results. 30 is sensible. schema: type: integer minimum: 1 responses: '200': description: The puzzle dashboard of the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleDashboard' examples: default: $ref: '#/components/examples/puzzles-getYourPuzzleDashboard.json' /api/storm/dashboard/{username}: get: operationId: apiStormDashboard summary: Get the storm dashboard of a player description: | Download the [storm dashboard](https://lichess.org/storm/dashboard/mrbasso) of any player as JSON. Contains the aggregated highscores, and the history of storm runs aggregated by days. Use `?days=0` if you only care about the highscores. tags: - Puzzles security: [] parameters: - in: path name: username description: Username of the player schema: type: string required: true - in: query name: days description: How many days of history to return schema: type: integer minimum: 0 maximum: 365 default: 30 responses: '200': description: The storm dashboard of a player. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleStormDashboard' examples: default: $ref: '#/components/examples/puzzles-getStormDashboardOfPlayer.json' /api/racer: post: operationId: racerPost summary: Create and join a puzzle race description: | Create a new private [puzzle race](https://lichess.org/racer). The Lichess user who creates the race must join the race page, and manually start the race when enough players have joined. - tags: - Puzzles security: - OAuth2: - racer:write responses: '200': description: The new puzzle race. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleRacer' examples: default: $ref: '#/components/examples/puzzles-createAndJoinPuzzleRace.json' /api/racer/{id}: get: operationId: racerGet summary: Get puzzle race results description: | Get the results of a [puzzle race](https://lichess.org/racer). Returns information about players, puzzles, and the current status of the race. - Note that Lichess puzzle races are not persisted, and are only available for 30 minutes. After that delay, they are permanently deleted. tags: - Puzzles security: - OAuth2: [] parameters: - in: path name: id description: The puzzle race ID schema: type: string required: true responses: '200': description: The puzzle race results. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/PuzzleRaceResults' examples: default: $ref: '#/components/examples/puzzles-getRaceResults.json' '404': description: The puzzle race was not found, or is no longer available. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/users: post: operationId: apiUsers summary: Get users by ID tags: - Users security: [] description: | Get up to 300 users by their IDs. Users are returned in the same order as the IDs. The method is `POST` to allow a longer list of IDs to be sent in the request body. Please do not try to download all the Lichess users with this endpoint, or any other endpoint. An API is not a way to fully export a website. We do not provide a full download of the Lichess users. This endpoint is limited to 8,000 users every 10 minutes, and 120,000 every day. requestBody: description: User IDs separated by commas. required: true content: text/plain: schema: type: string example: thibault,maia1,maia5 parameters: - in: query name: profile description: Include user profile data schema: type: boolean default: true - in: query name: rank description: Include global lichess ranking for each perf schema: type: boolean default: false responses: '200': description: The list of users. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: $ref: '#/components/schemas/User' examples: default: $ref: '#/components/examples/users-getUsersById.json' /api/account: get: operationId: accountMe summary: Get my profile description: | Public information about the logged in user. tags: - Account security: - OAuth2: [] responses: '200': description: The public information about the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/UserExtended' examples: default: $ref: '#/components/examples/account-getMyProfile.json' /api/account/email: get: operationId: accountEmail summary: Get my email address description: | Read the email address of the logged in user. tags: - Account security: - OAuth2: - email:read responses: '200': description: The email address of the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: properties: email: type: string examples: default: $ref: '#/components/examples/account-getMyEmailAddress.json' /api/account/preferences: get: operationId: account summary: Get my preferences description: | Read the preferences of the logged in user. - - tags: - Account security: - OAuth2: - preference:read responses: '200': description: The preferences of the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: properties: prefs: $ref: '#/components/schemas/UserPreferences' language: type: string example: en-GB examples: default: $ref: '#/components/examples/account-getMyPreferences.json' /api/account/kid: get: operationId: accountKid summary: Get my kid mode status description: | Read the kid mode status of the logged in user. - tags: - Account security: - OAuth2: - preference:read responses: '200': description: The kid mode status of the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: properties: kid: type: boolean examples: default: $ref: '#/components/examples/account-getMyKidModeStatus.json' post: operationId: accountKidPost summary: Set my kid mode status description: | Set the kid mode status of the logged in user. - tags: - Account security: - OAuth2: - preference:write parameters: - in: query name: v required: true description: Kid mode status schema: type: boolean example: true responses: '200': description: The kid mode status was set successfully for the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/account-setMyKidModeStatus.json' /api/timeline: get: operationId: timeline summary: Get my timeline description: | Get the timeline events of the logged in user. tags: - Account security: - OAuth2: [] parameters: - in: query name: since description: Show events since this timestamp. schema: type: integer minimum: 1356998400070 - in: query name: nb description: Max number of events to fetch. schema: type: integer default: 15 minimum: 1 maximum: 30 responses: '200': description: The events in the timeline of the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Timeline' examples: default: $ref: '#/components/examples/account-getMyTimeline.json' /game/export/{gameId}: get: operationId: gamePgn summary: Export one game description: | Download one game in either PGN or JSON format. Ongoing games are delayed by 3 moves, as to prevent cheat bots from using this API. tags: - Games security: [] parameters: - $ref: '#/components/parameters/AcceptPgnOrJson' - in: path name: gameId description: The game ID required: true schema: type: string minLength: 8 maxLength: 8 - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: true - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: true - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: true - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: true - in: query name: literate description: | Insert textual annotations in the PGN about the opening, analysis variations, mistakes, and game termination. Example: `5... g4? { (-0.98 → 0.60) Mistake. Best move was h6. } (5... h6 6. d4 Ne7 7. g3 d5 8. exd5 fxg3 9. hxg3 c6 10. dxc6)` schema: type: boolean default: false - in: query name: withBookmarked description: | Add a `bookmarked: true` JSON field when the logged in user has bookmarked the game. The response type must be set to `application/x-ndjson` by the request `Accept` header. schema: type: boolean default: false responses: '200': description: The game representation. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: oneOf: - $ref: '#/components/schemas/GamePgn' - $ref: '#/components/schemas/GameJson' examples: application/x-chess-pgn: $ref: '#/components/examples/games-exportOneGame.pgn' application/json: $ref: '#/components/examples/games-exportOneGame.json' /game/{gameId}/chat: parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true get: operationId: gameChatGet summary: Fetch the spectator game chat description: | Get the messages posted in the public spectator chat of a game. Games also have a private players chat, which only the 2 players can see. tags: - Games security: [] responses: '200': description: The messages posted in the chat. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/SpectatorGameChat' /api/user/{username}/current-game: get: operationId: apiUserCurrentGame summary: Export ongoing game of a user description: | Download the ongoing game, or the last game played, of a user. Available in either PGN or JSON format. Ongoing games are delayed by 3 moves, as to prevent cheat bots from using this API. tags: - Games security: [] parameters: - $ref: '#/components/parameters/AcceptPgnOrJson' - in: path name: username required: true schema: type: string - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: true - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: true - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: true - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: false - in: query name: literate description: | Insert textual annotations in the PGN about the opening, analysis variations, mistakes, and game termination. Example: `5... g4? { (-0.98 → 0.60) Mistake. Best move was h6. } (5... h6 6. d4 Ne7 7. g3 d5 8. exd5 fxg3 9. hxg3 c6 10. dxc6)` schema: type: boolean default: false responses: '200': description: | The ongoing (or last) game of a user. This may be in either PGN or JSON format, depending on the `Accept` header of your request. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: oneOf: - $ref: '#/components/schemas/GamePgn' - $ref: '#/components/schemas/GameJson' examples: application/x-chess-pgn: $ref: '#/components/examples/games-apiUserCurrentGamePgn.pgn' application/json: $ref: '#/components/examples/games-apiUserCurrentGameJson.json' /api/games/user/{username}: get: operationId: apiGamesUser summary: Export games of a user description: | Download all games of any user in PGN or [ndjson](#description/streaming-with-nd-json) format. Games are sorted by reverse chronological order (most recent first). We recommend streaming the response, for it can be very long. for instance has more than 500,000 games. The game stream is throttled, depending on who is making the request: - Anonymous request: 20 games per second - [OAuth2 authenticated](#description/authentication) request: 30 games per second - Authenticated, downloading your own games: 60 games per second tags: - Games security: - OAuth2: [] parameters: - $ref: '#/components/parameters/AcceptPgnOrNdjson' - in: path name: username description: The user name. schema: type: string required: true - in: query name: since description: Download games played since this timestamp. Defaults to account creation date. schema: type: integer minimum: 1356998400070 - in: query name: until description: Download games played until this timestamp. Defaults to now. schema: type: integer minimum: 1356998400070 - in: query name: max description: How many games to download. Leave empty to download all games. schema: type: integer minimum: 1 - in: query name: vs description: '[Filter] Only games played against this opponent' schema: type: string - in: query name: rated description: '[Filter] Only rated (`true`) or casual (`false`) games' schema: type: boolean - in: query name: perfType description: | [Filter] Only games in these speeds or variants. Multiple perf types can be specified, separated by a comma. Example: blitz,rapid,classical schema: $ref: '#/components/schemas/PerfType' - in: query name: color description: '[Filter] Only games played as this color.' schema: type: string enum: - white - black - in: query name: analysed description: '[Filter] Only games with or without a computer analysis available' schema: type: boolean - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. The response type must be set to `application/x-ndjson` by the request `Accept` header. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: false - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: false - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: false - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: false - in: query name: ongoing description: Ongoing games are delayed by a few seconds ranging from 3 to 60 depending on the time control, as to prevent cheat bots from using this API. schema: type: boolean default: false - in: query name: finished description: Include finished games. Set to `false` to only get ongoing games. schema: type: boolean default: true - in: query name: literate description: | Insert textual annotations in the PGN about the opening, analysis variations, mistakes, and game termination. Example: `5... g4? { (-0.98 → 0.60) Mistake. Best move was h6. } (5... h6 6. d4 Ne7 7. g3 d5 8. exd5 fxg3 9. hxg3 c6 10. dxc6)` schema: type: boolean default: false - in: query name: lastFen description: | Include the X-FEN notation of the last position of the game. The response type must be set to `application/x-ndjson` by the request `Accept` header. schema: type: boolean default: false - in: query name: withBookmarked description: | Add a `bookmarked: true` JSON field when the logged in user has bookmarked the game. The response type must be set to `application/x-ndjson` by the request `Accept` header. schema: type: boolean default: false - in: query name: sort description: Sort order of the games. schema: type: string default: dateDesc enum: - dateAsc - dateDesc responses: '200': description: The games of the user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: oneOf: - $ref: '#/components/schemas/GamePgn' - $ref: '#/components/schemas/GameJson' examples: application/x-chess-pgn: $ref: '#/components/examples/games-apiGamesUserPgn.pgn' application/x-ndjson: $ref: '#/components/examples/games-apiGamesUserJson.json' /api/games/export/_ids: post: operationId: gamesExportIds summary: Export games by IDs description: | Download games by IDs in PGN or [ndjson](#description/streaming-with-nd-json) format, depending on the request `Accept` header. Games are sorted by reverse chronological order (most recent first) The method is `POST` so a longer list of IDs can be sent in the request body. 300 IDs can be submitted. Ongoing games are delayed by 3 moves, as to prevent cheat bots from using this API. tags: - Games security: [] requestBody: description: Game IDs separated by commas. Up to 300. required: true content: text/plain: schema: type: string example: TJxUmbWK,4OtIh2oh,ILwozzRZ parameters: - $ref: '#/components/parameters/AcceptPgnOrNdjson' - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: false - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: false - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: false - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: false - in: query name: literate description: | Insert textual annotations in the PGN about the opening, analysis variations, mistakes, and game termination. Example: `5... g4? { (-0.98 → 0.60) Mistake. Best move was h6. } (5... h6 6. d4 Ne7 7. g3 d5 8. exd5 fxg3 9. hxg3 c6 10. dxc6)` schema: type: boolean default: false responses: '200': description: The representation of the games. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: oneOf: - $ref: '#/components/schemas/GamePgn' - $ref: '#/components/schemas/GameJson' examples: application/x-chess-pgn: $ref: '#/components/examples/games-gamesExportIds.pgn' application/json: $ref: '#/components/examples/games-gamesExportIds.json' /api/stream/games-by-users: post: operationId: gamesByUsers summary: Stream games of users description: | Stream the games played between a list of users, in real time. Only games where **both players** are part of the list are included. The stream emits an event each time a game is started or finished. To also get all current ongoing games at the beginning of the stream, use the `withCurrentGames` flag. Games are streamed as [ndjson](#description/streaming-with-nd-json). Maximum number of users: 300. The method is `POST` so a longer list of IDs can be sent in the request body. tags: - Games security: [] requestBody: description: | Up to 300 user IDs separated by commas. Example: `thibault,maia1,maia5` required: true content: text/plain: schema: type: string parameters: - in: query name: withCurrentGames description: Include the already started games at the beginning of the stream. schema: type: boolean default: false responses: '200': description: The stream of the games played between the users. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/GameStream' /api/stream/games/{streamId}: post: operationId: gamesByIds summary: Stream games by IDs description: | Creates a stream of games from an arbitrary streamId, and a list of game IDs. The stream first outputs the games that already exists, then emits an event each time a game is started or finished. Games are streamed as [ndjson](#description/streaming-with-nd-json). Maximum number of games: 500 for anonymous requests, or 1000 for [OAuth2 authenticated](#description/authentication) requests. While the stream is open, it is possible to [add new game IDs to watch](#tag/games/POST/api/stream/games/{streamId}/add). tags: - Games security: [] parameters: - in: path name: streamId schema: type: string description: Arbitrary stream ID that you can later use to add game IDs to the stream. example: myAppName-someRandomId required: true requestBody: description: | Up to 500 or 1000 game IDs separated by commas. Example: `gameId01,gameId02,gameId03` required: true content: text/plain: schema: type: string responses: '200': description: The stream of the games matching the requested IDs. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/GameStream' /api/stream/games/{streamId}/add: post: operationId: gamesByIdsAdd summary: Add game IDs to stream description: | Add new game IDs for [an existing stream](#tag/games/POST/api/stream/games/{streamId}) to watch. The stream will immediately outputs the games that already exists, then emit an event each time a game is started or finished. tags: - Games security: [] parameters: - in: path name: streamId schema: type: string description: The stream ID you used to [create the stream](#tag/games/POST/api/stream/games/{streamId}). example: myAppName-someRandomId required: true requestBody: description: | Up to 500 or 1000 game IDs separated by commas. Example: `gameId04,gameId05,gameId06` required: true content: text/plain: schema: type: string responses: '200': description: The game IDs have been added to the stream. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' /api/account/playing: get: operationId: apiAccountPlaying summary: Get my ongoing games description: | Get the ongoing games of the current user. Real-time and correspondence games are included. The most urgent games are listed first. tags: - Games security: - OAuth2: [] parameters: - in: query name: nb description: Max number of games to fetch schema: type: integer default: 9 minimum: 1 maximum: 50 responses: '200': description: The ongoing games of the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object required: - nowPlaying properties: nowPlaying: type: array items: type: object required: - gameId - fullId - color - fen - hasMoved - isMyTurn - lastMove - opponent - perf - rated - secondsLeft - source - speed - variant properties: fullId: type: string gameId: type: string fen: type: string color: $ref: '#/components/schemas/GameColor' lastMove: type: string source: $ref: '#/components/schemas/GameSource' status: $ref: '#/components/schemas/GameStatusName' variant: $ref: '#/components/schemas/Variant' speed: $ref: '#/components/schemas/Speed' perf: $ref: '#/components/schemas/PerfType' rated: type: boolean hasMoved: type: boolean opponent: required: - id - username type: object properties: id: type: string username: type: string rating: type: integer ratingDiff: type: integer ai: type: integer isMyTurn: type: boolean secondsLeft: type: integer tournamentId: type: string swissId: type: string winner: $ref: '#/components/schemas/GameColor' ratingDiff: type: integer example: nowPlaying: - gameId: rCRw1AuO fullId: rCRw1AuOvonq color: black fen: r1bqkbnr/pppp2pp/2n1pp2/8/8/3PP3/PPPB1PPP/RN1QKBNR w KQkq - 2 4 hasMoved: true isMyTurn: false lastMove: b8c6 opponent: id: philippe rating: 1790 username: Philippe perf: correspondence rated: false secondsLeft: 1209600 source: friend speed: correspondence variant: key: standard name: Standard /api/stream/game/{id}: get: operationId: streamGame summary: Stream moves of a game description: | Stream positions and moves of any ongoing game, in [ndjson](#description/streaming-with-nd-json). A description of the game is sent as a first message. Then a message is sent each time a move is played. Finally, a description of the game is sent when it finishes, and the stream is closed. Ongoing games are delayed by 3 moves, as to prevent cheat bots from using this API. No more than 8 game streams can be opened at the same time from the same IP address. tags: - Games security: [] parameters: - in: path name: id schema: type: string example: LuGQwhBb required: true responses: '200': description: The stream of the game moves. content: application/x-ndjson: schema: $ref: '#/components/schemas/MoveStream' '429': description: Too many streams opened at the same time from this IP. content: application/json: schema: properties: error: type: string example: Please only run 8 request(s) at a time /api/import: post: operationId: gameImport summary: Import one game description: | Import a game from PGN. See . Rate limiting: 200 games per hour for OAuth requests, 100 games per hour for anonymous requests. To broadcast ongoing games, consider [pushing to a broadcast instead](#tag/broadcasts/POST/api/broadcast/round/{broadcastRoundId}/push). To analyse a position or a line, just construct an analysis board URL (most standard tags supported if URL-encoded): [https://lichess.org/analysis/pgn/e4_e5_Nf3_Nc6_Bc4_Bc5_Bxf7+](https://lichess.org/analysis/pgn/e4_e5_Nf3_Nc6_Bc4_Bc5_Bxf7+) tags: - Games security: - OAuth2: [] requestBody: description: A single game to import required: true content: application/x-www-form-urlencoded: schema: type: object properties: pgn: type: string description: The PGN. It can contain only one game. Most standard tags are supported. responses: '200': description: The game was successfully imported. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object properties: id: type: string description: The game ID example: R6iLjwz5 url: type: string format: uri description: The game URL example: id: R6iLjwz5 url: https://lichess.org/R6iLjwz5 /api/games/export/imports: get: operationId: apiImportedGamesUser summary: Export your imported games description: Download all games imported by you. Games are exported in PGN format. tags: - Games security: - OAuth2: [] responses: '200': description: Imported games in PGN format headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: $ref: '#/components/schemas/GamePgn' /api/games/export/bookmarks: get: operationId: apiExportBookmarks summary: Export your bookmarked games description: | Download all games bookmarked by you, in PGN or [ndjson](#description/streaming-with-nd-json) format. Games are sorted by reverse chronological order (most recent first). We recommend streaming the response, for it can be very long. tags: - Games security: - OAuth2: [] parameters: - $ref: '#/components/parameters/AcceptPgnOrNdjson' - in: query name: since description: Download games bookmarked since this timestamp. Defaults to account creation date. schema: type: integer minimum: 1356998400070 - in: query name: until description: Download games bookmarked until this timestamp. Defaults to now. schema: type: integer minimum: 1356998400070 - in: query name: max description: How many bookmarked games to download. Leave empty to download all bookmarked games. schema: type: integer minimum: 1 - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. The response type must be set to `application/x-ndjson` by the request `Accept` header. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: false - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: false - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: false - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: false - in: query name: literate description: | Insert textual annotations in the PGN about the opening, analysis variations, mistakes, and game termination. Example: `5... g4? { (-0.98 → 0.60) Mistake. Best move was h6. } (5... h6 6. d4 Ne7 7. g3 d5 8. exd5 fxg3 9. hxg3 c6 10. dxc6)` schema: type: boolean default: false - in: query name: lastFen description: | Include the X-FEN notation of the last position of the game. The response type must be set to `application/x-ndjson` by the request `Accept` header. schema: type: boolean default: false - in: query name: sort description: Sort order of the bookmarks. schema: type: string default: dateDesc enum: - dateAsc - dateDesc responses: '200': description: The bookmarked games of the user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: oneOf: - $ref: '#/components/schemas/GamePgn' - $ref: '#/components/schemas/GameJson' /api/tv/channels: get: operationId: tvChannels summary: Get current TV games description: | Get basic info about the best games being played for each speed and variant, but also computer games and bot games. See [lichess.org/tv](https://lichess.org/tv). tags: - TV security: [] responses: '200': description: The list of games being played for each speed and variant. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object required: - bot - blitz - racingKings - ultraBullet - bullet - classical - threeCheck - antichess - computer - horde - rapid - atomic - crazyhouse - chess960 - kingOfTheHill - best properties: bot: $ref: '#/components/schemas/TvGame' blitz: $ref: '#/components/schemas/TvGame' racingKings: $ref: '#/components/schemas/TvGame' ultraBullet: $ref: '#/components/schemas/TvGame' bullet: $ref: '#/components/schemas/TvGame' classical: $ref: '#/components/schemas/TvGame' threeCheck: $ref: '#/components/schemas/TvGame' antichess: $ref: '#/components/schemas/TvGame' computer: $ref: '#/components/schemas/TvGame' horde: $ref: '#/components/schemas/TvGame' rapid: $ref: '#/components/schemas/TvGame' atomic: $ref: '#/components/schemas/TvGame' crazyhouse: $ref: '#/components/schemas/TvGame' chess960: $ref: '#/components/schemas/TvGame' kingOfTheHill: $ref: '#/components/schemas/TvGame' best: $ref: '#/components/schemas/TvGame' examples: default: $ref: '#/components/examples/tv-getCurrentTvGames.json' /api/tv/feed: get: operationId: tvFeed summary: Stream current TV game description: | Stream positions and moves of the current [TV game](https://lichess.org/tv) in [ndjson](#description/streaming-with-nd-json). Try it with `curl https://lichess.org/api/tv/feed`. tags: - TV security: [] responses: '200': description: The stream of the current TV game. content: application/x-ndjson: schema: $ref: '#/components/schemas/TvFeed' examples: new featured game: $ref: '#/components/examples/tv-streamCurrentTvGame-newGame.json' move: $ref: '#/components/examples/tv-streamCurrentTvGame-move.json' /api/tv/{channel}/feed: get: operationId: tvChannelFeed summary: Stream current TV game of a TV channel description: | Stream positions and moves of a current [TV channel's game](https://lichess.org/tv/rapid) in [ndjson](#description/streaming-with-nd-json). Try it with `curl https://lichess.org/api/tv/rapid/feed`. tags: - TV security: [] parameters: - in: path name: channel description: The name of the channel in camel case. schema: type: string required: true responses: '200': description: The stream of the current TV game of a TV channel. content: application/x-ndjson: schema: $ref: '#/components/schemas/TvFeed' examples: new featured game: $ref: '#/components/examples/tv-streamCurrentTvGame-newGame.json' move: $ref: '#/components/examples/tv-streamCurrentTvGame-move.json' /api/tv/{channel}: get: operationId: tvChannelGames summary: Get best ongoing games of a TV channel description: | Get a list of ongoing games for a given TV channel. Similar to [lichess.org/games](https://lichess.org/games). Available in PGN or [ndjson](#description/streaming-with-nd-json) format, depending on the request `Accept` header. tags: - TV security: [] parameters: - $ref: '#/components/parameters/AcceptPgnOrNdjson' - in: path name: channel description: The name of the channel in camel case. schema: type: string required: true - in: query name: nb description: Number of games to fetch. schema: type: integer default: 10 minimum: 1 maximum: 30 - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: false responses: '200': description: The representation of the games. content: application/x-chess-pgn: schema: $ref: '#/components/schemas/GamePgn' examples: pgn: $ref: '#/components/examples/tv-getBestOngoingGamesOfTvChannel.pgn' application/x-ndjson: schema: $ref: '#/components/schemas/GameJson' examples: default: $ref: '#/components/examples/tv-getBestOngoingGamesOfTvChannel.json' /api/tournament: get: operationId: apiTournament summary: Get current tournaments description: | Get recently active and finished tournaments. This API is used to display the [Lichess tournament schedule](https://lichess.org/tournament). tags: - Tournaments (Arena) security: [] responses: '200': description: The list of current tournaments. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ArenaTournaments' examples: default: $ref: '#/components/examples/arenas-getCurrentTournaments.json' post: operationId: apiTournamentPost summary: Create a new Arena tournament description: | Create a public or private Arena tournament. This endpoint mirrors the form on . You can create up to 12 public tournaments per day, or 24 private tournaments. A team battle can be created by specifying the `teamBattleByTeam` argument. Additional restrictions: - clockTime + clockIncrement > 0 - 15s and 0+1 variant tournaments cannot be rated - Clock time in comparison to tournament length must be reasonable: 3 <= (minutes * 60) / (96 * clockTime + 48 * clockIncrement + 15) <= 150 tags: - Tournaments (Arena) security: - OAuth2: - tournament:write requestBody: description: Parameters of the tournament required: true content: application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The tournament name. Leave empty to get a random Grandmaster name minLength: 2 maxLength: 30 clockTime: type: number description: Clock initial time in minutes example: 2 enum: - 0 - 0.25 - 0.5 - 0.75 - 1 - 1.5 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 10 - 15 - 20 - 25 - 30 - 40 - 50 - 60 clockIncrement: type: integer description: Clock increment in seconds example: 1 enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 10 - 15 - 20 - 25 - 30 - 40 - 50 - 60 minutes: type: integer description: How long the tournament lasts, in minutes example: 60 enum: - 20 - 25 - 30 - 35 - 40 - 45 - 50 - 55 - 60 - 70 - 80 - 90 - 100 - 110 - 120 - 150 - 180 - 210 - 240 - 270 - 300 - 330 - 360 - 420 - 480 - 540 - 600 - 720 waitMinutes: type: integer description: How long to wait before starting the tournament, from now, in minutes default: 5 enum: - 1 - 2 - 3 - 5 - 10 - 15 - 20 - 30 - 45 - 60 startDate: type: integer format: int64 description: Timestamp (in milliseconds) to start the tournament at a given date and time. Overrides the `waitMinutes` setting variant: $ref: '#/components/schemas/VariantKey' rated: type: boolean description: Games are rated and impact players ratings default: true position: $ref: '#/components/schemas/FromPositionFEN' berserkable: type: boolean description: Whether the players can use berserk. Only allowed if clockIncrement <= clockTime * 2 default: true streakable: type: boolean description: After 2 wins, consecutive wins grant 4 points instead of 2. default: true hasChat: type: boolean description: Whether the players can discuss in a chat default: true description: type: string description: Anything you want to tell players about the tournament password: type: string description: | Make the tournament private, and restrict access with a password. You can also [generate user-specific entry codes](https://github.com/lichess-org/api/tree/master/example/tournament-entry-code) based on this password. teamBattleByTeam: type: string description: | Set the ID of a team you lead to create a team battle. The other teams can be added using the [team battle edit endpoint](#tag/arena-tournaments/POST/api/tournament/team-battle/{id}). conditions.teamMember.teamId: type: string description: | Restrict entry to members of a team. The teamId is the last part of a team URL, e.g. `https://lichess.org/team/coders` has teamId = `coders`. Leave empty to let everyone join the tournament. Do not use this to create team battles, use `teamBattleByTeam` instead. conditions.minRating.rating: type: integer description: Minimum rating to join. Leave empty to let everyone join the tournament. enum: - 1000 - 1100 - 1200 - 1300 - 1400 - 1500 - 1600 - 1700 - 1800 - 1900 - 2000 - 2100 - 2200 - 2300 - 2400 - 2500 - 2600 conditions.maxRating.rating: type: integer description: Maximum rating to join. Based on best rating reached in the last 7 days. Leave empty to let everyone join the tournament. enum: - 2200 - 2100 - 2000 - 1900 - 1800 - 1700 - 1600 - 1500 - 1400 - 1300 - 1200 - 1100 - 1000 - 900 - 800 conditions.nbRatedGame.nb: type: integer description: Minimum number of rated games required to join. enum: - 0 - 5 - 10 - 15 - 20 - 30 - 40 - 50 - 75 - 100 - 150 - 200 conditions.allowList: type: string description: | Predefined list of usernames that are allowed to join, separated by commas. If this list is non-empty, then usernames absent from this list will be forbidden to join. Adding `%titled` to the list additionally allows any titled player to join. Example: `thibault,german11,%titled` conditions.bots: type: boolean description: Whether bots are allowed to join the tournament. default: false conditions.accountAge: type: integer description: Minium account age in days required to join. enum: - 1 - 3 - 7 - 14 - 30 - 60 - 90 - 180 - 365 - 730 - 1095 required: - clockTime - clockIncrement - minutes responses: '200': description: The Arena tournament has been successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ArenaTournamentFull' examples: default: $ref: '#/components/examples/arenas-createArena.json' '400': description: The creation of the Arena tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/tournament/{id}: parameters: - in: path name: id description: The tournament ID. schema: type: string required: true get: operationId: tournament summary: Get info about an Arena tournament description: | Get detailed info about recently finished, current, or upcoming tournament's duels, player standings, and other info. tags: - Tournaments (Arena) security: [] parameters: - in: query name: page description: Specify which page of player standings to view. schema: type: integer example: 1 default: 1 minimum: 1 maximum: 200 responses: '200': description: The information of the Arena tournament. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ArenaTournamentFull' examples: default: $ref: '#/components/examples/arenas-getArenaById.json' post: operationId: apiTournamentUpdate summary: Update an Arena tournament description: | Update an Arena tournament. Be mindful not to make important changes to ongoing tournaments. Can be used to update a team battle. Additional restrictions: - clockTime + clockIncrement > 0 - 15s and 0+1 variant tournaments cannot be rated - Clock time in comparison to tournament length must be reasonable: 3 <= (minutes * 60) / (96 * clockTime + 48 * clockIncrement + 15) <= 150 tags: - Tournaments (Arena) security: - OAuth2: - tournament:write requestBody: description: Parameters of the tournament required: true content: application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The tournament name. Leave empty to get a random Grandmaster name minLength: 2 maxLength: 30 clockTime: type: number description: Clock initial time in minutes example: 2 enum: - 0 - 0.25 - 0.5 - 0.75 - 1 - 1.5 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 10 - 15 - 20 - 25 - 30 - 40 - 50 - 60 clockIncrement: type: integer description: Clock increment in seconds example: 1 enum: - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 10 - 15 - 20 - 25 - 30 - 40 - 50 - 60 minutes: type: integer description: How long the tournament lasts, in minutes example: 60 enum: - 20 - 25 - 30 - 35 - 40 - 45 - 50 - 55 - 60 - 70 - 80 - 90 - 100 - 110 - 120 - 150 - 180 - 210 - 240 - 270 - 300 - 330 - 360 - 420 - 480 - 540 - 600 - 720 waitMinutes: type: integer description: How long to wait before starting the tournament, from now, in minutes default: 5 enum: - 1 - 2 - 3 - 5 - 10 - 15 - 20 - 30 - 45 - 60 startDate: type: integer format: int64 description: Timestamp (in milliseconds) to start the tournament at a given date and time. Overrides the `waitMinutes` setting variant: $ref: '#/components/schemas/VariantKey' rated: type: boolean description: Games are rated and impact players ratings default: true position: $ref: '#/components/schemas/FromPositionFEN' berserkable: type: boolean description: Whether the players can use berserk. Only allowed if clockIncrement <= clockTime * 2 default: true streakable: type: boolean description: After 2 wins, consecutive wins grant 4 points instead of 2. default: true hasChat: type: boolean description: Whether the players can discuss in a chat default: true description: type: string description: Anything you want to tell players about the tournament password: type: string description: Make the tournament private, and restrict access with a password conditions.minRating.rating: type: integer description: Minimum rating to join. Leave empty to let everyone join the tournament. enum: - 1000 - 1100 - 1200 - 1300 - 1400 - 1500 - 1600 - 1700 - 1800 - 1900 - 2000 - 2100 - 2200 - 2300 - 2400 - 2500 - 2600 conditions.maxRating.rating: type: integer description: Maximum rating to join. Based on best rating reached in the last 7 days. Leave empty to let everyone join the tournament. enum: - 2200 - 2100 - 2000 - 1900 - 1800 - 1700 - 1600 - 1500 - 1400 - 1300 - 1200 - 1100 - 1000 - 900 - 800 conditions.nbRatedGame.nb: type: integer description: Minimum number of rated games required to join. enum: - 0 - 5 - 10 - 15 - 20 - 30 - 40 - 50 - 75 - 100 - 150 - 200 conditions.allowList: type: string description: | Predefined list of usernames that are allowed to join, separated by commas. If this list is non-empty, then usernames absent from this list will be forbidden to join. Adding `%titled` to the list additionally allows any titled player to join. Example: `thibault,german11,%titled` conditions.bots: type: boolean description: Whether bots are allowed to join the tournament. default: false conditions.accountAge: type: integer description: Minium account age in days required to join. enum: - 1 - 3 - 7 - 14 - 30 - 60 - 90 - 180 - 365 - 730 - 1095 required: - clockTime - clockIncrement - minutes responses: '200': description: The Arena tournament was successfully updated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ArenaTournamentFull' examples: default: $ref: '#/components/examples/arenas-updateArena.json' '400': description: The update of the Arena tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/tournament/{id}/join: post: operationId: apiTournamentJoin summary: Join an Arena tournament description: | Join an Arena tournament, possibly with a password and/or a team. Also unpauses if you had previously [paused](#tag/arena-tournaments/POST/api/tournament/{id}/withdraw) the tournament. tags: - Tournaments (Arena) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID. schema: type: string example: hL7vMrFQ required: true requestBody: description: You may need these depending on the tournament to join content: application/x-www-form-urlencoded: schema: type: object properties: password: type: string description: | The tournament password, if one is required. Can also be a [user-specific entry code](https://github.com/lichess-org/api/tree/master/example/tournament-entry-code) generated and shared by the organizer. team: type: string description: The team to join the tournament with, for team battle tournaments pairMeAsap: type: boolean default: false description: | If the tournament is started, attempt to pair the user, even if they are not connected to the tournament page. This expires after one minute, to avoid pairing a user who is long gone. You may call "join" again to extend the waiting. responses: '200': description: The tournament was successfully joined. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: Joining the tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/tournament/{id}/withdraw: post: operationId: apiTournamentWithdraw summary: Pause or leave an Arena tournament description: | Leave a future Arena tournament, or take a break on an ongoing Arena tournament. It's possible to join again later. Points and streaks are preserved. tags: - Tournaments (Arena) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID. schema: type: string example: hL7vMrFQ required: true responses: '200': description: The tournament was successfully paused or left. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: Pausing/leaving the tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/tournament/{id}/terminate: post: operationId: apiTournamentTerminate summary: Terminate an Arena tournament description: | Terminate an Arena tournament tags: - Tournaments (Arena) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID. schema: type: string example: hL7vMrFQ required: true responses: '200': description: The tournament was successfully terminated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: Terminating the tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/tournament/team-battle/{id}: post: operationId: apiTournamentTeamBattlePost summary: Update a team battle description: | Set the teams and number of leaders of a team battle. To update the other attributes of a team battle, use the [tournament update endpoint](#tag/arena-tournaments/POST/api/tournament/{id}). tags: - Tournaments (Arena) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID required: true schema: type: string minLength: 8 maxLength: 8 requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: teams: type: string description: | All team IDs of the team battle, separated by commas. Make sure to always send the full list. Teams that are not in the list will be removed from the team battle. Example: `coders,zhigalko_sergei-fan-club,hhSwTKZv` nbLeaders: type: integer description: Number team leaders per team. required: - teams - nbLeaders responses: '200': description: The team battle tournament was successfully updated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ArenaTournamentFull' '400': description: The update of the team battle tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/tournament/{id}/games: get: operationId: gamesByTournament summary: Export games of an Arena tournament description: | Download games of a tournament in PGN or [ndjson](#description/streaming-with-nd-json) format. Games are sorted by reverse chronological order (most recent first). The game stream is throttled, depending on who is making the request: - Anonymous request: 20 games per second - [OAuth2 authenticated](#description/authentication) request: 30 games per second tags: - Tournaments (Arena) security: [] parameters: - $ref: '#/components/parameters/AcceptPgnOrNdjson' - in: path name: id description: The tournament ID. schema: type: string required: true - in: query name: player description: Only games of a particular player. Leave empty to fetch games of all players. schema: type: string - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: false - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: false - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: false - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: false responses: '200': description: The list of games of an Arena tournament. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: $ref: '#/components/schemas/GamePgn' application/x-ndjson: schema: $ref: '#/components/schemas/GameJson' /api/tournament/{id}/results: get: operationId: resultsByTournament summary: Get results of an Arena tournament description: | Players of an Arena tournament, with their score and performance, sorted by rank (best first). **Players are streamed as [ndjson](#description/streaming-with-nd-json)**, i.e. one JSON object per line. If called on an ongoing tournament, results can be inconsistent due to ranking changes while the players are being streamed. Use on finished tournaments for guaranteed consistency. tags: - Tournaments (Arena) security: [] parameters: - in: path name: id description: The tournament ID. schema: type: string required: true - in: query name: nb description: Max number of players to fetch schema: type: integer minimum: 1 - in: query name: sheet description: | Add a `sheet` field to the player document. It's an expensive server computation that slows down the stream. schema: type: boolean default: false responses: '200': description: The results of the Arena tournament. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: type: object required: - rank - score - rating - username - performance properties: rank: type: integer score: type: integer rating: type: integer username: type: string performance: type: integer title: $ref: '#/components/schemas/Title' team: type: string flair: $ref: '#/components/schemas/Flair' patronColor: $ref: '#/components/schemas/PatronColor' sheet: $ref: '#/components/schemas/ArenaSheet' examples: default: $ref: '#/components/examples/arenas-getResultsOfArena.json' /api/tournament/{id}/teams: get: operationId: teamsByTournament summary: Get team standing of a team battle description: | Teams of a team battle tournament, with top players, sorted by rank (best first). tags: - Tournaments (Arena) security: [] parameters: - in: path name: id description: The tournament ID. schema: type: string required: true responses: '200': description: The list of teams of a team battle tournament, with their respective top players. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object required: - id - teams properties: id: type: string teams: type: array items: type: object required: - rank - id - score - players properties: rank: type: integer id: type: string score: type: integer players: type: array items: type: object required: - user properties: user: $ref: '#/components/schemas/LightUser' score: type: integer examples: default: $ref: '#/components/examples/arenas-getTeamStandingOfTeamBattle.json' /api/user/{username}/tournament/created: get: operationId: apiUserNameTournamentCreated summary: Get tournaments created by a user description: | Get all tournaments created by a given user. Tournaments are sorted by reverse chronological order of start date (last starting first). Tournaments are streamed as [ndjson](#description/streaming-with-nd-json). The stream is throttled, depending on who is making the request: - Anonymous request: 20 tournaments per second - [OAuth2 authenticated](#description/authentication) request: 30 tournaments per second - Authenticated, downloading your own tournaments: 50 tournaments per second tags: - Tournaments (Arena) security: - OAuth2: [] parameters: - in: path name: username description: The user whose created tournaments to fetch schema: type: string required: true - in: query name: nb description: Max number of tournaments to fetch schema: type: integer minimum: 1 - in: query name: status description: | Include tournaments in the given status: "Created" (10), "Started" (20), "Finished" (30) You can add this parameter more than once to include tournaments in different statuses. Example: `?status=10&status=20` schema: type: integer enum: - 10 - 20 - 30 responses: '200': description: The list of tournaments created by the user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/ArenaTournament' examples: default: $ref: '#/components/examples/arenas-getTournamentsCreatedByUser.json' /api/user/{username}/tournament/played: get: operationId: apiUserNameTournamentPlayed summary: Get tournaments played by a user description: | Get all tournaments played by a given user. Tournaments are sorted by reverse chronological order of start date (last played first). Tournaments are streamed as [ndjson](#description/streaming-with-nd-json). The stream is throttled, depending on who is making the request: - Anonymous request: 20 tournaments per second - [OAuth2 authenticated](#description/authentication) request: 30 tournaments per second - Authenticated, downloading your own tournaments: 50 tournaments per second tags: - Tournaments (Arena) security: - OAuth2: [] parameters: - in: path name: username description: The user whose played tournaments to fetch schema: type: string required: true - in: query name: nb description: Max number of tournaments to fetch schema: type: integer minimum: 1 - in: query name: performance required: false description: | Include the player performance rating in the response, at some cost for the server. schema: type: boolean responses: '200': description: The list of tournaments played by the user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/ArenaTournamentPlayed' examples: default: $ref: '#/components/examples/arenas-getTournamentsPlayedByUser.json' /api/swiss/new/{teamId}: post: operationId: apiSwissNew summary: Create a new Swiss tournament description: | Create a Swiss tournament for your team. This endpoint mirrors the Swiss tournament form from your team pagee. You can create up to 12 tournaments per day. Additional restrictions: - clock.limit + clock.increment > 0 - 15s and 0+1 variant tournaments cannot be rated tags: - Tournaments (Swiss) security: - OAuth2: - tournament:write parameters: - in: path name: teamId description: ID of the team schema: type: string required: true requestBody: description: Parameters of the tournament required: true content: application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The tournament name. Leave empty to get a random Grandmaster name minLength: 2 maxLength: 30 clock.limit: type: integer description: Clock initial time in seconds example: 300 enum: - 0 - 15 - 30 - 45 - 60 - 90 - 120 - 180 - 240 - 300 - 360 - 420 - 480 - 600 - 900 - 1200 - 1500 - 1800 - 2400 - 3000 - 3600 - 4200 - 4800 - 5400 - 6000 - 6600 - 7200 - 7800 - 8400 - 9000 - 9600 - 10200 - 10800 clock.increment: type: integer description: Clock increment in seconds example: 1 minimum: 0 maximum: 120 nbRounds: type: integer description: Maximum number of rounds to play minimum: 3 maximum: 100 startsAt: type: integer format: int64 description: Timestamp in milliseconds to start the tournament at a given date and time. By default, it starts 10 minutes after creation. roundInterval: type: integer description: | How long to wait between each round, in seconds. Set to 99999999 to manually schedule each round from the tournament UI. If empty or -1, a sensible value is picked automatically. enum: - -1 - 5 - 10 - 20 - 30 - 45 - 60 - 120 - 180 - 300 - 600 - 900 - 1200 - 1800 - 2700 - 3600 - 86400 - 172800 - 604800 - 99999999 variant: $ref: '#/components/schemas/VariantKey' position: $ref: '#/components/schemas/SwissFromPositionFEN' description: type: string description: Anything you want to tell players about the tournament rated: type: boolean description: Games are rated and impact players ratings default: true password: type: string description: Make the tournament private and restrict access with a password. forbiddenPairings: type: string description: | Usernames of players that must not play together. Two usernames per line, separated by a space. manualPairings: type: string description: | Manual pairings for the next round. Two usernames per line, separated by a space. Example: ``` PlayerA PlayerB PlayerC PlayerD ``` To give a bye (1 point) to a player instead of a pairing, add a line like so: ``` PlayerE 1 ``` Missing players will be considered absent and get zero points. chatFor: type: integer description: | Who can read and write in the chat. - 0 = No-one - 10 = Only team leaders - 20 = Only team members - 30 = All Lichess players default: 20 enum: - 0 - 10 - 20 - 30 conditions.minRating.rating: type: integer description: Minimum rating to join. Leave empty to let everyone join the tournament. enum: - 1000 - 1100 - 1200 - 1300 - 1400 - 1500 - 1600 - 1700 - 1800 - 1900 - 2000 - 2100 - 2200 - 2300 - 2400 - 2500 - 2600 conditions.maxRating.rating: type: integer description: Maximum rating to join. Based on best rating reached in the last 7 days. Leave empty to let everyone join the tournament. enum: - 2200 - 2100 - 2000 - 1900 - 1800 - 1700 - 1600 - 1500 - 1400 - 1300 - 1200 - 1100 - 1000 - 900 - 800 conditions.nbRatedGame.nb: type: integer description: Minimum number of rated games required to join. minimum: 0 maximum: 200 conditions.playYourGames: type: boolean description: | Only let players join if they have played their last swiss game. If they failed to show up in a recent swiss event, they won't be able to enter yours. This results in a better swiss experience for the players who actually show up. default: false conditions.allowList: type: string description: | Predefined list of usernames that are allowed to join, separated by commas. If this list is non-empty, then usernames absent from this list will be forbidden to join. Adding `%titled` to the list additionally allows any titled player to join. Example: `thibault,german11,%titled` required: - clock.limit - clock.increment - nbRounds responses: '200': description: The Swiss tournament was successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/SwissTournament' '400': description: The creation of the Swiss tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/swiss/{id}: parameters: - in: path name: id description: The Swiss tournament ID. schema: type: string required: true get: operationId: swiss summary: Get info about a Swiss tournament description: | Get detailed info about a Swiss tournament. tags: - Tournaments (Swiss) security: [] responses: '200': description: The information of the Swiss tournament. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/SwissTournament' /api/swiss/{id}/edit: post: operationId: apiSwissUpdate summary: Update a Swiss tournament description: | Update a Swiss tournament. Be mindful not to make important changes to ongoing tournaments. Additional restrictions: - clock.limit + clock.increment > 0 - 15s and 0+1 variant tournaments cannot be rated tags: - Tournaments (Swiss) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID. schema: type: string example: hL7vMrFQ required: true requestBody: description: Parameters of the tournament required: true content: application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The tournament name. Leave empty to get a random Grandmaster name minLength: 2 maxLength: 30 clock.limit: type: integer description: Clock initial time in seconds example: 300 enum: - 0 - 15 - 30 - 45 - 60 - 90 - 120 - 180 - 240 - 300 - 360 - 420 - 480 - 600 - 900 - 1200 - 1500 - 1800 - 2400 - 3000 - 3600 - 4200 - 4800 - 5400 - 6000 - 6600 - 7200 - 7800 - 8400 - 9000 - 9600 - 10200 - 10800 clock.increment: type: integer description: Clock increment in seconds example: 1 minimum: 0 maximum: 120 nbRounds: type: integer description: Maximum number of rounds to play minimum: 3 maximum: 100 startsAt: type: integer format: int64 description: Timestamp in milliseconds to start the tournament at a given date and time. By default, it starts 10 minutes after creation. roundInterval: type: integer description: | How long to wait between each round, in seconds. Set to 99999999 to manually schedule each round from the tournament UI, or [with the API](#tag/tournaments-swiss/POST/api/swiss/{id}/schedule-next-round). If empty or -1, a sensible value is picked automatically. enum: - -1 - 5 - 10 - 20 - 30 - 45 - 60 - 120 - 180 - 300 - 600 - 900 - 1200 - 1800 - 2700 - 3600 - 86400 - 172800 - 604800 - 99999999 variant: $ref: '#/components/schemas/VariantKey' position: $ref: '#/components/schemas/SwissFromPositionFEN' description: type: string description: Anything you want to tell players about the tournament rated: type: boolean description: Games are rated and impact players ratings default: true password: type: string description: Make the tournament private and restrict access with a password. forbiddenPairings: type: string description: | Usernames of players that must not play together. Two usernames per line, separated by a space. manualPairings: type: string description: | Manual pairings for the next round. Two usernames per line, separated by a space. Present players without a valid pairing will be given a bye, which is worth 1 point. Forfeited players will get 0 points. chatFor: type: integer description: | Who can read and write in the chat. - 0 = No-one - 10 = Only team leaders - 20 = Only team members - 30 = All Lichess players default: 20 enum: - 0 - 10 - 20 - 30 conditions.minRating.rating: type: integer description: Minimum rating to join. Leave empty to let everyone join the tournament. enum: - 1000 - 1100 - 1200 - 1300 - 1400 - 1500 - 1600 - 1700 - 1800 - 1900 - 2000 - 2100 - 2200 - 2300 - 2400 - 2500 - 2600 conditions.maxRating.rating: type: integer description: Maximum rating to join. Based on best rating reached in the last 7 days. Leave empty to let everyone join the tournament. enum: - 2200 - 2100 - 2000 - 1900 - 1800 - 1700 - 1600 - 1500 - 1400 - 1300 - 1200 - 1100 - 1000 - 900 - 800 conditions.nbRatedGame.nb: type: integer description: Minimum number of rated games required to join. minimum: 0 maximum: 200 conditions.playYourGames: type: boolean description: | Only let players join if they have played their last swiss game. If they failed to show up in a recent swiss event, they won't be able to enter yours. This results in a better swiss experience for the players who actually show up. default: false conditions.allowList: type: string description: | Predefined list of usernames that are allowed to join, separated by commas. If this list is non-empty, then usernames absent from this list will be forbidden to join. Adding `%titled` to the list additionally allows any titled player to join. Example: `thibault,german11,%titled` required: - clock.limit - clock.increment - nbRounds responses: '200': description: The Swiss tournament was successfully updated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/SwissTournament' '400': description: Updating the swiss failed. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: This user cannot update this Swiss. content: application/json: schema: $ref: '#/components/schemas/SwissUnauthorisedEdit' /api/swiss/{id}/schedule-next-round: post: operationId: apiSwissScheduleNextRound summary: Manually schedule the next round description: | Manually schedule the next round date and time of a Swiss tournament. This sets the `roundInterval` field to `99999999`, i.e. manual scheduling. All further rounds will need to be manually scheduled, unless the `roundInterval` field is changed back to automatic scheduling. tags: - Tournaments (Swiss) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID. schema: type: string example: hL7vMrFQ required: true requestBody: description: Parameters of the tournament required: true content: application/x-www-form-urlencoded: schema: type: object properties: date: type: integer format: int64 description: Timestamp in milliseconds to start the next round at a given date and time. responses: '204': description: The Swiss tournament was successfully updated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' '400': description: Updating the swiss failed. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: This user cannot update this Swiss. content: application/json: schema: $ref: '#/components/schemas/SwissUnauthorisedEdit' /api/swiss/{id}/join: post: operationId: apiSwissJoin summary: Join a Swiss tournament description: | Join a Swiss tournament, possibly with a password. tags: - Tournaments (Swiss) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID. schema: type: string example: hL7vMrFQ required: true requestBody: description: You may need these depending on the tournament to join content: application/x-www-form-urlencoded: schema: type: object properties: password: type: string description: The tournament password, if one is required responses: '200': description: The tournament was successfully joined. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: Joining the tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/swiss/{id}/withdraw: post: operationId: apiSwissWithdraw summary: Pause or leave a swiss tournament description: | Leave a future Swiss tournament, or take a break on an ongoing Swiss tournament. It's possible to join again later. Points are preserved. tags: - Tournaments (Swiss) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The tournament ID. schema: type: string example: hL7vMrFQ required: true responses: '200': description: The tournament was successfully paused or left. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' /api/swiss/{id}/terminate: post: operationId: apiSwissTerminate summary: Terminate a Swiss tournament description: | Terminate a Swiss tournament tags: - Tournaments (Swiss) security: - OAuth2: - tournament:write parameters: - in: path name: id description: The Swiss tournament ID. schema: type: string example: W5FrxusN required: true responses: '200': description: The Swiss tournament was successfully terminated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: Terminating the Swiss tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /swiss/{id}.trf: get: operationId: swissTrf summary: Export TRF of a Swiss tournament description: | Download a tournament in the Tournament Report File format, the FIDE standard. Documentation: Example: tags: - Tournaments (Swiss) security: [] parameters: - in: path name: id description: The tournament ID. schema: type: string required: true responses: '200': description: The TRF representation of a Swiss tournament. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: text/plain: schema: type: string /api/swiss/{id}/games: get: operationId: gamesBySwiss summary: Export games of a Swiss tournament description: | Download games of a swiss tournament in PGN or [ndjson](#description/streaming-with-nd-json) format. Games are sorted by chronological order. The game stream is throttled, depending on who is making the request: - Anonymous request: 20 games per second - [OAuth2 authenticated](#description/authentication) request: 30 games per second tags: - Tournaments (Swiss) security: [] parameters: - $ref: '#/components/parameters/AcceptPgnOrNdjson' - in: path name: id description: The tournament ID. schema: type: string required: true - in: query name: player description: Only the games played by a given player schema: type: string - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: false - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: false - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: false - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: false responses: '200': description: The list of games of a Swiss tournament. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: $ref: '#/components/schemas/GamePgn' application/x-ndjson: schema: $ref: '#/components/schemas/GameJson' /api/swiss/{id}/results: get: operationId: resultsBySwiss summary: Get results of a swiss tournament description: | Players of a swiss tournament, with their score and performance, sorted by rank (best first). Players are streamed as [ndjson](#description/streaming-with-nd-json). If called on an ongoing tournament, results can be inconsistent due to ranking changes while the players are being streamed. Use on finished tournaments for guaranteed consistency. tags: - Tournaments (Swiss) security: [] parameters: - in: path name: id description: The tournament ID. schema: type: string required: true - in: query name: nb description: Max number of players to fetch schema: type: integer minimum: 1 responses: '200': description: The results of a Swiss tournament. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: type: object required: - rank - points - tieBreak - rating - username - performance properties: absent: type: boolean rank: type: integer points: type: number tieBreak: type: integer rating: type: integer username: type: string title: $ref: '#/components/schemas/Title' performance: type: integer example: rank: 4 points: 8.5 tieBreak: 77 rating: 2618 username: opperwezen title: IM performance: 2423 /api/team/{teamId}/swiss: get: operationId: apiTeamSwiss summary: Get team swiss tournaments description: | Get all swiss tournaments of a team. Tournaments are sorted by reverse chronological order of start date (last starting first). Tournaments are streamed as [ndjson](#description/streaming-with-nd-json). tags: - Teams - Tournaments (Swiss) security: [] parameters: - in: path name: teamId schema: type: string required: true example: coders - in: query name: max description: How many tournaments to download. schema: type: integer minimum: 1 default: 100 - in: query name: status description: | [Filter] Only swiss tournaments in this current state. schema: $ref: '#/components/schemas/SwissStatus' - in: query name: createdBy description: | [Filter] Only swiss tournaments created by a given user. schema: type: string - in: query name: name description: | [Filter] Only swiss tournaments with a given name. schema: type: string responses: '200': description: The list of Swiss tournaments of a team. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/SwissTournament' examples: default: $ref: '#/components/examples/teams-getTeamSwissTournaments.json' /api/study/{studyId}/{chapterId}.pgn: get: operationId: studyChapterPgn summary: Export one study chapter description: | Download one study chapter in PGN format. If authenticated, then all public, unlisted, and private study chapters are read. If not, only public (non-unlisted) study chapters are read. tags: - Studies security: - OAuth2: - study:read parameters: - in: path name: studyId description: The study ID required: true schema: type: string minLength: 8 maxLength: 8 - in: path name: chapterId description: The chapter ID required: true schema: type: string minLength: 8 maxLength: 8 - in: query name: clocks description: | Include clock comments in the PGN moves, when available. Example: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` schema: type: boolean default: true - in: query name: comments description: | Include analysis and annotator comments in the PGN moves, when available. Example: `12. Bxf6 { [%eval 0.23] } a3 { White is in a pickle. }` schema: type: boolean default: true - in: query name: variations description: | Include non-mainline moves, when available. Example: `4. d4 Bb4+ (4... Nc6 5. Nf3 Bb4+ 6. Bd2 (6. Nbd2 O-O 7. O-O) 6... Bd6) 5. Nd2` schema: type: boolean default: true - in: query name: orientation description: | Add a `Orientation` PGN tag with the chapter predefined orientation. Example: `[Orientation "white"]` schema: type: boolean default: false responses: '200': description: The chapter of the study. content: application/x-chess-pgn: schema: $ref: '#/components/schemas/StudyPgn' /api/study/{studyId}.pgn: get: operationId: studyAllChaptersPgn summary: Export all chapters description: | Download all chapters of a study in PGN format. If authenticated, then all public, unlisted, and private study chapters are read. If not, only public (non-unlisted) study chapters are read. tags: - Studies security: - OAuth2: - study:read parameters: - in: path name: studyId description: The study ID required: true schema: type: string minLength: 8 maxLength: 8 - in: query name: clocks description: | Include clock comments in the PGN moves, when available. Example: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` schema: type: boolean default: true - in: query name: comments description: | Include analysis and annotator comments in the PGN moves, when available. Example: `12. Bxf6 { [%eval 0.23] } a3 { White is in a pickle. }` schema: type: boolean default: true - in: query name: variations description: | Include non-mainline moves, when available. Example: `4. d4 Bb4+ (4... Nc6 5. Nf3 Bb4+ 6. Bd2 (6. Nbd2 O-O 7. O-O) 6... Bd6) 5. Nd2` schema: type: boolean default: true - in: query name: orientation description: | Add a `Orientation` PGN tag with the chapter predefined orientation. Example: `[Orientation "white"]` schema: type: boolean default: false responses: '200': description: The PGN representation of the study. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' Last-Modified: schema: type: string example: Tue, 25 Apr 2023 13:23:09 GMT content: application/x-chess-pgn: schema: $ref: '#/components/schemas/StudyPgn' head: operationId: studyAllChaptersHead summary: Study metadata description: | Only get the study headers, including `Last-Modified`. tags: - Studies security: [] parameters: - in: path name: studyId description: The study ID required: true schema: type: string minLength: 8 maxLength: 8 responses: '204': description: The study headers. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' Last-Modified: schema: type: string example: Tue, 25 Apr 2023 13:23:09 GMT /api/study: post: operationId: apiStudyPost summary: Create a new Study description: | Create a [study](https://lichess.org/study), and a new empty chapter within it. You can make up to 30 new studies per day. tags: - Studies security: - OAuth2: - study:write requestBody: description: Parameters of the study required: true content: application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The study name. minLength: 2 maxLength: 100 visibility: type: string enum: - public - unlisted - private default: unlisted description: | Who can view the study. * `public`: Default. Anyone can view the study, it appears on public listings * `unlisted`: Only people with the link can view the study, it doesn't appear on public listings * `private`: Only the study members can view the study computer: $ref: '#/components/schemas/StudyUserSelection' explorer: $ref: '#/components/schemas/StudyUserSelection' cloneable: $ref: '#/components/schemas/StudyUserSelection' shareable: $ref: '#/components/schemas/StudyUserSelection' chat: $ref: '#/components/schemas/StudyUserSelection' sticky: type: string enum: - 'true' - 'false' default: 'true' description: Keep everyone on the same chapter and position required: - name - visibility - computer - explorer - cloneable - shareable - chat responses: '200': description: The Study has been successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object properties: id: type: string examples: default: value: id: 9kze56XR '400': description: The creation of the Study failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/study/{studyId}/import-pgn: post: operationId: apiStudyImportPGN summary: Import PGN into a study description: | Imports arbitrary PGN into an existing [study](https://lichess.org/study). Creates a new chapter in the study. If the PGN contains multiple games (separated by 2 or more newlines) then multiple chapters will be created within the study. Note that a study can contain at most 64 chapters. tags: - Studies security: - OAuth2: - study:write parameters: - in: path name: studyId description: ID of the study schema: type: string required: true requestBody: description: Parameters of the import required: true content: application/x-www-form-urlencoded: schema: type: object properties: pgn: type: string description: | PGN to import. Can contain multiple games separated by 2 or more newlines. name: type: string description: | Name of the new chapter. If not specified, or if multiple chapters are created, the names will be inferred from the PGN tags. minLength: 1 maxLength: 100 orientation: type: string description: Default board orientation. enum: - white - black default: white variant: $ref: '#/components/schemas/VariantKey' mode: type: string description: | Analysis mode. If not specified, Normal analysis. * practice - Practise with Computer * conceal - Hide next moves * gamebook - Interactive lesson enum: - practice - conceal - gamebook required: - pgn responses: '200': description: The chapters that were created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/StudyImportPgnChapters' '400': description: The creation of the chapter(s) failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/study/{studyId}/{chapterId}/tags: post: operationId: apiStudyChapterTags summary: Update PGN tags of a study chapter description: | Add, update and delete the PGN tags of a study. By providing a list of PGN tags in the usual PGN format, you can: - Add new tags if the chapter doesn't have them yet - Update existing chapter tags - Delete existing chapter tags, by providing a tag with an empty value. The chapter keeps the tags that you don't provide. tags: - Studies security: - OAuth2: - study:write parameters: - in: path name: studyId description: The study ID required: true schema: type: string minLength: 8 maxLength: 8 - in: path name: chapterId description: The chapter ID required: true schema: type: string minLength: 8 maxLength: 8 requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: pgn: type: string description: | PGN text containing the tags. Only the tags are used. Moves are just ignored. required: - pgn responses: '204': description: Tags updated successfully, if the chapter exists and you are authorized the update the study. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' '400': description: The request body was invalid, such as missing or malformed PGN tag data. content: application/json: schema: $ref: '#/components/schemas/Error' /api/study/{studyId}/{chapterId}/moves: post: operationId: apiStudyChapterMoves summary: Update the moves of a study chapter description: | Replaces the moves tree of a study chapter. No tags will be modified. tags: - Studies security: - OAuth2: - study:write parameters: - in: path name: studyId description: The study ID required: true schema: type: string minLength: 8 maxLength: 8 - in: path name: chapterId description: The chapter ID required: true schema: type: string minLength: 8 maxLength: 8 requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: pgn: type: string description: | PGN text containing the moves that will replace the chapter's existing moves. Any provided tags are ignored. required: - pgn responses: '204': description: Moves updated, as the chapter exists and you are allowed to edit it. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' '400': description: Bad request - might be the provided study/chapter doesn't exist, or you aren't allowed to edit it, or the PGN is invalid. content: application/json: schema: $ref: '#/components/schemas/Error' /api/study/by/{username}/export.pgn: get: operationId: studyExportAllPgn summary: Export all studies of a user description: | Download all chapters of all studies of a user in PGN format. If authenticated, then all public, unlisted, and private studies are included. If not, only public (non-unlisted) studies are included. tags: - Studies security: - OAuth2: - study:read parameters: - in: path name: username description: The user whose studies we export required: true schema: type: string - in: query name: clocks description: | Include clock comments in the PGN moves, when available. Example: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` schema: type: boolean default: true - in: query name: comments description: | Include analysis and annotator comments in the PGN moves, when available. Example: `12. Bxf6 { [%eval 0.23] } a3 { White is in a pickle. }` schema: type: boolean default: true - in: query name: variations description: | Include non-mainline moves, when available. Example: `4. d4 Bb4+ (4... Nc6 5. Nf3 Bb4+ 6. Bd2 (6. Nbd2 O-O 7. O-O) 6... Bd6) 5. Nd2` schema: type: boolean default: true - in: query name: orientation description: | Add a `Orientation` PGN tag with the chapter predefined orientation. Example: `[Orientation "white"]` schema: type: boolean default: false responses: '200': description: The studies of the user. content: application/x-chess-pgn: schema: $ref: '#/components/schemas/StudyPgn' /api/study/by/{username}: get: operationId: studyListMetadata summary: List studies of a user description: | Get metadata (name and dates) of all studies of a user. If authenticated, then all public, unlisted, and private studies are included. If not, only public (non-unlisted) studies are included. Studies are streamed as [ndjson](#description/streaming-with-nd-json). tags: - Studies security: - OAuth2: - study:read parameters: - in: path name: username description: The user whose studies we list required: true schema: type: string responses: '200': description: The list of studies. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/StudyMetadata' /api/study/{studyId}/{chapterId}: delete: operationId: apiStudyStudyIdChapterIdDelete summary: Delete a study chapter tags: - Studies security: - OAuth2: - study:write parameters: - in: path name: studyId description: The study ID required: true schema: type: string minLength: 8 maxLength: 8 - in: path name: chapterId description: The chapter ID required: true schema: type: string minLength: 8 maxLength: 8 description: | Delete a chapter of a study you own. This is definitive. A study must have at least one chapter; so if you delete the last chapter, an empty one will be automatically created to replace it. responses: '204': description: Chapter successfully deleted headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' /api/broadcast: get: operationId: broadcastsOfficial summary: Get official broadcasts description: | Returns active (a round is scheduled or ongoing) official broadcasts sorted by tier. After that, returns finished broadcasts sorted by most recent sync time. Broadcasts are streamed as [ndjson](#description/streaming-with-nd-json). tags: - Broadcasts security: [] parameters: - in: query name: nb description: Max number of broadcasts to fetch schema: type: integer default: 20 minimum: 1 maximum: 100 - in: query name: html description: Convert the "description" field from markdown to HTML schema: type: boolean example: true - in: query name: live description: '[Filter] only broadcasts where a round is ongoing, i.e. started and not finished' schema: type: boolean example: true responses: '200': description: The list of official broadcasts. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/BroadcastWithRounds' examples: default: $ref: '#/components/examples/broadcasts-getOfficialBroadcasts.json' /api/broadcast/top: get: operationId: broadcastsTop summary: Get paginated top broadcast previews description: | The same data, in the same order, as can be seen on [https://lichess.org/broadcast](/broadcast). tags: - Broadcasts security: [] parameters: - in: query name: page description: Which page to fetch. Only page 1 has "active" broadcasts. schema: type: integer default: 1 minimum: 1 maximum: 20 - in: query name: html description: Convert the "description" field from markdown to HTML schema: type: boolean example: true responses: '200': description: Paginated top broadcast previews. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/BroadcastTop' examples: default: $ref: '#/components/examples/broadcasts-getPaginatedToBroadcastPreviews.json' /api/broadcast/by/{username}: get: operationId: broadcastsByUser summary: Get broadcasts created by a user description: | Get all incoming, ongoing, and finished official broadcasts. The broadcasts are sorted by created date, most recent first. If you are authenticated as the user whose broadcasts you are requesting, you will also see your private and unlisted broadcasts. tags: - Broadcasts security: - OAuth2: - study:read parameters: - in: path name: username schema: type: string required: true - in: query name: page schema: type: integer example: 1 default: 1 - in: query name: html description: Convert the "description" field from markdown to HTML schema: type: boolean example: true responses: '200': description: A paginated list of the broadcasts created by a user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object properties: currentPage: type: integer example: 4 maxPerPage: type: integer example: 15 currentPageResults: type: array items: $ref: '#/components/schemas/BroadcastByUser' nbResults: type: integer example: 205194 previousPage: type: - integer - 'null' example: 3 nextPage: type: - integer - 'null' example: 5 nbPages: type: integer example: 13680 required: - currentPage - maxPerPage - currentPageResults - nbResults - previousPage - nextPage - nbPages examples: default: $ref: '#/components/examples/broadcasts-getBroadcastsCreatedByUser.json' /api/broadcast/search: get: operationId: broadcastsSearch summary: Search broadcasts description: | Search across recent official broadcasts. tags: - Broadcasts security: [] parameters: - in: query name: page description: Which page to fetch. schema: type: integer default: 1 minimum: 1 maximum: 20 - in: query name: q description: Search term schema: type: string responses: '200': description: Paginated top broadcast previews. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object properties: currentPage: type: integer maxPerPage: type: integer currentPageResults: type: array items: $ref: '#/components/schemas/BroadcastWithLastRound' previousPage: type: - integer - 'null' nextPage: type: - integer - 'null' required: - currentPage - maxPerPage - currentPageResults - previousPage - nextPage examples: default: $ref: '#/components/examples/broadcasts-searchBroadcasts.json' /broadcast/new: post: operationId: broadcastTourCreate summary: Create a broadcast tournament description: | Create a new broadcast tournament to relay external games. This endpoint accepts the same form data as the [web form](https://lichess.org/broadcast/new). tags: - Broadcasts security: - OAuth2: - study:write requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BroadcastForm' responses: '200': description: The broadcast tournament was successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/BroadcastWithRounds' examples: default: $ref: '#/components/examples/broadcasts-createBroadcastTournament.json' '400': description: The creation of the broadcast tournament failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/broadcast/{broadcastTournamentId}: get: operationId: broadcastTourGet summary: Get a broadcast tournament description: | Get information about a broadcast tournament. tags: - Broadcasts security: - {} - OAuth2: - study:read parameters: - in: path name: broadcastTournamentId description: The broadcast tournament ID required: true schema: type: string minLength: 8 maxLength: 8 responses: '200': description: The information about the broadcast tournament. content: application/json: schema: $ref: '#/components/schemas/BroadcastWithRoundsAndFullGroup' examples: default: $ref: '#/components/examples/broadcasts-getBroadcastTournament.json' /broadcast/{broadcastTournamentId}/players: get: operationId: broadcastPlayersGet summary: Get players of a broadcast description: | Get the list of players of a broadcast tournament, if available. tags: - Broadcasts security: [] parameters: - in: path name: broadcastTournamentId description: The broadcast tournament ID required: true schema: type: string minLength: 8 maxLength: 8 responses: '200': description: The broadcast players content: application/json: schema: type: array items: $ref: '#/components/schemas/BroadcastPlayerEntry' examples: default: $ref: '#/components/examples/broadcasts-getPlayersOfBroadcastTournament.json' /broadcast/{broadcastTournamentId}/players/{playerId}: get: operationId: broadcastPlayerGet summary: Get a player of a broadcast description: | Get the details of a specific player and their games from a broadcast tournament. tags: - Broadcasts security: [] parameters: - in: path name: broadcastTournamentId description: The broadcast tournament ID required: true schema: type: string minLength: 8 maxLength: 8 - in: path name: playerId description: | The unique player ID within the broadcast. This is usually their fideId. If the player does not have a fideId, it is their name. Consult the [list of players for the broadcast](#tag/broadcasts/GET/broadcast/{broadcastTournamentId}/players) for which ID to use. required: true schema: type: string responses: '200': description: The broadcast player content: application/json: schema: type: object $ref: '#/components/schemas/BroadcastPlayerEntryWithFideAndGames' examples: default: $ref: '#/components/examples/broadcasts-getPlayer.json' '404': description: The player was not found content: application/json: schema: $ref: '#/components/schemas/NotFound' /broadcast/{broadcastTournamentId}/teams/standings: get: operationId: broadcastTeamLeaderboardGet summary: Get the team leaderboard of a broadcast description: | Get the team leaderboard of a broadcast tournament, if available. tags: - Broadcasts security: [] parameters: - in: path name: broadcastTournamentId description: The broadcast tournament ID required: true schema: type: string minLength: 8 maxLength: 8 responses: '200': description: The team leaderboard content: application/json: schema: type: array items: $ref: '#/components/schemas/BroadcastTeamLeaderboardEntry' '404': description: Broadcast tournament not found /broadcast/{broadcastTournamentId}/edit: post: operationId: broadcastTourUpdate summary: Update your broadcast tournament description: | Update information about a broadcast tournament that you created. This endpoint accepts the same form data as the web form. All fields must be populated with data. Missing fields will override the broadcast with empty data. tags: - Broadcasts security: - OAuth2: - study:write parameters: - in: path name: broadcastTournamentId description: The broadcast ID required: true schema: type: string minLength: 8 maxLength: 8 requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BroadcastForm' responses: '200': description: The broadcast tournament was successfully edited. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/broadcasts-updateBroadcastTournament.json' '400': description: The broadcast tournament update failed. content: application/json: schema: $ref: '#/components/schemas/Error' /broadcast/{broadcastTournamentId}/new: post: operationId: broadcastRoundCreate summary: Create a broadcast round description: | Create a new broadcast round to relay external games. This endpoint accepts the same form data as the web form. Choose one between `syncUrl`, `syncUrls`, `syncIds` and `syncUsers`, if it is missing, the broadcast needs to be fed by [pushing PGN to it](#tag/broadcasts/POST/api/broadcast/round/{broadcastRoundId}/push) tags: - Broadcasts security: - OAuth2: - study:write parameters: - in: path name: broadcastTournamentId description: The broadcast tournament ID required: true schema: type: string minLength: 8 maxLength: 8 requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BroadcastRoundForm' responses: '200': description: The broadcast round was successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/BroadcastRoundNew' examples: default: $ref: '#/components/examples/broadcasts-createBroadcastRound.json' '400': description: The creation of the broadcast failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/broadcast/{broadcastTournamentSlug}/{broadcastRoundSlug}/{broadcastRoundId}: get: operationId: broadcastRoundGet summary: Get a broadcast round description: | Get information about a broadcast round. tags: - Broadcasts security: [] parameters: - in: path name: broadcastTournamentSlug description: The broadcast tournament slug. Only used for SEO, the slug can be safely replaced by `-`. Only the `broadcastRoundId` is actually used. required: true schema: type: string - in: path name: broadcastRoundSlug description: The broadcast round slug. Only used for SEO, the slug can be safely replaced by `-`. Only the `broadcastRoundId` is actually used. required: true schema: type: string - in: path name: broadcastRoundId description: The broadcast Round ID required: true schema: type: string minLength: 8 maxLength: 8 responses: '200': description: The information about the broadcast round. content: application/json: schema: $ref: '#/components/schemas/BroadcastRound' examples: Regular Scoring: $ref: '#/components/examples/broadcasts-getBroadcastRound.json' Custom Scoring: $ref: '#/components/examples/broadcasts-getBroadcastRoundWithCustomScoring.json' /broadcast/round/{broadcastRoundId}/edit: post: operationId: broadcastRoundUpdate summary: Update a broadcast round description: | Update information about a broadcast round. This endpoint accepts the same form data as the web form. All fields must be populated with data. Missing fields will override the broadcast with empty data. For instance, if you omit `startDate`, then any pre-existing start date will be removed. tags: - Broadcasts security: - OAuth2: - study:write parameters: - in: path name: broadcastRoundId description: The broadcast round ID required: true schema: type: string minLength: 8 maxLength: 8 - $ref: '#/components/parameters/PatchQuery' requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/BroadcastRoundForm' responses: '200': description: The broadcast round was successfully edited. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/BroadcastRound' examples: default: $ref: '#/components/examples/broadcasts-updateBroadcastRound.json' '400': description: The broadcast round update failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/broadcast/round/{broadcastRoundId}/reset: post: operationId: broadcastRoundReset summary: Reset a broadcast round description: | Remove any games from the broadcast round and reset it to its initial state. tags: - Broadcasts security: - OAuth2: - study:write parameters: - in: path name: broadcastRoundId description: The broadcast round ID required: true schema: type: string minLength: 8 maxLength: 8 responses: '200': description: The broadcast round was successfully reset. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/broadcasts-resetBroadcastRound.json' /api/broadcast/round/{broadcastRoundId}/push: post: operationId: broadcastPush summary: Push PGN to a broadcast round description: | Update a broadcast with new PGN. Only for broadcasts without a source URL. tags: - Broadcasts security: - OAuth2: - study:write parameters: - in: path name: broadcastRoundId description: The broadcast round ID required: true schema: type: string minLength: 8 maxLength: 8 requestBody: description: The PGN. It can contain up to 100 games, separated by a double new line. required: true content: text/plain: schema: type: string responses: '200': description: The broadcast was successfully updated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/BroadcastPgnPush' examples: default: $ref: '#/components/examples/broadcasts-pushPgnToBroadcastRound.json' '400': description: There was a problem with the pushed PGN. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: properties: error: type: string example: error: Cannot parse moves /api/stream/broadcast/round/{broadcastRoundId}.pgn: get: operationId: broadcastStreamRoundPgn summary: Stream an ongoing broadcast round as PGN description: | This streaming endpoint first sends all games of a broadcast round in PGN format. Then, it waits for new moves to be played. As soon as it happens, the entire PGN of the game is sent to the stream. The stream will also send PGNs when games are added to the round. This is the best way to get updates about an ongoing round. Streaming means no polling, and no pollings means no latency, and minimum impact on the server. tags: - Broadcasts security: [] parameters: - in: path name: broadcastRoundId description: The broadcast round ID required: true schema: type: string minLength: 8 maxLength: 8 - in: query name: clocks description: | Include clock comments in the PGN moves, when available. Example: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` schema: type: boolean default: true - in: query name: comments description: | Include analysis comments in the PGN moves, when available. Example: `12. Bxf6 { [%eval 0.23] }` schema: type: boolean default: true responses: '200': description: The PGN representation of the round games, then the PGNs of games as they are updated. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: $ref: '#/components/schemas/StudyPgn' examples: pgn: $ref: '#/components/examples/broadcasts-streamOngoingBroadcastRoundAsPgn.pgn' /api/broadcast/round/{broadcastRoundId}.pgn: get: operationId: broadcastRoundPgn summary: Export one round as PGN description: | Download all games of a single round of a broadcast tournament in PGN format. You *could* poll this endpoint to get updates about a tournament, but it would be slow, and very inefficient. Instead, consider [streaming the tournament](#tag/broadcasts/GET/api/stream/broadcast/round/{broadcastRoundId}.pgn) to get a new PGN every time a game is updated, in real-time. tags: - Broadcasts security: [] parameters: - in: path name: broadcastRoundId description: The round ID required: true schema: type: string minLength: 8 maxLength: 8 - in: query name: clocks description: | Include clock comments in the PGN moves, when available. Example: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` schema: type: boolean default: true - in: query name: comments description: | Include analysis comments in the PGN moves, when available. Example: `12. Bxf6 { [%eval 0.23] }` schema: type: boolean default: true responses: '200': description: The PGN representation of the round. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: $ref: '#/components/schemas/StudyPgn' examples: pgn: $ref: '#/components/examples/broadcasts-exportOneRoundAsPgn.pgn' /api/broadcast/{broadcastTournamentId}.pgn: get: operationId: broadcastAllRoundsPgn summary: Export all rounds as PGN description: | Download all games of all rounds of a broadcast in PGN format. If a `study:read` [OAuth token](#tag/OAuth) is provided, the private rounds where the user is a contributor will be available. You may want to [download only the games of a single round](#tag/broadcasts/GET/api/broadcast/round/{broadcastRoundId}.pgn) instead. tags: - Broadcasts security: - OAuth2: - study:read parameters: - in: path name: broadcastTournamentId description: The broadcast tournament ID required: true schema: type: string minLength: 8 maxLength: 8 - in: query name: clocks description: | Include clock comments in the PGN moves, when available. Example: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` schema: type: boolean default: true - in: query name: comments description: | Include analysis comments in the PGN moves, when available. Example: `12. Bxf6 { [%eval 0.23] }` schema: type: boolean default: true responses: '200': description: The PGN representation of the broadcast. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: $ref: '#/components/schemas/StudyPgn' examples: pgn: $ref: '#/components/examples/broadcasts-exportAllRoundsAsPgn.pgn' /api/broadcast/my-rounds: get: operationId: broadcastMyRoundsGet summary: Get your broadcast rounds description: | Stream all broadcast rounds you are a member of. Also includes broadcasts rounds you did not create, but were invited to. Also includes broadcasts rounds where you're a non-writing member. See the `writeable` flag in the response. Rounds are ordered by rank, which is roughly chronological, most recent first, slightly pondered with popularity. tags: - Broadcasts security: - OAuth2: - study:read parameters: - in: query name: nb description: How many rounds to get schema: type: integer minimum: 1 example: 20 responses: '200': description: The broadcast rounds with their tournament and a `study.writeable` flag. content: application/x-ndjson: schema: $ref: '#/components/schemas/BroadcastMyRound' examples: default: $ref: '#/components/examples/broadcasts-getYourBroadcastRounds.json' /api/fide/player/{playerId}: get: operationId: fidePlayerGet summary: Get a FIDE player description: | Get information about a FIDE player. tags: - FIDE security: [] parameters: - in: path name: playerId description: The FIDE player ID. required: true schema: type: integer responses: '200': description: The information about the FIDE player. content: application/json: schema: $ref: '#/components/schemas/FIDEPlayer' examples: example player: $ref: '#/components/examples/fide-getFidePlayer.json' example player without all values: $ref: '#/components/examples/fide-getFidePlayer-nullYear.json' /api/fide/player/{playerId}/ratings: get: operationId: fidePlayerRatings summary: Get ratings history of a FIDE player description: | Historical standard, rapid and blitz ratings of a FIDE player tags: - FIDE security: [] parameters: - in: path name: playerId description: The FIDE player ID. required: true schema: type: integer responses: '200': description: The rating histories content: application/json: schema: $ref: '#/components/schemas/FIDEPlayerRatings' examples: example player: $ref: '#/components/examples/fide-getFidePlayerRatings.json' /api/fide/player: get: operationId: fidePlayerSearch summary: Search FIDE players description: | List of FIDE players search results for a query. tags: - FIDE security: [] parameters: - in: query name: q description: The search query. required: true schema: type: string example: Erigaisi Arjun responses: '200': description: The list of FIDE players. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: $ref: '#/components/schemas/FIDEPlayer' examples: default: $ref: '#/components/examples/fide-searchFidePlayers.json' /api/simul: get: operationId: apiSimul summary: Get current simuls description: | Get recently created, started, finished, simuls. Created and finished simul lists are not exhaustives, only those with strong enough host will be listed, the same filter is used to display simuls on https://lichess.org/simul. When [authenticated with OAuth2](#description/authentication), the pending list will be populated with your created, but unstarted simuls. tags: - Simuls security: [] responses: '200': description: The list of simuls. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object properties: pending: type: array items: $ref: '#/components/schemas/Simul' created: type: array items: $ref: '#/components/schemas/Simul' started: type: array items: $ref: '#/components/schemas/Simul' finished: type: array items: $ref: '#/components/schemas/Simul' examples: default: $ref: '#/components/examples/simuls-getCurrentSimuls.json' /api/team/{teamId}: get: operationId: teamShow summary: Get a single team description: Public info about a team. Includes the list of publicly visible leaders. tags: - Teams security: [] parameters: - in: path name: teamId schema: type: string required: true responses: '200': description: The information about the team. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Team' examples: default: $ref: '#/components/examples/teams-getSingleTeam.json' /api/team/all: get: operationId: teamAll summary: Get popular teams description: | Paginator of the most popular teams. tags: - Teams security: [] parameters: - in: query name: page schema: type: integer example: 1 default: 1 responses: '200': description: A paginated list of the most popular teams. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/TeamPaginatorJson' examples: default: $ref: '#/components/examples/teams-getPopularTeams.json' /api/team/of/{username}: get: operationId: teamOfUsername summary: Teams of a player description: | All the teams a player is a member of. Teams that hide their player list are only included if you also belong to the team. tags: - Teams security: - OAuth2: [] parameters: - in: path name: username schema: type: string example: thibault required: true responses: '200': description: The list of teams the player is a member of. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: $ref: '#/components/schemas/Team' examples: default: $ref: '#/components/examples/teams-teamsOfPlayer.json' /api/team/search: get: operationId: teamSearch summary: Search teams description: | Paginator of team search results for a keyword. tags: - Teams security: [] parameters: - in: query name: text schema: type: string example: coders - in: query name: page schema: type: integer example: 1 default: 1 responses: '200': description: The paginated list of teams. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/TeamPaginatorJson' examples: default: $ref: '#/components/examples/teams-searchTeams.json' /api/team/{teamId}/users: get: operationId: teamIdUsers summary: Get members of a team description: | Members are sorted by reverse chronological order of joining the team (most recent first). OAuth is only required if the list of members is private. Up to 5,000 users are streamed as [ndjson](#description/streaming-with-nd-json). tags: - Teams security: - OAuth2: - team:read parameters: - in: path name: teamId schema: type: string example: coders required: true - in: query name: full description: | Full user documents with performance ratings. This limits the response to 1,000 users. schema: type: boolean default: false responses: '200': description: The list of users in the team. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: type: object properties: joinedTeamAt: type: integer format: int64 example: 1716930043067 id: type: string example: chess-network name: type: string example: Chess-Network title: $ref: '#/components/schemas/Title' patronColor: $ref: '#/components/schemas/PatronColor' required: - id - name /api/team/{teamId}/arena: get: operationId: apiTeamArena summary: Get team Arena tournaments description: | Get all Arena tournaments relevant to a team. Tournaments are sorted by reverse chronological order of start date (last starting first). Tournaments are streamed as [ndjson](#description/streaming-with-nd-json). tags: - Teams - Tournaments (Arena) security: [] parameters: - in: path name: teamId description: ID of the team schema: type: string required: true - in: query name: max description: How many tournaments to download. schema: type: integer minimum: 1 default: 100 - in: query name: status description: | [Filter] Only arena tournaments in this current state. schema: $ref: '#/components/schemas/ArenaStatusName' - in: query name: createdBy description: | [Filter] Only arena tournaments created by a given user. schema: type: string - in: query name: name description: | [Filter] Only arena tournaments with a given name. schema: type: string responses: '200': description: The list of Arena tournaments of a team. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/ArenaTournament' examples: default: $ref: '#/components/examples/arenas-getTeamArenaTournaments.json' /team/{teamId}/join: post: operationId: teamIdJoin summary: Join a team description: | Join a team. If the team requires a password but the `password` field is incorrect, then the call fails with `403 Forbidden`. Similarly, if the team join policy requires a confirmation but the `message` parameter is not given, then the call fails with `403 Forbidden`. tags: - Teams security: - OAuth2: - team:write parameters: - in: path name: teamId schema: type: string example: coders required: true requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: message: type: string description: Required if team manually reviews admission requests. minLength: 30 maxLength: 2000 password: type: string description: Optional password, if the team requires one. responses: '200': description: The request to join a team was successfully sent. content: application/json: schema: $ref: '#/components/schemas/Ok' /team/{teamId}/quit: post: operationId: teamIdQuit summary: Leave a team description: | Leave a team. - tags: - Teams security: - OAuth2: - team:write parameters: - in: path name: teamId schema: type: string example: coders required: true responses: '200': description: The logged in user has successfully left the team. content: application/json: schema: $ref: '#/components/schemas/Ok' /api/team/{teamId}/requests: get: operationId: teamRequests summary: Get join requests description: Get pending join requests of your team tags: - Teams security: - OAuth2: - team:read parameters: - in: path name: teamId schema: type: string required: true - in: query name: declined description: Get the declined join requests schema: type: boolean default: false responses: '200': description: The list of pending join requests on your team content: application/json: schema: type: array items: $ref: '#/components/schemas/TeamRequestWithUser' example: - request: userId: mary teamId: my-private-team message: Hello, I would like to join the team! date: 1745112259637 user: id: mary username: Mary perfs: bullet: games: 119 rating: 1066 rd: 101 prog: -1 blitz: games: 34 rating: 1007 rd: 55 prog: -59 rapid: games: 134 rating: 1021 rd: 70 prog: 26 classical: games: 451 rating: 1136 rd: 78 prog: -1 correspondence: games: 35 rating: 1049 rd: 45 prog: 15 chess960: games: 52 rating: 996 rd: 72 prog: -9 kingOfTheHill: games: 1998 rating: 1169 rd: 79 prog: -13 threeCheck: games: 6 rating: 946 rd: 52 prog: 32 antichess: games: 79 rating: 1143 rd: 48 prog: 61 atomic: games: 239 rating: 978 rd: 76 prog: 22 horde: games: 246 rating: 1031 rd: 108 prog: -28 crazyhouse: games: 473 rating: 1063 rd: 88 prog: 2 puzzle: games: 37 rating: 977 rd: 86 prog: 26 flair: food-drink.coconut createdAt: 1744526339498 seenAt: 1745112249912 playTime: total: 14336 tv: 0 /api/team/{teamId}/request/{userId}/accept: post: operationId: teamRequestAccept summary: Accept join request description: Accept someone's request to join your team tags: - Teams security: - OAuth2: - team:lead parameters: - in: path name: teamId schema: type: string example: coders required: true - in: path name: userId schema: type: string example: neio required: true responses: '200': description: The member has been added to the team. content: application/json: schema: $ref: '#/components/schemas/Ok' /api/team/{teamId}/request/{userId}/decline: post: operationId: teamRequestDecline summary: Decline join request description: Decline someone's request to join your team tags: - Teams security: - OAuth2: - team:lead parameters: - in: path name: teamId schema: type: string example: coders required: true - in: path name: userId schema: type: string example: neio required: true responses: '200': description: The join request has been declined and is no longer pending. content: application/json: schema: $ref: '#/components/schemas/Ok' /api/team/{teamId}/kick/{userId}: post: operationId: teamIdKickUserId summary: Kick a user from your team description: | Kick a member out of one of your teams. - tags: - Teams security: - OAuth2: - team:lead parameters: - in: path name: teamId schema: type: string example: coders required: true - in: path name: userId schema: type: string example: neio required: true responses: '200': description: The member has been kicked from the team. content: application/json: schema: $ref: '#/components/schemas/Ok' /team/{teamId}/pm-all: post: operationId: teamIdPmAll summary: Message all members description: | Send a private message to all members of a team. You must be a team leader with the "Messages" permission. tags: - Teams security: - OAuth2: - team:lead parameters: - in: path name: teamId schema: type: string example: coders required: true requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: message: type: string description: The message to send to all your team members. responses: '200': description: The message has successfully been sent to all team members. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The sending of message to all team members has failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/streamer/live: get: operationId: streamerLive summary: Get live streamers description: | Get basic info about currently streaming users. This API is very fast and cheap on lichess side. So you can call it quite often (like once every 5 seconds). tags: - Users security: [] responses: '200': description: The list of live streamers and their respective information. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: type: object allOf: - $ref: '#/components/schemas/LightUser' - type: object properties: stream: type: object properties: service: type: string enum: - twitch - youtube status: type: string description: The stream title lang: type: string streamer: type: object properties: name: type: string headline: type: string description: type: string twitch: type: string format: uri youtube: type: string format: uri image: type: string format: uri examples: default: $ref: '#/components/examples/users-getLiveStreamers.json' /api/crosstable/{user1}/{user2}: get: operationId: apiCrosstable summary: Get crosstable description: | Get total number of games, and current score, of any two users. If the `matchup` flag is provided, and the users are currently playing, also gets the current match game number and scores. tags: - Users security: [] parameters: - in: path name: user1 schema: type: string required: true - in: path name: user2 schema: type: string required: true - in: query name: matchup description: Whether to get the current match data, if any schema: type: boolean responses: '200': description: The crosstable of the two users. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Crosstable' examples: default: $ref: '#/components/examples/users-getCrosstable.json' /api/player/autocomplete: get: operationId: apiPlayerAutocomplete summary: Autocomplete usernames description: | Provides autocompletion options for an incomplete username. tags: - Users security: - {} - OAuth2: [] parameters: - in: query name: term description: The beginning of a username schema: type: string minLength: 3 required: true - in: query name: exists description: | If `true`, only checks if the user exists. schema: type: boolean default: false - in: query name: object description: | - `false` returns an array of usernames - `true` returns an object with matching users schema: type: boolean default: false - in: query name: names description: | - `false` returns an array of usernames - `true` returns an array of usernames with preferred casing schema: type: boolean default: false - in: query name: friend description: | Returns followed players matching `term` if any, else returns other players. Requires [OAuth](#tag/OAuth). schema: type: boolean - in: query name: team description: | Search within a team. Use team ID/slug. schema: type: string - in: query name: tour description: | Search within a arena tournament. Use tournament ID. schema: type: string - in: query name: swiss description: | Search within a Swiss tournament. schema: type: string - in: query name: teacher description: | Only search for players who also have a teacher role. schema: type: boolean default: false responses: '200': description: An array of players which usernames start with the provided term. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: oneOf: - type: array items: type: string - type: object properties: result: type: array items: $ref: '#/components/schemas/LightUserOnline' examples: list of usernames: $ref: '#/components/examples/users-autocompleteUsernames-list.json' array of user objects: $ref: '#/components/examples/users-autocompleteUsernames-object.json' /api/user/{username}/note: post: operationId: writeNote summary: Add a note for a user description: | Add a private note available only to you about this account. tags: - Users security: - OAuth2: [] parameters: - in: path name: username schema: type: string example: thibault required: true requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: text: description: The contents of the note type: string required: - text responses: '200': description: The note was successfully added. content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/users-addNoteForUser.json' get: operationId: readNote summary: Get notes for a user description: | Get the private notes that you have added for a user. tags: - Users security: - OAuth2: [] parameters: - in: path name: username schema: type: string example: thibault required: true responses: '200': description: The list of notes you have added for this user headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: $ref: '#/components/schemas/UserNote' examples: default: $ref: '#/components/examples/users-getNotesForUser.json' /api/rel/following: get: operationId: apiUserFollowing summary: Get users followed by the logged in user description: | Users are streamed as [ndjson](#description/streaming-with-nd-json). tags: - Relations security: - OAuth2: - follow:read responses: '200': description: The list of users followed by a user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/UserExtended' examples: default: $ref: '#/components/examples/relations-getMyFollowing.json' /api/rel/follow/{username}: post: operationId: followUser summary: Follow a player description: | Follow a player, adding them to your list of Lichess friends. tags: - Relations security: - OAuth2: - follow:write parameters: - in: path name: username schema: type: string example: thibault required: true responses: '200': description: The player was successfully added. content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/relations-followPlayer.json' /api/rel/unfollow/{username}: post: operationId: unfollowUser summary: Unfollow a player description: | Unfollow a player, removing them from your list of Lichess friends. tags: - Relations security: - OAuth2: - follow:write parameters: - in: path name: username schema: type: string example: thibault required: true responses: '200': description: The player was successfully removed. content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/relations-unfollowPlayer.json' /api/rel/block/{username}: post: operationId: blockUser summary: Block a player description: | Block a player, adding them to your list of blocked Lichess users. tags: - Relations security: - OAuth2: - follow:write parameters: - in: path name: username schema: type: string example: thibault required: true responses: '200': description: The player was successfully added. content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/relations-blockPlayer.json' /api/rel/unblock/{username}: post: operationId: unblockUser summary: Unblock a player description: | Unblock a player, removing them from your list of blocked Lichess users. tags: - Relations security: - OAuth2: - follow:write parameters: - in: path name: username schema: type: string example: thibault required: true responses: '200': description: The player was successfully removed. content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/relations-unblockPlayer.json' /api/stream/event: get: operationId: apiStreamEvent summary: Stream incoming events description: | Stream the events reaching a lichess user in real time as [ndjson](#description/streaming-with-nd-json). An empty line is sent every 7 seconds for keep alive purposes. Each non-empty line is a JSON object containing a `type` field. Possible values are: - `gameStart` Start of a game - `gameFinish` Completion of a game - `challenge` A player sends you a challenge or you challenge someone - `challengeCanceled` A player cancels their challenge to you - `challengeDeclined` The opponent declines your challenge When the stream opens, all current challenges and games are sent. Only one global event stream can be active at a time. When the stream opens, the previous one with the same access token is closed. tags: - Board - Bot security: - OAuth2: - challenge:read - bot:play - board:play responses: '200': description: The stream of events reaching the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: oneOf: - $ref: '#/components/schemas/GameStartEvent' - $ref: '#/components/schemas/GameFinishEvent' - $ref: '#/components/schemas/ChallengeEvent' - $ref: '#/components/schemas/ChallengeCanceledEvent' - $ref: '#/components/schemas/ChallengeDeclinedEvent' examples: GameStartEvent: $ref: '#/components/examples/stream-gameStart.json' GameStartEvent (vs AI): $ref: '#/components/examples/stream-gameStart-ai.json' GameFinishEvent: $ref: '#/components/examples/stream-gameFinish.json' GameFinishEvent (vs AI): $ref: '#/components/examples/stream-gameFinish-ai.json' ChallengeEvent: $ref: '#/components/examples/stream-challenge.json' ChallengeDeclinedEvent: $ref: '#/components/examples/stream-challengeDeclined.json' ChallengeCanceledEvent: $ref: '#/components/examples/stream-challengeCanceled.json' /api/board/seek: post: operationId: apiBoardSeek summary: Create a seek description: | Create a public seek, to start a game with a random player. ### Real-time seek Specify the `time` and `increment` clock values. The response is streamed but doesn't contain any information. **Keep the connection open to keep the seek active**. If the client closes the connection, the seek is canceled. This way, if the client terminates, the user won't be paired in a game they wouldn't play. When the seek is accepted, or expires, the server closes the connection. **Make sure to also have an [Event stream](#tag/board/GET/api/board/game/stream/{gameId}) open**, to be notified when a game starts. We recommend opening the [Event stream](#tag/board/GET/api/board/game/stream/{gameId}) first, then the seek stream. This way, you won't miss the game event if the seek is accepted immediately. ### Correspondence seek Specify the `days` per turn value. The response is not streamed, it immediately completes with the seek ID. The seek remains active on the server until it is joined by someone. tags: - Board security: - OAuth2: - board:play requestBody: description: Parameters of the seek content: application/x-www-form-urlencoded: schema: allOf: - type: object properties: rated: type: boolean description: Whether the game is rated and impacts players ratings. example: true default: false variant: $ref: '#/components/schemas/VariantKey' ratingRange: type: string description: | The rating range of potential opponents. Better left empty. Example: 1500-1800 - oneOf: - type: object title: real-time required: - time - increment properties: time: type: number description: Clock initial time in minutes. Required for real-time seeks. example: 15 minimum: 0 maximum: 180 increment: type: integer description: Clock increment in seconds. Required for real-time seeks. example: 15 minimum: 0 maximum: 180 color: description: The color to play. Better left empty to automatically get 50% white. $ref: '#/components/schemas/ChallengeColor' - type: object title: correspondence required: - days properties: days: type: integer description: Days per turn. Required for correspondence seeks. enum: - 1 - 2 - 3 - 5 - 7 - 10 - 14 responses: '200': description: The seek was successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object description: Only happens when doing a correspondence seek. required: - id properties: id: type: string example: id: gwkzmEBY application/x-ndjson: schema: description: | Only happens when doing a real-time seek. A periodic empty line until the seek is accepted by another player, at which point the connection closes and no data is sent. type: string const: '' example: '' '400': description: The creation of the seek failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/stream/{gameId}: get: operationId: boardGameStream summary: Stream Board game state description: | Stream the state of a game being played with the Board API, as [ndjson](#description/streaming-with-nd-json). Use this endpoint to get updates about the game in real-time, with a single request. Each line is a JSON object containing a `type` field. Possible values are: - `gameFull` Full game data. All values are immutable, except for the `state` field. - `gameState` Current state of the game. Immutable values not included. Sent when a move is played, a draw is offered, or when the game ends. - `chatLine` Chat message sent by a user in the `room` "player" or "spectator". - `opponentGone` Whether the opponent has left the game, and how long before you can claim a win or draw. The first line is always of type `gameFull`. The server closes the stream when the game ends, or if the game has already ended. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The stream of the game. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: oneOf: - $ref: '#/components/schemas/GameFullEvent' - $ref: '#/components/schemas/GameStateEvent' - $ref: '#/components/schemas/ChatLineEvent' - $ref: '#/components/schemas/OpponentGoneEvent' '404': description: The game was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/board/game/{gameId}/move/{move}: post: operationId: boardGameMove summary: Make a Board move description: | Make a move in a game being played with the Board API. The move can also contain a draw offer/agreement. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true - in: path name: move required: true description: The move to play, in UCI format schema: type: string example: e2e4 - in: query name: offeringDraw description: Whether to offer (or agree to) a draw schema: type: boolean responses: '200': description: The move was successfully made. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The move failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/{gameId}/chat: parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true post: operationId: boardGameChatPost summary: Write in the chat description: | Post a message to the player or spectator chat, in a game being played with the Board API. tags: - Board security: - OAuth2: - board:play requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: room: type: string enum: - player - spectator text: type: string example: Thank you for the game! required: - room - text responses: '200': description: The message was successfully posted in the chat. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The posting of the message in the chat failed. content: application/json: schema: $ref: '#/components/schemas/Error' get: operationId: boardGameChatGet summary: Fetch the player chat description: | Get the messages posted in the private game chat, i.e. the chat between the 2 players of the game. Games can also have a public spectator chat. tags: - Board security: - OAuth2: - board:play responses: '200': description: The messages posted in the chat. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/PlayerGameChat' /api/board/game/{gameId}/abort: post: operationId: boardGameAbort summary: Abort a game description: | Abort a game being played with the Board API. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The game successfully aborted. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The abortion of the game failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/{gameId}/resign: post: operationId: boardGameResign summary: Resign a game description: | Resign a game being played with the Board API. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The game was successfully resigned. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The resigning from the game failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/{gameId}/draw/{accept}: post: operationId: boardGameDraw summary: Handle draw offers description: | Create/accept/decline draw offers. - `yes`: Offer a draw, or accept the opponent's draw offer. - `no`: Decline a draw offer from the opponent. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true - in: path name: accept schema: anyOf: - type: boolean - type: string const: 'yes' example: 'yes' required: true responses: '200': description: The draw offer was successfully sent. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The draw offering failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/{gameId}/takeback/{accept}: post: operationId: boardGameTakeback summary: Handle takeback offers description: | Create/accept/decline takebacks. - `yes`: Propose a takeback, or accept the opponent's takeback offer. - `no`: Decline a takeback offer from the opponent. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true - in: path name: accept schema: anyOf: - type: boolean - type: string const: 'yes' example: 'yes' required: true responses: '200': description: The takeback offer was successfully sent. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The takeback offering failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/{gameId}/claim-victory: post: operationId: boardGameClaimVictory summary: Claim victory of a game description: | Claim victory when the opponent has left the game for a while. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The victory was successfully claimed. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The victory claim has failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/{gameId}/claim-draw: post: operationId: boardGameClaimDraw summary: Claim draw of a game description: | Claim draw when the opponent has left the game for a while. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The draw was successfully claimed. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The draw claim has failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/board/game/{gameId}/berserk: post: operationId: boardGameBerserk summary: Berserk a tournament game description: | Go berserk on an arena tournament game. Halves the clock time, grants an extra point upon winning. Only available in arena tournaments that allow berserk, and before each player has made a move. tags: - Board security: - OAuth2: - board:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The player successfully went berserk. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The berserk has failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/online: get: operationId: apiBotOnline summary: Get online bots tags: - Bot security: [] description: Stream the [online bot users](https://lichess.org/player/bots), as [ndjson](#description/streaming-with-nd-json). parameters: - in: query name: nb description: How many bot users to fetch schema: type: integer minimum: 1 maximum: 512 default: 100 example: 20 responses: '200': description: The list of online bot users headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/User' examples: default: $ref: '#/components/examples/bot-getOnlineBots.json' /api/bot/account/upgrade: post: operationId: botAccountUpgrade summary: Upgrade to Bot account description: | Upgrade a lichess player account into a Bot account. Only Bot accounts can use the Bot API. The account **cannot have played any game** before becoming a Bot account. The upgrade is **irreversible**. The account will only be able to play as a Bot. To upgrade an account to Bot, use the [official lichess-bot client](https://github.com/lichess-bot-devs/lichess-bot), or follow these steps: - Create an [API access token](https://lichess.org/account/oauth/token/create?scopes[]=bot:play) with "Play bot moves" permission. - `curl -d '' https://lichess.org/api/bot/account/upgrade -H "Authorization: Bearer "` To know if an account has already been upgraded, use the [Get my profile API](#tag/account/GET/api/account): the `title` field should be set to `BOT`. tags: - Bot security: - OAuth2: - bot:play responses: '200': description: The bot account was successfully upgraded. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The upgrade of the bot account failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/game/stream/{gameId}: get: operationId: botGameStream summary: Stream Bot game state description: | Stream the state of a game being played with the Bot API, as [ndjson](#description/streaming-with-nd-json). Use this endpoint to get updates about the game in real-time, with a single request. Each line is a JSON object containing a `type` field. Possible values are: - `gameFull` Full game data. All values are immutable, except for the `state` field. - `gameState` Current state of the game. Immutable values not included. - `chatLine` Chat message sent by a user (or the bot itself) in the `room` "player" or "spectator". - `opponentGone` Whether the opponent has left the game, and how long before you can claim a win or draw. The first line is always of type `gameFull`. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The stream of the bot game. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: oneOf: - $ref: '#/components/schemas/GameFullEvent' - $ref: '#/components/schemas/GameStateEvent' - $ref: '#/components/schemas/ChatLineEvent' - $ref: '#/components/schemas/OpponentGoneEvent' '404': description: The bot game was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/bot/game/{gameId}/move/{move}: post: operationId: botGameMove summary: Make a Bot move description: | Make a move in a game being played with the Bot API. The move can also contain a draw offer/agreement. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true - in: path name: move required: true description: The move to play, in UCI format schema: type: string example: e2e4 - in: query name: offeringDraw description: Whether to offer (or agree to) a draw schema: type: boolean responses: '200': description: The bot move was successfully made. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The bot move failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/game/{gameId}/chat: post: operationId: botGameChat summary: Write in the chat description: | Post a message to the player or spectator chat, in a game being played with the Bot API. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: room: type: string enum: - player - spectator text: type: string example: Thank you for the game! required: - room - text responses: '200': description: The message was successfully posted in chat. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The posting of the message in chat failed. content: application/json: schema: $ref: '#/components/schemas/Error' get: operationId: botGameChatGet summary: Fetch the game chat description: | Get the messages posted in the game chat tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The messages posted in the chat. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: $ref: '#/components/schemas/PlayerGameChat' /api/bot/game/{gameId}/abort: post: operationId: botGameAbort summary: Abort a game description: | Abort a game being played with the Bot API. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The game was successfully aborted. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The abortion of the game failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/game/{gameId}/resign: post: operationId: botGameResign summary: Resign a game description: | Resign a game being played with the Bot API. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The game was successfully resigned from. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: Resigning the game failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/game/{gameId}/draw/{accept}: post: operationId: botGameDraw summary: Handle draw offers description: | Create/accept/decline draw offers with the Bot API. - `yes`: Offer a draw, or accept the opponent's draw offer. - `no`: Decline a draw offer from the opponent. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true - in: path name: accept schema: anyOf: - type: boolean - type: string const: 'yes' example: 'yes' required: true responses: '200': description: The draw offer was successfully sent. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The draw offering failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/game/{gameId}/takeback/{accept}: post: operationId: botGameTakeback summary: Handle takeback offers description: | Create/accept/decline takebacks with the Bot API. - `yes`: Propose a takeback, or accept the opponent's takeback offer. - `no`: Decline a takeback offer from the opponent. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true - in: path name: accept schema: anyOf: - type: boolean - type: string const: 'yes' example: 'yes' required: true responses: '200': description: The takeback offer was successfully sent. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The takeback offering failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/game/{gameId}/claim-victory: post: operationId: botGameClaimVictory summary: Claim victory of a game description: | Claim victory when the opponent has left the game for a while. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The victory was successfully claimed. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The victory claim has failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bot/game/{gameId}/claim-draw: post: operationId: botGameClaimDraw summary: Claim draw of a game description: | Claim draw when the opponent has left the game for a while. tags: - Bot security: - OAuth2: - bot:play parameters: - in: path name: gameId schema: type: string example: 5IrD6Gzz required: true responses: '200': description: The draw was successfully claimed. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The draw claim has failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/challenge: get: operationId: challengeList summary: List your challenges description: | Get a list of challenges created by or targeted at you. tags: - Challenges security: - OAuth2: - challenge:read responses: '200': description: The list of challenges created by or targeted at the logged in user. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object properties: in: type: array description: Incoming challenges i.e. targeted at you items: $ref: '#/components/schemas/ChallengeJson' out: type: array description: Outgoing challenges i.e. created by you items: $ref: '#/components/schemas/ChallengeJson' examples: default: $ref: '#/components/examples/challenges-listYourChallenges.json' /api/challenge/{username}: post: operationId: challengeCreate summary: Create a challenge description: | Challenge someone to play. The targeted player can choose to accept or decline. If the challenge is accepted, you will be notified on the [event stream](#tag/board/GET/api/board/game/stream/{gameId}) that a new game has started. The game ID will be the same as the challenge ID. Challenges for realtime games (not correspondence) expire after 20s if not accepted. To prevent that, use the `keepAliveStream` flag described below. tags: - Challenges security: - OAuth2: - challenge:write - bot:play - board:play parameters: - in: path name: username schema: type: string example: LeelaChess required: true requestBody: description: Parameters of the challenge content: application/x-www-form-urlencoded: schema: allOf: - oneOf: - type: object title: real-time required: - clock.limit - clock.increment properties: clock.limit: type: integer description: Clock initial time in seconds. If empty, a correspondence game is created. Valid values are 0, 15, 30, 45, 60, 90, and any multiple of 60 up to 10800 (3 hours). example: 300 minimum: 0 maximum: 10800 clock.increment: type: integer description: Clock increment in seconds. If empty, a correspondence game is created. example: 1 minimum: 0 maximum: 60 - type: object title: correspondence required: - days properties: days: type: integer description: Days per move, for correspondence games. Clock settings must be omitted. enum: - 1 - 2 - 3 - 5 - 7 - 10 - 14 - type: object title: unlimited properties: {} - type: object properties: rated: type: boolean description: Game is rated and impacts players ratings default: false color: $ref: '#/components/schemas/ChallengeColor' description: Which color you get to play default: random variant: $ref: '#/components/schemas/VariantKey' fen: $ref: '#/components/schemas/FromPositionFEN' keepAliveStream: type: boolean description: | If set, the response is streamed as [ndjson](#description/streaming-with-nd-json). The challenge is kept alive until the connection is closed by the client. When the challenge is accepted, declined or canceled, a message of the form `{"done":"accepted"}` is sent, then the connection is closed by the server. If not set, the response is not streamed, and the challenge expires after 20s if not accepted. rules: type: string enum: - noAbort - noRematch - noGiveTime - noClaimWin - noEarlyDraw description: | Extra game rules separated by commas. Example: `noAbort,noRematch` responses: '200': description: The challenge was successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ChallengeJson' examples: default: $ref: '#/components/examples/challenges-createChallenge.json' '400': description: The creation of the challenge failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/challenge/{challengeId}/show: get: operationId: challengeShow summary: Show one challenge description: | Get details about a challenge, even if it has been recently accepted, canceled or declined. tags: - Challenges security: - OAuth2: - challenge:read parameters: - in: path name: challengeId required: true description: The challenge ID schema: type: string responses: '200': description: The challenge for that ID. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ChallengeJson' examples: default: $ref: '#/components/examples/challenges-showOneChallenge.json' /api/challenge/{challengeId}/accept: post: operationId: challengeAccept summary: Accept a challenge description: | Accept an incoming challenge. You should receive a `gameStart` event on the [incoming events stream](#tag/board/GET/api/board/game/stream/{gameId}). tags: - Challenges security: - OAuth2: - challenge:write - bot:play - board:play parameters: - in: path name: challengeId schema: type: string example: 5IrD6Gzz required: true - in: query name: color description: Accept challenge as this color (only valid if this is an [open challenge](#challenge/open)) schema: type: string enum: - white - black responses: '200': description: The challenge was successfully accepted. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/challenges-acceptChallenge.json' '404': description: The challenge to accept was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/challenge/{challengeId}/decline: post: operationId: challengeDecline summary: Decline a challenge description: | Decline an incoming challenge. tags: - Challenges security: - OAuth2: - challenge:write - bot:play - board:play parameters: - in: path name: challengeId schema: type: string example: 5IrD6Gzz required: true requestBody: description: Details related to decline of challenge required: false content: application/x-www-form-urlencoded: schema: type: object properties: reason: type: string description: Reason challenge was declined. It will be translated to the player's language. See [the full list in the translation file](https://github.com/ornicar/lila/blob/master/translation/source/challenge.xml#L14). enum: - generic - later - tooFast - tooSlow - timeControl - rated - casual - standard - variant - noBot - onlyBot responses: '200': description: The challenge was successfully declined. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/challenges-declineChallenge.json' '404': description: The challenge to decline was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/challenge/{challengeId}/cancel: post: operationId: challengeCancel summary: Cancel a challenge description: | Cancel a challenge you sent, or aborts the game if the challenge was accepted, but the game was not yet played. Note that the ID of a game is the same as the ID of the challenge that created it. Works for user challenges and open challenges alike. tags: - Challenges security: - OAuth2: - challenge:write - bot:play - board:play parameters: - in: path name: challengeId schema: type: string example: 5IrD6Gzz required: true - in: query name: opponentToken description: Optional `challenge:write` token of the opponent. If set, the game can be canceled even if both players have moved. schema: type: string responses: '200': description: The challenge was successfully cancelled. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/challenges-cancelChallenge.json' '404': description: The challenge to cancel was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/challenge/ai: post: operationId: challengeAi summary: Challenge the AI description: | Start a game with Lichess AI. You will be notified on the [event stream](#tag/board/GET/api/board/game/stream/{gameId}) that a new game has started. tags: - Challenges security: - OAuth2: - challenge:write - bot:play - board:play requestBody: description: Parameters of the game required: true content: application/x-www-form-urlencoded: schema: type: object properties: level: type: integer description: AI strength minimum: 1 maximum: 8 clock.limit: type: integer description: Clock initial time in seconds. If empty, a correspondence game is created. example: 300 minimum: 0 maximum: 10800 clock.increment: type: integer description: Clock increment in seconds. If empty, a correspondence game is created. example: 1 minimum: 0 maximum: 60 days: type: integer description: Days per move, for correspondence games. Clock settings must be omitted. enum: - 1 - 2 - 3 - 5 - 7 - 10 - 14 color: $ref: '#/components/schemas/ChallengeColor' description: Which color you get to play default: random variant: $ref: '#/components/schemas/VariantKey' fen: $ref: '#/components/schemas/FromPositionFEN' required: - level responses: '201': description: The game with Lichess AI was successfully started. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: properties: id: type: string minLength: 8 maxLength: 8 variant: $ref: '#/components/schemas/Variant' speed: $ref: '#/components/schemas/Speed' perf: $ref: '#/components/schemas/PerfType' rated: type: boolean fen: type: string turns: type: integer source: $ref: '#/components/schemas/GameSource' status: $ref: '#/components/schemas/GameStatus' createdAt: type: integer format: int64 player: $ref: '#/components/schemas/GameColor' fullId: type: string minLength: 12 maxLength: 12 examples: default: $ref: '#/components/examples/challenges-challengeAi.json' '400': description: The creation of a game with Lichess AI failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/challenge/open: post: operationId: challengeOpen summary: Open-ended challenge description: | Create a challenge that any 2 players can join. Share the URL of the challenge. the first 2 players to click it will be paired for a game. The response body also contains `whiteUrl` and `blackUrl`. You can control which color each player gets by giving them these URLs, instead of the main challenge URL. Open challenges expire after 24h. If the challenge creation is [authenticated with OAuth2](#description/authentication), then you can use the [challenge cancel endpoint](#tag/challenges/POST/api/challenge/{challengeId}/cancel) to cancel it. To directly pair 2 known players, use [this endpoint](#tag/bulk-pairings/GET/api/bulk-pairing) instead. tags: - Challenges security: [] requestBody: description: Parameters of the game content: application/x-www-form-urlencoded: schema: type: object properties: rated: type: boolean description: Game is rated and impacts players ratings default: false clock.limit: type: integer description: Clock initial time in seconds. If empty, a correspondence game is created. example: 300 minimum: 0 maximum: 10800 clock.increment: type: integer description: Clock increment in seconds. If empty, a correspondence game is created. example: 1 minimum: 0 maximum: 60 days: type: integer description: Days per turn. For correspondence challenges. enum: - 1 - 2 - 3 - 5 - 7 - 10 - 14 variant: $ref: '#/components/schemas/VariantKey' fen: $ref: '#/components/schemas/FromPositionFEN' name: type: string description: Optional name for the challenge, that players will see on the challenge page. rules: type: string enum: - noRematch - noGiveTime - noClaimWin - noEarlyDraw - noAbort description: | Extra game rules separated by commas. Example: `noRematch,noGiveTime` The `noAbort` rule is available for Lichess admins only users: type: string description: | Optional pair of usernames, separated by a comma. If set, only these users will be allowed to join the game. The first username gets the white pieces. Example: `Username1,Username2` expiresAt: type: integer format: int64 description: Timestamp in milliseconds to expire the challenge. Defaults to 24h after creation. Can't be more than 2 weeks after creation. responses: '200': description: The challenge was successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ChallengeOpenJson' examples: default: $ref: '#/components/examples/challenges-openEndedChallenge.json' '400': description: The creation of the challenge failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/challenge/{gameId}/start-clocks: post: operationId: challengeStartClocks summary: Start clocks of a game description: | Start the clocks of a game immediately, even if a player has not yet made a move. Requires the OAuth tokens of both players with `challenge:write` scope. If the clocks have already started, the call will have no effect. For AI games with only one player, omit the `token2` parameter. tags: - Challenges security: - OAuth2: - challenge:write parameters: - in: path name: gameId schema: type: string description: ID of the game required: true - in: query name: token1 description: OAuth token of a player schema: type: string required: true - in: query name: token2 description: OAuth token of the other player. Omit for AI games that have only one player. schema: type: string responses: '200': description: The clock of a game was successfully started. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/challenges-startClocks.json' /api/bulk-pairing: get: operationId: bulkPairingList summary: View your bulk pairings description: | Get a list of bulk pairings you created. tags: - Bulk pairings security: - OAuth2: - challenge:bulk responses: '200': description: The list of bulk pairing the logged in user created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: $ref: '#/components/schemas/BulkPairing' post: operationId: bulkPairingCreate summary: Create a bulk pairing description: | Schedule many games at once, up to 24h in advance. OAuth tokens are required for all paired players, with the `challenge:write` scope. You can schedule up to 500 games every 10 minutes. [Contact us](mailto:contact@lichess.org) if you need higher limits. If games have a real-time clock, each player must have only one pairing. For correspondence games, players can have multiple pairings within the same bulk. **The entire bulk is rejected if:** - a token is missing - a token is present more than once (except in correspondence) - a token lacks the `challenge:write` scope - a player account is closed - a player is paired more than once (except in correspondence) - a bulk is already scheduled to start at the same time with the same player - you have 20 scheduled bulks - you have 1000 scheduled games Partial bulks are never created. Either it all fails, or it all succeeds. When it fails, it does so with an error message explaining the issue. Failed bulks are not counted in the rate limiting, they are free. Fix the issues, manually or programmatically, then retry to schedule the bulk. A successful bulk creation returns a JSON bulk document. Its ID can be used for further operations. tags: - Bulk pairings security: - OAuth2: - challenge:bulk requestBody: description: Parameters of the pairings required: true content: application/x-www-form-urlencoded: schema: type: object properties: players: type: string description: | OAuth tokens of all the players to pair, with the syntax `tokenOfWhitePlayerInGame1:tokenOfBlackPlayerInGame1,tokenOfWhitePlayerInGame2:tokenOfBlackPlayerInGame2,...`. The 2 tokens of the players of a game are separated with `:`. The first token gets the white pieces. Games are separated with `,`. Up to 1000 tokens can be sent, for a max of 500 games. Each token must be included at most once. Example: `token1:token2,token3:token4,token5:token6` clock.limit: type: integer description: | Clock initial time in seconds. Example: `600` minimum: 0 maximum: 10800 clock.increment: type: integer description: | Clock increment in seconds. Example: `2` minimum: 0 maximum: 60 days: type: integer description: Days per turn. For correspondence games only. enum: - 1 - 2 - 3 - 5 - 7 - 10 - 14 pairAt: type: integer format: int64 description: | Date at which the games will be created as a Unix timestamp in milliseconds. Up to 7 days in the future. Omit, or set to current date and time, to start the games immediately. Example: `1612289869919` startClocksAt: type: integer format: int64 description: | Date at which the clocks will be automatically started as a Unix timestamp in milliseconds. Up to 7 days in the future. Note that the clocks can start earlier than specified, if players start making moves in the game. If omitted, the clocks will not start automatically. Example: `1612289869919` rated: type: boolean description: Game is rated and impacts players ratings default: false variant: $ref: '#/components/schemas/VariantKey' fen: $ref: '#/components/schemas/FromPositionFEN' message: type: string description: | Message that will be sent to each player, when the game is created. It is sent from your user account. `{opponent}` and `{game}` are placeholders that will be replaced with the opponent and the game URLs. You can omit this field to send the default message, but if you set your own message, it must at least contain the `{game}` placeholder. default: 'Your game with {opponent} is ready: {game}.' rules: type: string enum: - noAbort - noRematch - noGiveTime - noClaimWin - noEarlyDraw description: | Extra game rules separated by commas. Example: `noAbort,noRematch` responses: '200': description: The bulk pairing has been successfully created. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/BulkPairing' '400': description: The creation of the bulk pairings failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/bulk-pairing/{id}/start-clocks: post: operationId: bulkPairingStartClocks summary: Manually start clocks description: | Immediately start all clocks of the games of a bulk pairing. This overrides the `startClocksAt` value of an existing bulk pairing. If the games have not yet been created (`bulk.pairAt` is in the future), then this does nothing. If the clocks have already started (`bulk.startClocksAt` is in the past), then this does nothing. tags: - Bulk pairings security: - OAuth2: - challenge:bulk parameters: - in: path name: id schema: type: string description: The ID of the bulk pairing example: 5IrD6Gzz required: true responses: '200': description: The clocks of the games of a bulk pairing were successfully started. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '404': description: The bulk pairing was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/bulk-pairing/{id}: get: operationId: bulkPairingGet summary: Show a bulk pairing description: | Get a single bulk pairing by its ID. tags: - Bulk pairings security: - OAuth2: - challenge:bulk parameters: - in: path name: id schema: type: string description: The ID of the bulk pairing example: 5IrD6Gzz required: true responses: '200': description: The bulk pairing. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/BulkPairing' '404': description: The bulk pairing was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' delete: operationId: bulkPairingDelete summary: Cancel a bulk pairing description: | Cancel and delete a bulk pairing that is scheduled in the future. If the games have already been created, then this does nothing. Canceling a bulk pairing does not refund the rate limit cost of that bulk pairing. tags: - Bulk pairings security: - OAuth2: - challenge:bulk parameters: - in: path name: id schema: type: string description: The ID of the bulk pairing example: 5IrD6Gzz required: true responses: '200': description: The bulk pairing was successfully deleted. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' '404': description: The bulk pairing to delete was not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' /api/bulk-pairing/{id}/games: get: operationId: bulkPairingIdGamesGet summary: Export games of a bulk pairing description: | Download games of a bulk in PGN or [ndjson](#description/streaming-with-nd-json) format, depending on the request `Accept` header. tags: - Bulk pairings security: - OAuth2: - challenge:bulk parameters: - $ref: '#/components/parameters/AcceptPgnOrNdjson' - in: path name: id schema: type: string description: The ID of the bulk pairing example: 5IrD6Gzz required: true - in: query name: moves description: Include the PGN moves. schema: type: boolean default: true - in: query name: pgnInJson description: Include the full PGN within the JSON response, in a `pgn` field. schema: type: boolean default: false - in: query name: tags description: Include the PGN tags. schema: type: boolean default: true - in: query name: clocks description: | Include clock status when available. Either as PGN comments: `2. exd5 { [%clk 1:01:27] } e5 { [%clk 1:01:28] }` Or in a `clocks` JSON field, as centisecond integers, depending on the response type. schema: type: boolean default: false - in: query name: evals description: | Include analysis evaluations and comments, when available. Either as PGN comments: `12. Bxf6 { [%eval 0.23] } a3 { [%eval -1.09] }` Or in an `analysis` JSON field, depending on the response type. schema: type: boolean default: false - in: query name: accuracy description: | Include [accuracy percent](https://lichess.org/page/accuracy) of each player, when available. Only available in JSON. schema: type: boolean default: false - in: query name: opening description: | Include the opening name. Example: `[Opening "King's Gambit Accepted, King's Knight Gambit"]` schema: type: boolean default: false - in: query name: division description: | Plies which mark the beginning of the middlegame and endgame. Only available in JSON schema: type: boolean default: false - in: query name: literate description: | Insert textual annotations in the PGN about the opening, analysis variations, mistakes, and game termination. Example: `5... g4? { (-0.98 → 0.60) Mistake. Best move was h6. } (5... h6 6. d4 Ne7 7. g3 d5 8. exd5 fxg3 9. hxg3 c6 10. dxc6)` schema: type: boolean default: false responses: '200': description: The representation of the games. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-chess-pgn: schema: $ref: '#/components/schemas/GamePgn' application/x-ndjson: schema: $ref: '#/components/schemas/GameJson' /api/round/{gameId}/add-time/{seconds}: post: operationId: roundAddTime summary: Add time to the opponent clock description: | Add seconds to the opponent's clock. Can be used to create games with time odds. tags: - Challenges security: - OAuth2: - challenge:write parameters: - in: path name: gameId schema: type: string description: ID of the game required: true - in: path name: seconds description: How many seconds to give schema: type: integer minimum: 5 maximum: 60 required: true responses: '200': description: Time was successfully added to the opponent's clock. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/challenges-addTimeToOpponent.json' /api/token/admin-challenge: post: operationId: adminChallengeTokens summary: Admin challenge tokens description: | **This endpoint can only be used by Lichess administrators. It will not work if you do not have the appropriate permissions.** Tournament organizers should instead use [OAuth](#tag/OAuth) to obtain `challenge:write` tokens from users in order to perform bulk pairing.* Create and obtain `challenge:write` tokens for multiple users. If a similar token already exists for a user, it is reused. This endpoint is idempotent. tags: - Challenges security: - OAuth2: - web:mod requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: users: description: Usernames separated with commas type: string example: thibault,neio,lizen2,lizen3 description: description: User visible description of the token type: string example: FIDE tournament XYZ required: - users - description responses: '200': description: The `challenge:write` tokens of each user headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object additionalProperties: type: string examples: default: $ref: '#/components/examples/challenges-adminChallengeTokens.json' '400': description: The creation of the tokens failed. content: application/json: schema: $ref: '#/components/schemas/Error' /inbox/{username}: post: operationId: inboxUsername summary: Send a private message description: | Send a private message to another player. tags: - Messaging security: - OAuth2: - msg:write parameters: - in: path name: username schema: type: string example: someplayer required: true requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: text: type: string example: Thank you for the game! required: - text responses: '200': description: The private message has been successfully sent. content: application/json: schema: $ref: '#/components/schemas/Ok' '400': description: The sending of the private message has failed. content: application/json: schema: $ref: '#/components/schemas/Error' /api/cloud-eval: get: operationId: apiCloudEval summary: Get cloud evaluation of a position. description: | Get the cached evaluation of a position, if available. Opening positions have more chances of being available. There are about 320 million positions in the database. Up to 5 variations may be available. Variants are supported. Use this endpoint to fetch a few positions here and there. If you want to download a lot of positions, [get the full list](https://database.lichess.org/#evals) from our exported database. tags: - Analysis security: [] parameters: - in: query name: fen required: true description: X-FEN of the position schema: type: string example: r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R b KQkq - 3 3 - in: query name: multiPv description: Number of variations schema: type: integer default: 1 - in: query name: variant description: Variant schema: $ref: '#/components/schemas/VariantKey' responses: '200': description: The evaluation of the position. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/CloudEval' '404': description: The position was not found in the cloud evaluation database. content: application/json: schema: properties: error: type: string example: No cloud evaluation available for that position /api/external-engine: get: operationId: apiExternalEngineList summary: List external engines tags: - External engine security: - OAuth2: - engine:read description: | Lists all external engines that have been registered for the user, and the credentials required to use them. responses: '200': description: A list of external engines. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: array items: $ref: '#/components/schemas/ExternalEngine' examples: default: $ref: '#/components/examples/externalEngine-listExternalEngines.json' post: operationId: apiExternalEngineCreate summary: Create external engine tags: - External engine security: - OAuth2: - engine:write description: | Registers a new external engine for the user. It can then be selected and used on the analysis board. After registering, the provider should start waiting for analyis requests. requestBody: description: A new external engine registration. required: true content: application/json: schema: $ref: '#/components/schemas/ExternalEngineRegistration' responses: '200': description: The registered engine. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ExternalEngine' examples: default: $ref: '#/components/examples/externalEngine-createExternalEngine.json' /api/external-engine/{id}: parameters: - in: path name: id required: true description: The external engine id. schema: type: string example: eei_aTKImBJOnv6j get: operationId: apiExternalEngineGet summary: Get external engine tags: - External engine security: - OAuth2: - engine:read description: | Get properties and credentials of an external engine. responses: '200': description: A registered engine. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ExternalEngine' examples: default: $ref: '#/components/examples/externalEngine-getExternalEngine.json' put: operationId: apiExternalEnginePut summary: Update external engine tags: - External engine security: - OAuth2: - engine:write description: | Updates the properties of an external engine. requestBody: description: A modified engine registration. required: true content: application/json: schema: $ref: '#/components/schemas/ExternalEngineRegistration' responses: '200': description: A registered engine. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/ExternalEngine' examples: default: $ref: '#/components/examples/externalEngine-updateExternalEngine.json' delete: operationId: apiExternalEngineDelete summary: Delete external engine tags: - External engine security: - OAuth2: - engine:write description: | Unregisters an external engine. responses: '200': description: Engine successfully deleted content: application/json: schema: $ref: '#/components/schemas/Ok' examples: default: $ref: '#/components/examples/externalEngine-deleteExternalEngine.json' /api/external-engine/{id}/analyse: parameters: - in: path name: id required: true description: The external engine id. schema: type: string example: eei_aTKImBJOnv6j post: operationId: apiExternalEngineAnalyse summary: Analyse with external engine tags: - External engine servers: - url: https://engine.lichess.ovh - url: http://localhost:{port} variables: port: default: '9666' security: [] description: | **Endpoint: `https://engine.lichess.ovh/api/external-engine/{id}/analyse`** Request analysis from an external engine. Response content is streamed as [newline delimited JSON](#description/streaming-with-nd-json). The properties are based on the [UCI specification](https://backscattering.de/chess/uci/#engine). Analysis stops when the client goes away, the requested limit is reached, or the provider goes away. requestBody: description: Engine credentials and analysis request. required: true content: application/json: schema: type: object properties: clientSecret: type: string example: ees_mdF2hK0hlKGSPeC6 work: $ref: '#/components/schemas/ExternalEngineWork' required: - clientSecret - work responses: '200': description: Stream of analysis output headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/x-ndjson: schema: type: object properties: time: type: integer description: Number of milliseconds the search has been going on minimum: 0 depth: type: integer description: Current search depth minimum: 0 nodes: type: integer description: Number of nodes visited so far minimum: 0 pvs: type: array description: Information about up to 5 pvs, with the primary pv at index 0. items: type: object properties: depth: type: integer description: Current search depth of the pv minimum: 0 cp: type: integer description: Evaluation in centi-pawns, from White's point of view mate: type: integer description: Evaluation in signed moves to mate, from White's point of view moves: type: array description: Variation in UCI notation items: type: string required: - depth - moves required: - time - depth - nodes - pvs examples: default: $ref: '#/components/examples/externalEngine-analyseWithExternalEngine.json' /api/external-engine/work: post: operationId: apiExternalEngineAcquire summary: Acquire analysis request tags: - External engine servers: - url: https://engine.lichess.ovh - url: http://localhost:{port} variables: port: default: '9666' security: [] description: | **Endpoint: `https://engine.lichess.ovh/api/external-engine/work`** Wait for an analysis requests to any of the external engines that have been registered with the given `secret`. Uses long polling. After acquiring a request, the provider should immediately [start streaming the results](#tag/external-engine/POST/api/external-engine/work/{id}). requestBody: description: Provider credentials. required: true content: application/json: schema: type: object properties: providerSecret: type: string example: Dee3uwieZei9ahpaici9bee2yahsai0K required: - providerSecret responses: '200': description: Analysis has been requested headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: type: object properties: id: type: string example: aingoohiJee2sius work: $ref: '#/components/schemas/ExternalEngineWork' engine: $ref: '#/components/schemas/ExternalEngine' required: - id - engine - work examples: default: $ref: '#/components/examples/externalEngine-acquireAnalysisRequest.json' '204': description: No pending analysis headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' /api/external-engine/work/{id}: parameters: - in: path name: id required: true schema: type: string example: aingoohiJee2sius post: operationId: apiExternalEngineSubmit summary: Answer analysis request tags: - External engine servers: - url: https://engine.lichess.ovh - url: http://localhost:{port} variables: port: default: '9666' security: [] description: | **Endpoint: `https://engine.lichess.ovh/api/external-engine/work/{id}`** Submit a stream of analysis as [UCI output](https://backscattering.de/chess/uci/#engine-info). * The engine should always be in `UCI_Chess960` mode. * `UCI_AnalyseMode` enabled if available. * It produces `info` with at least: - `depth` - `multipv` (between 1 and 5) - `score` - `nodes` - `time` - `pv` The server may close the connection at any time, indicating that the requester has gone away and analysis should be stopped. requestBody: description: Analysis results required: true content: text/plain: schema: type: string example: info multipv 1 depth 20 seldepth 30 time 1373 nodes 1494341 score cp 47 hashfull 594 nps 1088376 tbhits 0 pv d2d4 d7d5 c2c4 e7e6 b1c3 f8b4 c4d5 e6d5 g1f3 g8f6 c1g5 h7h6 g5f6 d8f6 d1b3 c7c5 e2e3 b8c6 d4c5 e8g8 f1d3 responses: '200': description: Thanks headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' /oauth: get: operationId: oauth summary: Request authorization code tags: - OAuth security: [] description: | OAuth2 authorization endpoint. Start the OAuth2 Authorization Code Flow with PKCE by securely generating two random strings unique to each authorization request: * `code_verifier` * `state` Store these in session storage. Make sure not to reveal `code_verifier` to eavesdroppers. Do not show it in URLs, do not abuse `state` to store it, do not send it over insecure connections. However it is fine if the user themselves can extract `code_verifier`, which will always be possible for fully client-side apps. Then send the user to this endpoint. They will be prompted to grant authorization and then be redirected back to the given `redirect_uri`. If the authorization failed, the following query string parameters will be appended to the redirection: * `error`, in particular with value `access_denied` if the user cancelled authorization * `error_description` to aid debugging * `state`, exactly as passed in the `state` parameter If the authorization succeeded, the following query string parameters will be appended to the redirection: * `code`, containing a fresh short-lived authorization code * `state`, exactly as passed in the `state` parameter Next, to defend against cross site request forgery, check that the returned `state` matches the `state` you originally generated. Finally, continue by using the authorization code to [obtain an access token](#tag/oauth/POST/api/token). parameters: - in: query name: response_type description: Must be `code`. required: true schema: type: string const: code - in: query name: client_id description: Arbitrary identifier that uniquely identifies your application. example: example.com required: true schema: type: string - in: query name: redirect_uri description: The absolute URL that the user should be redirected to with the authorization result. required: true schema: type: string - in: query name: code_challenge_method description: Must be `S256`. required: true schema: type: string const: S256 - in: query name: code_challenge description: Compute `BASE64URL(SHA256(code_verifier))`. required: true schema: type: string - in: query name: scope description: Space separated list of requested OAuth scopes, if any. schema: type: string - in: query name: username description: Hint that you want the user to log in with a specific Lichess username. schema: type: string - in: query name: state description: Arbitrary state that will be returned verbatim with the authorization result. schema: type: string responses: '200': description: Authorization prompt will be displayed to the user. /api/token: post: operationId: apiToken summary: Obtain access token tags: - OAuth security: [] description: | OAuth2 token endpoint. Exchanges an authorization code for an access token. requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: grant_type: type: string example: authorization_code const: authorization_code code: type: string example: liu_iS1uOZg99Htmo58ex2jKgYziUfzsnAl0 description: The authorization code that was sent in the `code` parameter to your `redirect_uri`. code_verifier: type: string example: Ry1rbGdOMTQtUjhOc0lmTnFKak1LTHV0NjlRMll2aXYtTThkQnlJRkRpaGwyQjh0ZDNFdzFPSG9KUlY4M1NrRzJ5ZHhUdjVZR08zLTZOT3dCN2xLfjZOXzU2WHk4SENP description: A `code_challenge` was used to request the authorization code. This must be the `code_verifier` it was derived from. redirect_uri: type: string example: http://example.com/ description: Must match the `redirect_uri` used to request the authorization code. client_id: type: string example: example.com description: Must match the `client_id` used to request the authorization code. responses: '200': description: Access token successfully obtained. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: properties: token_type: type: string example: Bearer access_token: type: string example: lio_EXAMPLE_TOKEN_REDACTED_FOR_SECRET_SCAN expires_in: type: integer example: 31536000 required: - token_type - access_token - expires_in '400': description: Failed to obtain access token. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/OAuthError' delete: operationId: apiTokenDelete summary: Revoke access token description: Revokes the access token sent as Bearer for this request. tags: - OAuth security: - OAuth2: [] responses: '204': description: Access token revoked. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' /api/token/test: post: operationId: tokenTest summary: Test multiple OAuth tokens description: | For up to 1000 OAuth tokens, returns their associated user ID and scopes, or `null` if the token is invalid. The method is `POST` so a longer list of tokens can be sent in the request body. tags: - OAuth security: [] requestBody: description: OAuth tokens separated by commas. Up to 1000. required: true content: text/plain: schema: type: string examples: body: $ref: '#/components/examples/oauth-testMultipleOauthTokens-request.txt' responses: '200': description: The representation of the OAuth tokens. content: application/json: schema: type: object additionalProperties: x-additionalPropertiesName: token oneOf: - type: object properties: userId: type: string scopes: type: string description: Comma-separated list of scopes. Empty string if the token has no scopes. expires: type: - integer - 'null' description: Unix-timestamp in milliseconds or null if the token never expires. - type: 'null' examples: default: $ref: '#/components/examples/oauth-testMultipleOauthTokens.json' /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' /standard: get: operationId: tablebaseStandard summary: Tablebase lookup description: | **Endpoint: ** Example: `curl http://tablebase.lichess.org/standard?fen=4k3/6KP/8/8/8/8/7p/8_w_-_-_0_1` tags: - Tablebase servers: - url: https://tablebase.lichess.org - url: http://localhost:{port} variables: port: default: '9000' security: [] parameters: - in: query name: fen description: X-FEN of the position. Underscores allowed. schema: type: string required: true - in: query name: dtc description: | When to query the tablebase for `dtc` values. The default is `auxiliary`, i.e., only when the position is not covered by one of the other tablebases. schema: type: string enum: - never - auxiliary - always required: false responses: '200': description: The tablebase information for the position in standard chess. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/TablebaseJson' examples: default: $ref: '#/components/examples/tablebase-lookupStandard.json' /atomic: get: operationId: tablebaseAtomic summary: Tablebase lookup for Atomic chess description: | **Endpoint: ** tags: - Tablebase servers: - url: https://tablebase.lichess.org - url: http://localhost:{port} variables: port: default: '9000' security: [] parameters: - in: query name: fen description: X-FEN of the position. Underscores allowed. schema: type: string required: true responses: '200': description: The tablebase information for the position in atomic chess. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/TablebaseJson' examples: default: $ref: '#/components/examples/tablebase-lookupAtomic.json' /antichess: get: operationId: antichessAtomic summary: Tablebase lookup for Antichess description: | **Endpoint: ** tags: - Tablebase servers: - url: https://tablebase.lichess.org - url: http://localhost:{port} variables: port: default: '9000' security: [] parameters: - in: query name: fen description: X-FEN of the position. Underscores allowed. schema: type: string required: true responses: '200': description: The tablebase information for the position in antichess. headers: Access-Control-Allow-Origin: schema: type: string default: '''*''' content: application/json: schema: $ref: '#/components/schemas/TablebaseJson' examples: default: $ref: '#/components/examples/tablebase-lookupAntichess.json' components: schemas: Flair: type: string description: See [available flair list and images](https://github.com/lichess-org/lila/tree/master/public/flair) Title: type: string enum: - GM - WGM - IM - WIM - FM - WFM - NM - CM - WCM - WNM - LM - BOT description: only appears if the user is a titled player or a bot user Patron: type: boolean deprecated: true description: | Use patronColor value instead to determine if player is a patron. PatronColor: type: integer description: | 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-colors.scss). The presence of this field indicates the player is an active Patron. minimum: 1 maximum: 10 TopUser: type: object properties: id: type: string username: type: string perfs: type: object additionalProperties: type: object properties: rating: type: integer progress: type: integer required: - rating - progress title: $ref: '#/components/schemas/Title' patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' online: type: boolean required: - id - username PerfTop10: type: array minItems: 10 maxItems: 10 items: $ref: '#/components/schemas/TopUser' Top10s: type: object properties: bullet: $ref: '#/components/schemas/PerfTop10' blitz: $ref: '#/components/schemas/PerfTop10' rapid: $ref: '#/components/schemas/PerfTop10' classical: $ref: '#/components/schemas/PerfTop10' ultraBullet: $ref: '#/components/schemas/PerfTop10' crazyhouse: $ref: '#/components/schemas/PerfTop10' chess960: $ref: '#/components/schemas/PerfTop10' kingOfTheHill: $ref: '#/components/schemas/PerfTop10' threeCheck: $ref: '#/components/schemas/PerfTop10' antichess: $ref: '#/components/schemas/PerfTop10' atomic: $ref: '#/components/schemas/PerfTop10' horde: $ref: '#/components/schemas/PerfTop10' racingKings: $ref: '#/components/schemas/PerfTop10' required: - bullet - blitz - rapid - classical - ultraBullet - crazyhouse - chess960 - kingOfTheHill - threeCheck - antichess - atomic - horde - racingKings Leaderboard: type: object properties: users: type: array items: $ref: '#/components/schemas/TopUser' required: - users Perf: type: object properties: games: type: integer rating: type: integer rd: type: integer description: rating deviation prog: type: integer prov: type: boolean description: only appears if a user's perf rating are [provisional](https://lichess.org/faq#provisional) rank: type: integer description: global lichess ranking, only appears for recently active players required: - games - rating - rd - prog PuzzleModePerf: type: object properties: runs: type: integer score: type: integer required: - runs - score Perfs: type: object properties: chess960: $ref: '#/components/schemas/Perf' atomic: $ref: '#/components/schemas/Perf' racingKings: $ref: '#/components/schemas/Perf' ultraBullet: $ref: '#/components/schemas/Perf' blitz: $ref: '#/components/schemas/Perf' kingOfTheHill: $ref: '#/components/schemas/Perf' threeCheck: $ref: '#/components/schemas/Perf' antichess: $ref: '#/components/schemas/Perf' crazyhouse: $ref: '#/components/schemas/Perf' bullet: $ref: '#/components/schemas/Perf' correspondence: $ref: '#/components/schemas/Perf' horde: $ref: '#/components/schemas/Perf' puzzle: $ref: '#/components/schemas/Perf' classical: $ref: '#/components/schemas/Perf' rapid: $ref: '#/components/schemas/Perf' storm: $ref: '#/components/schemas/PuzzleModePerf' racer: $ref: '#/components/schemas/PuzzleModePerf' streak: $ref: '#/components/schemas/PuzzleModePerf' Profile: type: object properties: flag: type: string example: EC location: type: string bio: type: string example: Free bugs! realName: type: string example: Thibault Duplessis fideRating: type: integer example: 1500 description: only appears if a user has set them uscfRating: type: integer example: 1500 description: only appears if a user has set them ecfRating: type: integer example: 1500 description: only appears if a user has set them cfcRating: type: integer example: 1500 description: only appears if a user has set them rcfRating: type: integer example: 1500 description: only appears if a user has set them dsbRating: type: integer example: 1500 description: only appears if a user has set them links: type: string example: "github.com/ornicar\r\nmas.to/@thibault" PlayTime: type: object properties: total: type: integer tv: type: integer human: type: integer required: - total - tv User: type: object properties: id: type: string username: type: string perfs: $ref: '#/components/schemas/Perfs' title: $ref: '#/components/schemas/Title' flair: $ref: '#/components/schemas/Flair' createdAt: type: integer format: int64 disabled: type: boolean description: only appears if a user's account is closed tosViolation: type: boolean description: only appears if a user's account is marked for the violation of [Lichess TOS](https://lichess.org/terms-of-service) profile: $ref: '#/components/schemas/Profile' seenAt: type: integer format: int64 playTime: $ref: '#/components/schemas/PlayTime' patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' verified: type: boolean required: - id - username Count: type: object properties: all: type: integer rated: type: integer ai: type: integer draw: type: integer drawH: type: integer loss: type: integer lossH: type: integer win: type: integer winH: type: integer bookmark: type: integer playing: type: integer import: type: integer me: type: integer required: - all - rated - draw - loss - win - bookmark - playing - import - me UserStreamer: type: object properties: twitch: type: object properties: channel: type: string format: uri example: https://www.twitch.tv/lichessdotorg youtube: type: object properties: channel: type: string format: uri example: https://www.youtube.com/c/LichessDotOrg UserExtended: allOf: - $ref: '#/components/schemas/User' - type: object properties: url: type: string format: uri playing: type: string format: uri count: $ref: '#/components/schemas/Count' streaming: type: boolean streamer: $ref: '#/components/schemas/UserStreamer' followable: type: boolean description: only appears if the request is [authenticated with OAuth2](#description/authentication) following: type: boolean description: only appears if the request is [authenticated with OAuth2](#description/authentication) blocking: type: boolean description: only appears if the request is [authenticated with OAuth2](#description/authentication) fideId: type: number required: - url RatingHistoryEntry: type: object properties: name: type: string points: type: array items: type: array description: '[year, month, day, rating]' items: type: integer minItems: 4 maxItems: 4 example: name: Bullet points: - - 2011 - 0 - 8 - 1472 - - 2011 - 0 - 9 - 1332 - - 2011 - 8 - 12 - 1314 RatingHistory: type: array items: $ref: '#/components/schemas/RatingHistoryEntry' example: - name: Bullet points: - - 2011 - 0 - 8 - 1472 - - 2011 - 0 - 9 - 1332 - - 2011 - 8 - 12 - 1314 - name: Blitz points: - - 2011 - 7 - 29 - 1332 PerfType: type: string enum: - ultraBullet - bullet - blitz - rapid - classical - correspondence - chess960 - crazyhouse - antichess - atomic - horde - kingOfTheHill - racingKings - threeCheck LightUser: type: object properties: id: type: string name: type: string flair: $ref: '#/components/schemas/Flair' title: $ref: '#/components/schemas/Title' patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' required: - id - name PerfStat: type: object properties: user: type: object properties: name: type: string required: - name perf: type: object properties: glicko: type: object properties: rating: type: number deviation: type: number provisional: type: boolean nb: type: integer progress: type: integer rank: type: - integer - 'null' percentile: type: number stat: type: object properties: highest: type: object properties: int: type: integer at: type: string format: date-time gameId: type: string required: - int - at - gameId lowest: type: object properties: int: type: integer at: type: string format: date-time gameId: type: string required: - int - at - gameId bestWins: type: object properties: results: type: array items: type: object properties: opRating: type: integer opId: $ref: '#/components/schemas/LightUser' at: type: string format: date-time gameId: type: string required: - opRating - opId - at - gameId required: - results worstLosses: type: object properties: results: type: array items: type: object properties: opRating: type: integer opId: $ref: '#/components/schemas/LightUser' at: type: string format: date-time gameId: type: string required: - opRating - opId - at - gameId required: - results count: type: object properties: all: type: integer rated: type: integer win: type: integer loss: type: integer draw: type: integer tour: type: integer berserk: type: integer opAvg: type: number seconds: type: integer disconnects: type: integer required: - all - rated - win - loss - draw - tour - berserk - opAvg - seconds - disconnects resultStreak: type: object properties: win: type: object properties: cur: type: object properties: v: type: integer from: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId to: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId required: - v max: type: object properties: v: type: integer from: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId to: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId required: - v required: - cur - max loss: type: object properties: cur: type: object properties: v: type: integer from: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId to: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId required: - v max: type: object properties: v: type: integer from: type: object properties: at: type: string gameId: type: string required: - at - gameId to: type: object properties: at: type: string gameId: type: string required: - at - gameId required: - v required: - cur - max required: - win - loss playStreak: type: object properties: nb: type: object properties: cur: type: object properties: v: type: integer required: - v max: type: object properties: v: type: integer from: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId to: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId required: - v required: - cur - max time: type: object properties: cur: type: object properties: v: type: integer required: - v max: type: object properties: v: type: integer from: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId to: type: object properties: at: type: string format: date-time gameId: type: string required: - at - gameId required: - v required: - cur - max lastDate: type: string format: date-time required: - nb - time required: - bestWins - worstLosses - count - resultStreak - playStreak required: - user - perf - rank - percentile - stat UserActivityScore: type: object properties: win: type: integer loss: type: integer draw: type: integer rp: type: object properties: before: type: integer after: type: integer required: - before - after required: - win - loss - draw - rp GameColor: type: string enum: - white - black VariantKey: type: string enum: - standard - chess960 - crazyhouse - antichess - atomic - horde - kingOfTheHill - racingKings - threeCheck - fromPosition example: standard default: standard UserActivityCorrespondenceGame: type: object properties: id: type: string color: $ref: '#/components/schemas/GameColor' url: type: string format: uri variant: $ref: '#/components/schemas/VariantKey' speed: type: string const: correspondence perf: type: string const: correspondence rated: type: boolean opponent: oneOf: - type: object required: - aiLevel properties: aiLevel: type: integer - type: object required: - user - rating properties: user: type: string rating: type: integer required: - id - color - url - opponent UserActivityFollowList: type: object properties: ids: type: array items: type: string nb: type: integer required: - ids UserActivity: type: object properties: interval: type: object properties: start: type: integer end: type: integer required: - start - end games: type: object properties: chess960: $ref: '#/components/schemas/UserActivityScore' atomic: $ref: '#/components/schemas/UserActivityScore' racingKings: $ref: '#/components/schemas/UserActivityScore' ultraBullet: $ref: '#/components/schemas/UserActivityScore' blitz: $ref: '#/components/schemas/UserActivityScore' kingOfTheHill: $ref: '#/components/schemas/UserActivityScore' bullet: $ref: '#/components/schemas/UserActivityScore' correspondence: $ref: '#/components/schemas/UserActivityScore' horde: $ref: '#/components/schemas/UserActivityScore' puzzle: $ref: '#/components/schemas/UserActivityScore' classical: $ref: '#/components/schemas/UserActivityScore' rapid: $ref: '#/components/schemas/UserActivityScore' puzzles: type: object properties: score: $ref: '#/components/schemas/UserActivityScore' storm: $ref: '#/components/schemas/PuzzleModePerf' racer: $ref: '#/components/schemas/PuzzleModePerf' streak: $ref: '#/components/schemas/PuzzleModePerf' tournaments: type: object properties: nb: type: integer best: type: array items: type: object required: - tournament - nbGames - score - rank - rankPercent properties: tournament: type: object required: - id - name properties: id: type: string name: type: string nbGames: type: integer score: type: integer rank: type: integer rankPercent: type: integer practice: type: array items: type: object required: - url - name - nbPositions properties: url: type: string name: type: string nbPositions: type: integer simuls: type: array items: type: string correspondenceMoves: type: object required: - nb - games properties: nb: type: integer games: type: array items: $ref: '#/components/schemas/UserActivityCorrespondenceGame' correspondenceEnds: type: object properties: correspondence: type: object properties: score: $ref: '#/components/schemas/UserActivityScore' games: type: array items: $ref: '#/components/schemas/UserActivityCorrespondenceGame' required: - score - games required: - correspondence follows: type: object properties: in: $ref: '#/components/schemas/UserActivityFollowList' out: $ref: '#/components/schemas/UserActivityFollowList' studies: type: array items: type: object properties: id: type: string name: type: string required: - id - name teams: type: array items: type: object required: - url - name properties: url: type: string format: uri name: type: string flair: $ref: '#/components/schemas/Flair' posts: type: array items: type: object required: - topicUrl - topicName - posts properties: topicUrl: type: string topicName: type: string posts: type: array items: type: object required: - url - text properties: url: type: string text: type: string patron: type: object required: - months properties: months: type: integer stream: type: boolean required: - interval PuzzleAndGame: type: object properties: game: type: object properties: clock: type: string id: type: string perf: type: object properties: key: $ref: '#/components/schemas/PerfType' name: type: string required: - key - name pgn: type: string players: type: array items: type: object properties: color: $ref: '#/components/schemas/GameColor' flair: $ref: '#/components/schemas/Flair' id: type: string name: type: string patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' rating: type: integer title: $ref: '#/components/schemas/Title' required: - color - id - name - rating minItems: 2 maxItems: 2 rated: type: boolean required: - clock - id - perf - pgn - players - rated additionalProperties: false puzzle: type: object properties: id: type: string initialPly: type: integer plays: type: integer rating: type: integer fen: type: string lastMove: type: string description: In UCI format, e.g. "e2e4" solution: type: array items: type: string themes: type: array items: type: string required: - id - initialPly - plays - rating - solution - themes additionalProperties: false required: - game - puzzle PuzzleGlicko: type: object properties: rating: type: number deviation: type: number provisional: type: boolean PuzzleBatchSelect: type: object properties: puzzles: type: array items: $ref: '#/components/schemas/PuzzleAndGame' glicko: $ref: '#/components/schemas/PuzzleGlicko' PuzzleBatchSolveRequest: type: object properties: solutions: type: array items: type: object properties: id: type: string win: type: boolean rated: type: boolean PuzzleBatchSolveResponse: type: object properties: puzzles: type: array items: $ref: '#/components/schemas/PuzzleAndGame' glicko: $ref: '#/components/schemas/PuzzleGlicko' rounds: type: array items: type: object properties: id: type: string win: type: boolean ratingDiff: type: integer PuzzleActivity: type: object properties: date: type: integer puzzle: type: object properties: fen: type: string id: type: string lastMove: type: string plays: type: integer rating: type: integer solution: type: array items: type: string themes: type: array items: type: string required: - fen - id - lastMove - plays - rating - solution - themes win: type: boolean required: - date - puzzle - win PuzzleReplay: type: object properties: replay: type: object properties: days: type: integer theme: type: string nb: type: integer remaining: type: array items: type: string required: - days - theme - nb - remaining angle: type: object properties: key: type: string name: type: string desc: type: string required: - key - name - desc required: - replay - angle PuzzlePerformance: type: object properties: firstWins: type: integer nb: type: integer performance: type: integer puzzleRatingAvg: type: integer replayWins: type: integer required: - firstWins - nb - performance - puzzleRatingAvg - replayWins PuzzleDashboard: type: object properties: days: type: integer global: $ref: '#/components/schemas/PuzzlePerformance' themes: type: object additionalProperties: type: object properties: results: $ref: '#/components/schemas/PuzzlePerformance' theme: type: string required: - results - theme required: - days - global - themes PuzzleStormDashboard: type: object properties: days: type: array items: type: object properties: _id: type: string combo: type: integer errors: type: integer highest: type: integer moves: type: integer runs: type: integer score: type: integer time: type: integer required: - _id - combo - errors - highest - moves - runs - score - time high: type: object properties: allTime: type: integer day: type: integer month: type: integer week: type: integer required: - allTime - day - month - week required: - days - high PuzzleRacer: type: object properties: id: type: string url: type: string format: uri required: - id - url PuzzleRaceResults: type: object properties: id: type: string description: Unique identifier of the puzzle race owner: type: string description: Owner of the puzzle race players: type: array description: List of players participating in the race items: type: object properties: name: type: string description: Player username score: type: integer description: Player's current score in the race id: type: string description: User ID. Missing if player is anonymous. flair: type: string description: User's flair icon patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' required: - name - score puzzles: type: array description: List of puzzles in the race items: type: object properties: id: type: string description: Puzzle ID fen: type: string description: X-FEN position of the puzzle line: type: string description: Solution moves sequence rating: type: integer description: Puzzle Glicko2 rating required: - id - fen - line - rating finishesAt: type: integer description: Timestamp in milliseconds when the race finishes startsAt: type: integer description: Timestamp in milliseconds when the race started required: - id - owner - players - puzzles - finishesAt - startsAt NotFound: properties: error: type: string required: - error example: error: Not found. UserPreferences: type: object properties: dark: type: boolean transp: type: boolean bgImg: type: string format: uri is3d: type: boolean theme: type: string enum: - blue - blue2 - blue3 - blue-marble - canvas - wood - wood2 - wood3 - wood4 - maple - maple2 - brown - leather - green - marble - green-plastic - grey - metal - olive - newspaper - purple - purple-diag - pink - ic pieceSet: type: string enum: - cburnett - merida - alpha - pirouetti - chessnut - chess7 - reillycraig - companion - riohacha - kosal - leipzig - fantasy - spatial - california - pixel - maestro - fresca - cardinal - gioco - tatiana - staunty - governor - dubrovny - icpieces - shapes - letter theme3d: type: string enum: - Black-White-Aluminium - Brushed-Aluminium - China-Blue - China-Green - China-Grey - China-Scarlet - Classic-Blue - Gold-Silver - Light-Wood - Power-Coated - Rosewood - Marble - Wax - Jade - Woodi pieceSet3d: type: string enum: - Basic - Wood - Metal - RedVBlue - ModernJade - ModernWood - Glass - Trimmed - Experimental - Staunton - CubesAndPi soundSet: type: string enum: - silent - standard - piano - nes - sfx - futuristic - robot - music - speech blindfold: type: integer autoQueen: type: integer description: 1 = Never, 2 = When premoving, 3 = Always autoThreefold: type: integer description: 0 = Never, 2 = When time remaining < 30 seconds, 3 = Always takeback: type: integer description: 1 = Never, 2 = In casual games only, 3 = Always moretime: type: integer description: 1 = Never, 2 = In casual games only, 3 = Always clockTenths: type: integer description: 0 = Never, 1 = When remaining time less than 10 seconds, 2 = Always clockBar: type: boolean clockSound: type: boolean premove: type: boolean animation: type: integer description: 0 = None, 1 = Fast, 2 = Normal, 3 = Slow pieceNotation: type: integer description: 0 = Chess piece symbol, 1 = KQRBN Letter captured: type: boolean follow: type: boolean highlight: type: boolean destination: type: boolean coords: type: integer description: 0 = No, 1 = Inside the board, 2 = Outside the board, 3 = All squares replay: type: integer challenge: type: integer message: type: integer submitMove: type: integer confirmResign: type: integer description: 1 = Confirm resignation and draw offers, 0 = Do not confirm insightShare: type: integer keyboardMove: type: integer description: 1 = input moves with the keyboard voiceMove: type: boolean zen: type: integer description: 0 = No, 1 = yes, 2 = in-game only ratings: type: integer description: 0 = Hide ratings, 1 = Show ratings, 2 = Show ratings except in-game moveEvent: type: integer rookCastle: type: integer description: 0 = Move king two squares, 1 = Move king onto rook flairs: type: boolean description: Show player flairs sayGG: type: integer enum: - 0 - 1 - 2 description: 0 = No, 1 = When losing, 2 = When losing or drawing Ok: properties: ok: type: boolean required: - ok TimelineEntryFollow: type: object properties: type: type: string enum: - follow date: type: number data: type: object properties: u1: type: string u2: type: string required: - u1 - u2 required: - type - date - data TimelineEntryTeamJoin: type: object properties: type: type: string enum: - team-join date: type: number data: type: object properties: userId: type: string teamId: type: string required: - userId - teamId required: - type - date - data TimelineEntryTeamCreate: type: object properties: type: type: string enum: - team-create date: type: number data: type: object properties: userId: type: string teamId: type: string required: - userId - teamId required: - type - date - data TimelineEntryForumPost: type: object properties: type: type: string enum: - forum-post date: type: number data: type: object properties: userId: type: string topicId: type: string topicName: type: string postId: type: string required: - userId - topicId - topicName - postId required: - type - date - data TimelineEntryBlogPost: type: object properties: type: type: string enum: - blog-post date: type: number data: type: object properties: id: type: string slug: type: string title: type: string required: - id - slug - title required: - type - date - data TimelineEntryUblogPost: type: object properties: type: type: string enum: - ublog-post date: type: number data: type: object properties: userId: type: string id: type: string slug: type: string title: type: string required: - userId - id - slug - title required: - type - date - data TimelineEntryTourJoin: type: object properties: type: type: string enum: - tour-join date: type: number data: type: object properties: userId: type: string tourId: type: string tourName: type: string required: - userId - tourId - tourName required: - type - date - data TimelineEntryGameEnd: type: object properties: type: type: string enum: - game-end date: type: number data: type: object properties: fullId: type: string opponent: type: string win: type: boolean perf: $ref: '#/components/schemas/PerfType' required: - fullId - opponent - win - perf required: - type - date - data TimelineEntrySimul: type: object properties: type: type: string enum: - simul-create - simul-join date: type: number data: type: object properties: userId: type: string simulId: type: string simulName: type: string required: - userId - simulId - simulName required: - type - date - data TimelineEntryStudyLike: type: object properties: type: type: string enum: - study-like date: type: number data: type: object properties: userId: type: string studyId: type: string studyName: type: string required: - userId - studyId - studyName required: - type - date - data TimelineEntryPlanStart: type: object properties: type: type: string enum: - plan-start date: type: number data: type: object properties: userId: type: string required: - userId required: - type - date - data TimelineEntryPlanRenew: type: object properties: type: type: string enum: - plan-renew date: type: number data: type: object properties: userId: type: string months: type: number required: - userId - months required: - type - date - data TimelineEntryUblogPostLike: type: object properties: type: type: string enum: - ublog-post-like date: type: number data: type: object properties: userId: type: string id: type: string title: type: string required: - userId - id - title required: - type - date - data TimelineEntryStreamStart: type: object properties: type: type: string enum: - stream-start date: type: number data: type: object properties: id: type: string title: type: string required: - id required: - type - date - data Timeline: type: object properties: entries: type: array items: anyOf: - $ref: '#/components/schemas/TimelineEntryFollow' - $ref: '#/components/schemas/TimelineEntryTeamJoin' - $ref: '#/components/schemas/TimelineEntryTeamCreate' - $ref: '#/components/schemas/TimelineEntryForumPost' - $ref: '#/components/schemas/TimelineEntryBlogPost' - $ref: '#/components/schemas/TimelineEntryUblogPost' - $ref: '#/components/schemas/TimelineEntryTourJoin' - $ref: '#/components/schemas/TimelineEntryGameEnd' - $ref: '#/components/schemas/TimelineEntrySimul' - $ref: '#/components/schemas/TimelineEntryStudyLike' - $ref: '#/components/schemas/TimelineEntryPlanStart' - $ref: '#/components/schemas/TimelineEntryPlanRenew' - $ref: '#/components/schemas/TimelineEntryUblogPostLike' - $ref: '#/components/schemas/TimelineEntryStreamStart' discriminator: propertyName: type mapping: follow: '#/components/schemas/TimelineEntryFollow' team-join: '#/components/schemas/TimelineEntryTeamJoin' team-create: '#/components/schemas/TimelineEntryTeamCreate' forum-post: '#/components/schemas/TimelineEntryForumPost' blog-post: '#/components/schemas/TimelineEntryBlogPost' ublog-post: '#/components/schemas/TimelineEntryUblogPost' tour-join: '#/components/schemas/TimelineEntryTourJoin' game-end: '#/components/schemas/TimelineEntryGameEnd' simul-create: '#/components/schemas/TimelineEntrySimul' simul-join: '#/components/schemas/TimelineEntrySimul' study-like: '#/components/schemas/TimelineEntryStudyLike' plan-start: '#/components/schemas/TimelineEntryPlanStart' plan-renew: '#/components/schemas/TimelineEntryPlanRenew' ublog-post-like: '#/components/schemas/TimelineEntryUblogPostLike' stream-start: '#/components/schemas/TimelineEntryStreamStart' required: - type users: type: object additionalProperties: type: object properties: id: type: string name: type: string title: $ref: '#/components/schemas/Title' flair: $ref: '#/components/schemas/Flair' patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' required: - id - name required: - entries - users example: entries: - type: follow data: u1: neio u2: chess-network date: 1644232201429 - type: team-join data: userId: neio teamId: coders date: 1644232201429 - type: team-create data: userId: neio teamId: coders date: 1644232201429 - type: forum-post data: userId: neio topicId: AAAAAAAN topicName: World's Tallest LEGO Tower Completed in City Square postId: AAAAAAAL date: 1644232201429 - type: ublog-post data: userId: neio id: og5pkt1c slug: gotta-go-fast title: Gotta Go Fast date: 1644232201429 - type: tour-join data: userId: chess-network tourId: Z24oxqgU tourName: Daily Blitz Arena date: 1644232201429 - type: game-end data: fullId: iGkAXUdEfLZC perf: correspondence opponent: chess-network win: false date: 1644232201429 - type: simul-create data: userId: neio simulId: m3c0Wvu3 simulName: RCA 1st Jan simul date: 1644232201429 - type: simul-join data: userId: chess-network simulId: m3c0Wvu3 simulName: RCA 1st Jan simul date: 1644232201429 - type: study-like data: userId: neio studyId: ma5AvZ7o studyName: Free wins | Danish Gambit date: 1644232201429 - type: plan-start data: userId: chess-network date: 1644232201429 - type: plan-renew data: userId: chess-network months: 64 date: 1644232201429 - type: blog-post data: id: ZUviXRIAACYAVtMm slug: lichess-development-made-easy-with-gitpod title: Lichess Development Made Easy With Gitpod date: 1644232201429 - type: ublog-post-like data: userId: neio id: ZUviXRIAACYAVtMm title: Lichess Development Made Easy With Gitpod date: 1644232201429 - type: stream-start data: id: chess-network title: Streamers Battle December !team | lichess.org date: 1644232201429 users: neio: id: neio name: Neio title: NM chess-network: id: chess-network name: Chess-Network title: NM patron: true GamePgn: type: string example: | [Event "Rated Blitz game"] [Site "https://lichess.org/fY44h4OY"] [Date "2018.03.29"] [Round "-"] [White "pveldman"] [Black "thibault"] [Result "1-0"] [UTCDate "2018.03.29"] [UTCTime "01:38:15"] [WhiteElo "1610"] [BlackElo "1601"] [WhiteRatingDiff "+10"] [BlackRatingDiff "-10"] [Variant "Standard"] [TimeControl "180+0"] [ECO "C62"] [Opening "Ruy Lopez: Steinitz Defense"] [Termination "Normal"] 1. e4 { [%clk 0:03:00] } e5 { [%clk 0:03:00] } 2. Nf3 { [%clk 0:02:59] } Nc6 { [%clk 0:02:58] } 3. Bb5 { [%clk 0:02:57] } d6 { [%clk 0:02:55] } 4. h3 { [%clk 0:02:54] } Nf6 { [%clk 0:02:52] } 5. Bxc6+ { [%clk 0:02:52] } bxc6 { [%clk 0:02:49] } 6. d3 { [%clk 0:02:51] } Be7 { [%clk 0:02:46] } 7. O-O { [%clk 0:02:47] } O-O { [%clk 0:02:45] } 8. b3 { [%clk 0:02:45] } d5 { [%clk 0:02:45] } 9. exd5 { [%clk 0:02:33] } cxd5 { [%clk 0:02:40] } 10. Nxe5 { [%clk 0:02:31] } Qd6 { [%clk 0:02:38] } 1-0 Speed: type: string enum: - ultraBullet - bullet - blitz - rapid - classical - correspondence GameStatusName: type: string enum: - created - started - aborted - mate - resign - stalemate - timeout - draw - outoftime - cheat - noStart - unknownFinish - insufficientMaterialClaim - variantEnd GamePlayerUser: type: object properties: user: $ref: '#/components/schemas/LightUser' rating: type: integer ratingDiff: type: integer name: type: string provisional: type: boolean aiLevel: type: integer analysis: type: object properties: inaccuracy: type: integer mistake: type: integer blunder: type: integer acpl: type: integer accuracy: type: integer required: - inaccuracy - mistake - blunder - acpl team: type: string required: - user - rating GamePlayers: type: object properties: white: $ref: '#/components/schemas/GamePlayerUser' black: $ref: '#/components/schemas/GamePlayerUser' required: - white - black GameOpening: type: object properties: eco: type: string name: type: string ply: type: integer required: - eco - name - ply GameMoveAnalysis: type: object properties: eval: type: integer description: Evaluation in centipawns mate: type: integer description: Number of moves until forced mate best: type: string example: c2c3 description: Best move in UCI notation (only if played move was inaccurate) variation: type: string example: c3 Nc6 d4 Qb6 Be2 Nge7 Na3 cxd4 cxd4 Nf5 description: Best variation in SAN notation (only if played move was inaccurate) judgment: type: object description: Judgment annotation (only if played move was inaccurate) properties: name: type: string enum: - Inaccuracy - Mistake - Blunder comment: type: string example: Blunder. Nxg6 was best. GameJson: type: object properties: id: type: string rated: type: boolean variant: $ref: '#/components/schemas/VariantKey' speed: $ref: '#/components/schemas/Speed' perf: type: string createdAt: type: integer format: int64 lastMoveAt: type: integer format: int64 status: $ref: '#/components/schemas/GameStatusName' source: type: string players: $ref: '#/components/schemas/GamePlayers' initialFen: type: string winner: $ref: '#/components/schemas/GameColor' opening: $ref: '#/components/schemas/GameOpening' moves: type: string pgn: type: string daysPerTurn: type: integer analysis: type: array items: $ref: '#/components/schemas/GameMoveAnalysis' tournament: type: string swiss: type: string clock: type: object properties: initial: type: integer increment: type: integer totalTime: type: integer required: - initial - increment - totalTime clocks: type: array items: type: integer division: type: object properties: middle: type: integer description: Ply at which the middlegame begins end: type: integer description: Ply at which the endgame begins required: [] required: - id - rated - variant - speed - perf - createdAt - lastMoveAt - status - players SpectatorGameChat: type: array items: type: object properties: text: type: string user: type: string required: - text - user example: - text: e4 here we go user: Toby - text: Woof! user: AnnoyingDog GameStatusId: type: integer enum: - 10 - 20 - 25 - 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 38 - 39 - 60 GameStreamGame: type: object properties: id: type: string rated: type: boolean variant: $ref: '#/components/schemas/VariantKey' speed: $ref: '#/components/schemas/Speed' perf: $ref: '#/components/schemas/PerfType' createdAt: type: integer status: $ref: '#/components/schemas/GameStatusId' statusName: $ref: '#/components/schemas/GameStatusName' clock: type: object properties: initial: type: integer increment: type: integer totalTime: type: integer players: type: object properties: white: type: object properties: userId: type: string rating: type: integer black: type: object properties: userId: type: string rating: type: integer winner: $ref: '#/components/schemas/GameColor' required: - id example: id: A5fcMO3k rated: true variant: standard speed: bullet perf: bullet createdAt: 1525789431889 status: 20 statusName: started clock: initial: 60 increment: 0 totalTime: 60 players: white: userId: kastorcito rating: 2617 black: userId: er_or rating: 2288 GameStream: type: array items: $ref: '#/components/schemas/GameStreamGame' example: - id: A5fcMO3k rated: true variant: standard speed: bullet perf: bullet createdAt: 1525789431889 status: 20 statusName: started clock: initial: 60 increment: 0 totalTime: 60 players: white: userId: kastorcito rating: 2617 black: userId: er_or rating: 2288 - id: A5fcMO3k rated: true variant: standard speed: bullet perf: bullet createdAt: 1525789431889 status: 31 statusName: resign clock: initial: 60 increment: 0 totalTime: 60 players: white: userId: kastorcito rating: 2617 black: userId: er_or rating: 2288 winner: white GameSource: type: string enum: - lobby - friend - ai - api - tournament - position - import - importlive - simul - relay - pool - arena - swiss Variant: type: object properties: key: $ref: '#/components/schemas/VariantKey' name: type: string short: type: string required: - key - name GameStatus: type: object properties: id: $ref: '#/components/schemas/GameStatusId' name: $ref: '#/components/schemas/GameStatusName' required: - id - name MoveStreamEntry: oneOf: - type: object properties: id: type: string variant: $ref: '#/components/schemas/Variant' speed: $ref: '#/components/schemas/Speed' perf: $ref: '#/components/schemas/PerfType' rated: type: boolean initialFen: type: string fen: type: string player: $ref: '#/components/schemas/GameColor' turns: type: integer startedAtTurn: type: integer source: $ref: '#/components/schemas/GameSource' status: $ref: '#/components/schemas/GameStatus' createdAt: type: integer lastMove: type: string players: $ref: '#/components/schemas/GamePlayers' required: - id - type: object properties: fen: type: string lm: type: string wc: type: integer bc: type: integer required: - fen - wc - bc MoveStream: type: array items: $ref: '#/components/schemas/MoveStreamEntry' example: - id: LuGQwhBb variant: key: standard name: Standard short: Std speed: blitz perf: blitz rated: true initialFen: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 fen: rnbqkb1r/1p1ppppp/p6n/2p4Q/8/1P2P3/P1PP1PPP/RNB1KBNR w KQkq - 0 4 player: white turns: 6 startedAtTurn: 0 source: pool status: id: 20 name: started createdAt: 1620029815106 lastMove: c7c5 players: white: user: name: ARM-777777 title: GM id: arm-777777 rating: 3120 black: user: name: Flash_Marafon id: flash_marafon rating: 3015 - fen: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w wc: 180 bc: 180 - fen: rnbqkbnr/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b lm: e2e3 wc: 180 bc: 180 - fen: rnbqkb1r/pppppppp/7n/8/8/4P3/PPPP1PPP/RNBQKBNR w lm: g8h6 wc: 180 bc: 180 - fen: rnbqkb1r/pppppppp/7n/8/8/1P2P3/P1PP1PPP/RNBQKBNR b lm: b2b3 wc: 177 bc: 180 - fen: rnbqkb1r/1ppppppp/p6n/8/8/1P2P3/P1PP1PPP/RNBQKBNR w lm: a7a6 wc: 177 bc: 177 TvGame: type: object properties: user: $ref: '#/components/schemas/LightUser' rating: type: integer gameId: type: string color: $ref: '#/components/schemas/GameColor' required: - user - rating - gameId - color TvFeedFeatured: type: object title: featured properties: t: type: string description: | The type of message. A summary of the game is sent as the first message and when the featured game changes. Subsequent messages are just the X-FEN, last move, and clocks. const: featured d: type: object description: The data of the message title: featured properties: id: type: string description: The game ID orientation: $ref: '#/components/schemas/GameColor' players: type: array items: type: object properties: color: $ref: '#/components/schemas/GameColor' user: $ref: '#/components/schemas/LightUser' rating: type: integer seconds: type: integer description: The player's remaining time in seconds required: - color - rating - seconds - user minItems: 2 maxItems: 2 fen: type: string description: The X-FEN of the current position required: - id - orientation - players - fen required: - t - d TvFeedFen: type: object title: fen properties: t: type: string description: | The type of message. A summary of the game is sent as the first message and when the featured game changes. Subsequent messages are just the X-FEN, last move, and clocks. const: fen d: type: object description: The data of the message title: fen properties: fen: type: string description: The X-FEN of the current position lm: type: string description: | The last move in UCI format (King to rook for Chess960-compatible castling notation) wc: type: integer description: White's clock in seconds bc: type: integer description: Black's clock in seconds required: - fen - lm - wc - bc required: - t - d TvFeed: oneOf: - $ref: '#/components/schemas/TvFeedFeatured' - $ref: '#/components/schemas/TvFeedFen' Clock: type: object properties: limit: type: integer increment: type: integer required: - limit - increment ArenaStatus: type: integer description: | 10: created, 20: started, 30: finished enum: - 10 - 20 - 30 ArenaPerf: type: object properties: key: $ref: '#/components/schemas/PerfType' name: type: string example: Blitz position: type: integer example: 1 icon: type: string example: ) required: - key - name - position ArenaRatingObj: type: object properties: perf: $ref: '#/components/schemas/PerfType' rating: type: integer example: 1700 required: - rating ArenaPosition: oneOf: - type: object title: Thematic properties: eco: type: string example: C41 name: type: string example: Philidor Defense fen: type: string example: rnbqkbnr/ppp2ppp/3p4/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - url: type: string format: uri example: https://lichess.org/opening/Philidor_Defense required: - eco - name - fen - url - type: object title: Custom position properties: name: type: string const: Custom position fen: type: string example: rnbq1bnr/ppppkppp/8/4p3/4P3/8/PPPPKPPP/RNBQ1BNR w - - 2 3 required: - name - fen ArenaTournament: type: object properties: id: type: string createdBy: type: string system: type: string const: arena minutes: type: integer clock: $ref: '#/components/schemas/Clock' rated: type: boolean fullName: type: string nbPlayers: type: integer variant: $ref: '#/components/schemas/Variant' startsAt: type: integer format: int64 finishesAt: type: integer format: int64 status: $ref: '#/components/schemas/ArenaStatus' perf: $ref: '#/components/schemas/ArenaPerf' secondsToStart: type: integer hasMaxRating: type: boolean maxRating: $ref: '#/components/schemas/ArenaRatingObj' minRating: $ref: '#/components/schemas/ArenaRatingObj' minRatedGames: type: object properties: nb: type: integer botsAllowed: type: boolean minAccountAgeInDays: type: integer onlyTitled: type: boolean teamMember: type: string private: type: boolean position: $ref: '#/components/schemas/ArenaPosition' schedule: type: object properties: freq: type: string speed: type: string teamBattle: type: object properties: teams: type: array items: type: string nbLeaders: type: integer winner: $ref: '#/components/schemas/LightUser' required: - id - createdBy - system - minutes - clock - rated - fullName - nbPlayers - variant - startsAt - finishesAt - status - perf ArenaTournaments: type: object properties: created: type: array items: $ref: '#/components/schemas/ArenaTournament' started: type: array items: $ref: '#/components/schemas/ArenaTournament' finished: type: array items: $ref: '#/components/schemas/ArenaTournament' required: - created - started - finished FromPositionFEN: type: string description: Custom initial position (in X-FEN). Variant must be standard, fromPosition, or chess960 (if a valid 960 starting position), and the game cannot be rated. default: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 Verdict: type: object properties: condition: type: string verdict: type: string required: - condition - verdict Verdicts: type: object properties: accepted: type: boolean list: type: array items: $ref: '#/components/schemas/Verdict' required: - accepted - list ArenaSheet: type: object required: - scores properties: scores: type: string fire: type: boolean ArenaTournamentFull: type: object properties: id: type: string fullName: type: string rated: type: boolean spotlight: type: object properties: headline: type: string berserkable: type: boolean onlyTitled: type: boolean clock: $ref: '#/components/schemas/Clock' minutes: type: integer createdBy: type: string system: type: string secondsToStart: type: integer secondsToFinish: type: integer isFinished: type: boolean isRecentlyFinished: type: boolean pairingsClosed: type: boolean startsAt: type: string format: int64 nbPlayers: type: integer verdicts: $ref: '#/components/schemas/Verdicts' quote: type: object properties: text: type: string author: type: string description: The quote displayed on the tournament page greatPlayer: type: object properties: name: type: string url: type: string format: uri allowList: type: array items: type: string description: List of usernames allowed to join the tournament hasMaxRating: type: boolean maxRating: $ref: '#/components/schemas/ArenaRatingObj' minRating: $ref: '#/components/schemas/ArenaRatingObj' minRatedGames: type: object properties: nb: type: integer botsAllowed: type: boolean minAccountAgeInDays: type: integer perf: type: object properties: icon: type: string key: type: string name: type: string required: - icon - key - name schedule: type: object properties: freq: type: string speed: type: string required: - freq - speed description: type: string variant: type: string duels: type: array items: type: object properties: id: type: string p: type: array minItems: 2 maxItems: 2 items: type: object properties: 'n': type: string r: type: integer k: type: integer standing: type: object properties: page: type: integer players: type: array items: type: object properties: name: type: string title: $ref: '#/components/schemas/Title' patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' flair: $ref: '#/components/schemas/Flair' rank: type: integer rating: type: integer score: type: integer sheet: $ref: '#/components/schemas/ArenaSheet' featured: type: object properties: id: type: string fen: type: string orientation: type: string color: type: string lastMove: type: string white: type: object properties: name: type: string id: type: string rank: type: integer rating: type: integer black: type: object properties: name: type: string id: type: string rank: type: integer rating: type: integer c: type: object properties: white: type: integer description: white's clock in seconds black: type: integer description: black's clock in seconds podium: type: array items: type: object properties: name: type: string title: $ref: '#/components/schemas/Title' patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' flair: $ref: '#/components/schemas/Flair' rank: type: integer rating: type: integer score: type: integer nb: type: object properties: game: type: integer berserk: type: integer win: type: integer performance: type: integer stats: type: object properties: games: type: integer moves: type: integer whiteWins: type: integer blackWins: type: integer draws: type: integer berserks: type: integer averageRating: type: integer required: - games - moves - whiteWins - blackWins - draws - berserks - averageRating myUsername: type: string required: - id - fullName - clock - nbPlayers Error: type: object properties: error: type: string description: The cause of the error. required: - error example: error: This request is invalid because [...] ArenaTournamentPlayer: type: object properties: games: type: integer score: type: integer rank: type: integer performance: type: integer required: - games - score - rank example: games: 10 score: 14 rank: 30 performance: 1935 ArenaTournamentPlayed: type: object properties: tournament: $ref: '#/components/schemas/ArenaTournament' player: $ref: '#/components/schemas/ArenaTournamentPlayer' required: - tournament - player SwissFromPositionFEN: type: string description: Custom initial position (in X-FEN). Variant must be standard and the game cannot be rated. default: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 SwissStatus: type: string description: The current state of the swiss tournament enum: - created - started - finished SwissTournament: type: object properties: id: type: string createdBy: type: string startsAt: type: string name: type: string clock: type: object properties: limit: type: number increment: type: number required: - limit - increment variant: type: string round: type: number nbRounds: type: number nbPlayers: type: number nbOngoing: type: number status: $ref: '#/components/schemas/SwissStatus' stats: type: object properties: games: type: number whiteWins: type: number blackWins: type: number draws: type: number byes: type: number absences: type: number averageRating: type: number required: - games - whiteWins - blackWins - draws - byes - absences - averageRating rated: type: boolean verdicts: $ref: '#/components/schemas/Verdicts' nextRound: type: object properties: at: type: string format: date-time in: type: integer description: The number of seconds until the next round starts. required: - id - createdBy - startsAt - name - clock - variant - round - nbRounds - nbPlayers - nbOngoing - status - rated - verdicts SwissUnauthorisedEdit: properties: error: type: string example: error: This user cannot edit this swiss StudyPgn: type: string example: | [Event "All about the Sicilian Defense: Dragon Variation"] [Site "https://lichess.org/study/8c8bmUfy/qwnXMwVC"] [Result "*"] [UTCDate "2017.06.25"] [UTCTime "10:12:04"] [Variant "Standard"] [ECO "B76"] [Opening "Sicilian Defense: Dragon Variation, Yugoslav Attack, Panov Variation"] [Annotator "https://lichess.org/@/Francesco_Super"] { This chapter will go over the Dragon Variation, a very common variation used by Black and it is the most aggressive variation in the Sicilian defense. } 1. e4 c5 2. Nf3 { Simple developing move to control the d4 square } { [%csl Gd4,Gc5][%cal Gf3d4,Gc5d4] } 2... d6 { [%cal Gd6e5] } (2... e6 3. d4 cxd4 4. Nxd4 Nf6 5. e5 (5. Nc3 { [%cal Ge4e5] }) 5... Qa5+) 3. d4 { Whites want the exchange of pawns } { [%cal Gc5d4] } 3... cxd4 { [%cal Gf3d4] } 4. Nxd4 { Whites are now ahead in development but blacks still have the two central pawns whereas whites only one. } { [%csl Ge7,Gd6,Ge4] } 4... Nf6 { Blacks are now developing their knight and threatening the e4 pawn } { [%csl Ge4][%cal Gf6e4] } 5. Nc3 { The e4 pawn is now protected by the c3 knight } { [%csl Ge4,Bc3][%cal Rf6e4,Bc3e4] } 5... g6 { This is the DRAGON VARIATION. g6 allows the dark-squared bishop to develop and move to g7, controlling the long dark-squared diagonal } { [%csl Gd4] } 6. Be3 { [%cal Gd1d2,Gf2f3,Ge1c1,Gg2g4,Gh2h4,Gg4g5] } (6. Be2 Bg7 7. O-O Nc6 8. Be3 { [%cal Ge3d4] } (8. f3 Nxe4 { [%cal Gg7d4,Gc6d4] } 9. Nxc6 Qb6+ { [%cal Gb6c6,Gb6g1] } 10. Kh1 Nxc3 { [%cal Gc3d1,Gc3e2] } 11. bxc3 bxc6 { [%cal Gc8a6] }) 8... O-O 9. Nb3 a6 { [%cal Gb7b5,Gb5b4,Ge2c4] }) 6... Bg7 (6... Ng4 { [%cal Gg4e3] } 7. Bb5+ { [%cal Gb5e8,Gb8d7,Gc8d7,Gd1g4] } 7... Nc6 8. Nxc6 bxc6 9. Bxc6+ { [%cal Gc6a8] }) 7. f3 { The key opening moves for White, who attempt to castle queenside , whereas f3 strengthens the pawn structure, connecting e4 to the h2 and g2, while White also plan pushing to g4 and possibly h4. } { [%csl Bf3,Be3][%cal Rg2g4,Rh2h4,Rg4g5] } 7... O-O (7... h5 { Is operating against g4. }) 8. Qd2 { [%csl Gh6,Gg7][%cal Ge1c1,Ga1d1,Re3h6,Rd2h6] } 8... Nc6 { [%csl Gc6,Gh6][%cal Gb8c6,Ge1c1,Ga7a6,Ge3h6] } 9. g4 (9. Bh6 { [%cal Ge3d4] } 9... Bxh6 10. Qxh6 Nxd4) 9... Be6 10. Nxe6 fxe6 { [%cal Gf8f1] } 11. O-O-O Ne5 12. Be2 { [%csl Gf3][%cal Re5f3,Bd1h1,Bg1d1] } 12... Qc7 { [%csl Gc4][%cal Ge5c4,Gc4e3,Gc4d2,Bf8c8,Yc7c3] } 13. h4 Nc4 * StudyUserSelection: type: string enum: - nobody - owner - contributor - member - everyone StudyImportPgnChapters: type: object properties: chapters: type: array items: type: object properties: id: type: string description: The chapter ID name: type: string description: The chapter name players: type: array minItems: 2 maxItems: 2 items: type: object properties: name: type: - string - 'null' description: The player name rating: type: integer description: The player rating status: type: string description: The chapter status example: chapters: - id: iBjmYBya name: test 2 players: - name: Carlsen, Magnus rating: 2837 - name: Chadaev, Nikolay rating: 2580 status: 1-0 StudyMetadata: type: object properties: id: type: string description: The study ID name: type: string description: The study name createdAt: type: integer format: int64 description: The study creation date updatedAt: type: integer format: int64 description: The study last update date required: - id - name - createdAt - updatedAt example: id: WTvnkWAL name: Guess the move createdAt: 1463756350225 updatedAt: 1469965025205 FideTimeControl: type: string enum: - standard - rapid - blitz description: | FIDE rating category BroadcastTour: type: object properties: id: type: string name: type: string slug: type: string createdAt: type: integer example: 1722169800000 dates: type: array items: type: integer format: int64 description: Start and end dates of the tournament, as Unix timestamps in milliseconds minItems: 1 maxItems: 2 example: - 1722169800000 - 1722666600000 info: type: object description: Additional display information about the tournament properties: website: type: string format: uri description: Official website. External website URL players: type: string description: Featured players location: type: string description: Tournament location tc: type: string description: Time control fideTC: description: FIDE rating category $ref: '#/components/schemas/FideTimeControl' timeZone: type: string description: | Timezone of the tournament. Example: `America/New_York`. See [list of possible timezone identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for more. standings: type: string format: uri description: Official standings website. External website URL format: type: string description: Tournament format tier: type: integer description: Used to designate featured tournaments on Lichess image: type: string format: uri description: type: string description: Full tournament description in markdown format, or in HTML if the html=1 query parameter is set. teamTable: type: boolean showTeamScores: type: boolean url: type: string format: uri communityOwner: $ref: '#/components/schemas/LightUser' required: - id - name - slug - createdAt - url BroadcastCustomPoints: type: number minimum: 0 maximum: 10 BroadcastCustomPointsPerColor: type: object properties: win: $ref: '#/components/schemas/BroadcastCustomPoints' draw: $ref: '#/components/schemas/BroadcastCustomPoints' required: - win - draw BroadcastCustomScoring: type: object description: Scoring overrides for wins or draws. properties: white: $ref: '#/components/schemas/BroadcastCustomPointsPerColor' black: $ref: '#/components/schemas/BroadcastCustomPointsPerColor' required: - white - black BroadcastRoundInfo: type: object properties: id: type: string name: type: string slug: type: string createdAt: type: integer format: int64 rated: type: boolean description: Whether the round is used for rating calculations ongoing: type: boolean startsAt: type: integer format: int64 startsAfterPrevious: type: boolean description: The start date/time is unknown and the round will start automatically when the previous round completes finishedAt: type: integer format: int64 finished: type: boolean url: type: string format: uri delay: type: integer format: int64 customScoring: $ref: '#/components/schemas/BroadcastCustomScoring' required: - id - name - slug - url - createdAt - rated BroadcastPhotos: type: object description: Photos of players, when available. The object keys are FIDE IDs additionalProperties: type: object properties: small: description: URL of a small (100x100) thumbnail of the photo type: string medium: description: URL of a medium (500x500) version of the photo type: string credit: description: If set, then you should make it appear next to the photo type: string required: - small - medium BroadcastWithRounds: type: object properties: tour: $ref: '#/components/schemas/BroadcastTour' group: type: string rounds: type: array items: $ref: '#/components/schemas/BroadcastRoundInfo' defaultRoundId: type: string photos: $ref: '#/components/schemas/BroadcastPhotos' required: - tour - rounds BroadcastWithLastRound: type: object properties: group: type: string tour: $ref: '#/components/schemas/BroadcastTour' round: $ref: '#/components/schemas/BroadcastRoundInfo' BroadcastTop: type: object properties: active: type: array items: $ref: '#/components/schemas/BroadcastWithLastRound' upcoming: type: array items: $ref: '#/components/schemas/BroadcastWithLastRound' minItems: 0 maxItems: 0 deprecated: true past: type: object properties: currentPage: type: integer example: 4 maxPerPage: type: integer example: 20 currentPageResults: type: array items: $ref: '#/components/schemas/BroadcastWithLastRound' previousPage: type: - integer - 'null' example: 3 nextPage: type: - integer - 'null' example: 5 BroadcastByUser: type: object properties: tour: $ref: '#/components/schemas/BroadcastTour' required: - tour BroadcastTiebreakExtendedCode: type: string description: Extended tiebreak code enum: - AOB - APPO - APRO - ARO - ARO-C1 - ARO-C2 - ARO-M1 - ARO-M2 - BH - BH-C1 - BH-C2 - BH-M1 - BH-M2 - BPG - BWG - DE - FB - FB-C1 - FB-C2 - FB-M1 - FB-M2 - KS - PS - PS-C1 - PS-C2 - PS-M1 - PS-M2 - PTP - SB - SB-C1 - SB-C2 - SB-M1 - SB-M2 - TPR - WON BroadcastForm: type: object properties: name: type: string maxLength: 80 minLength: 3 description: | Name of the broadcast tournament. Example: `Sinquefield Cup` info.format: type: string maxLength: 80 description: | Tournament format. Example: `"8-player round-robin" or "5-round Swiss"` info.location: type: string maxLength: 80 description: | Tournament Location info.tc: type: string maxLength: 80 description: | Time control. Example: `"Classical" or "Rapid" or "Rapid & Blitz"` info.fideTC: $ref: '#/components/schemas/FideTimeControl' info.timeZone: type: string description: | Timezone of the tournament. Example: `America/New_York`. See [list of possible timezone identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for more. info.players: type: string maxLength: 120 description: | Mention up to 4 of the best players participating. info.website: type: string format: uri description: | Official website. External website URL info.standings: type: string format: uri description: | Official Standings. External website URL, e.g. chess-results.com, info64.org markdown: type: string maxLength: 20000 description: | Optional long description of the broadcast. Markdown is supported. showScores: type: boolean default: false description: | Show players scores based on game results showRatingDiffs: type: boolean default: false description: | Show player's rating diffs teamTable: type: boolean default: false description: | Show a team leaderboard. Requires WhiteTeam and BlackTeam PGN tags. visibility: type: string enum: - public - unlisted - private default: public description: | Who can view the broadcast. * `public`: Default. Anyone can view the broadcast * `unlisted`: Only people with the link can view the broadcast * `private`: Only the broadcast owner(s) can view the broadcast players: type: string description: | Optional replace player names, ratings and titles. One line per player, formatted as such: ```txt player name / FIDE ID ``` Example: ```txt Magnus Carlsen / 1503014 ``` Player names ignore case and punctuation, and match all possible combinations of 2 words: "Jorge Rick Vito" will match "Jorge Rick", "jorge vito", "Rick, Vito", etc. If the player is NM or WNM, you can: ```txt player name / FIDE ID / title ``` Alternatively, you may set tags manually, like so: ```txt player name / rating / title / new name ``` All values are optional. Example: ```txt Magnus Carlsen / 2863 / GM YouGotLittUp / 1890 / / Louis Litt ``` teams: type: string description: | Optional: assign players to teams One line per player, formatted as such: ```txt Team name; Fide Id or Player name ``` Example: ```txt Team Cats ; 3408230 Team Dogs ; Scooby Doo ``` By default the PGN tags WhiteTeam and BlackTeam are used. tier: type: integer enum: - 3 - 4 - 5 description: | Optional, for Lichess admins only, used to feature on /broadcast. * `3` for Official: normal tier * `4` for Official: high tier * `5` for Official: best tier tiebreaks[]: type: array maxItems: 5 items: $ref: '#/components/schemas/BroadcastTiebreakExtendedCode' required: - name BroadcastGroupTour: type: object properties: id: type: string name: type: string active: type: boolean live: type: boolean required: - id - name - active - live BroadcastGroup: type: object properties: id: type: string slug: type: string name: type: string tours: type: array items: $ref: '#/components/schemas/BroadcastGroupTour' required: - id - slug - name - tours BroadcastWithRoundsAndFullGroup: type: object properties: tour: $ref: '#/components/schemas/BroadcastTour' group: $ref: '#/components/schemas/BroadcastGroup' rounds: type: array items: $ref: '#/components/schemas/BroadcastRoundInfo' defaultRoundId: type: string photos: $ref: '#/components/schemas/BroadcastPhotos' required: - tour - rounds BroadcastPlayerWithFed: type: object properties: name: type: string example: Hernandez Riera, Jose title: $ref: '#/components/schemas/Title' rating: type: integer example: 2149 fideId: type: integer example: 3408230 team: type: string fed: type: string example: CHI required: - name StatByFideTC: type: object properties: standard: type: integer rapid: type: integer blitz: type: integer BroadcastPlayerTiebreak: type: object properties: extendedCode: $ref: '#/components/schemas/BroadcastTiebreakExtendedCode' description: type: string example: Buchholz Cut 1 points: type: number example: 45.5 required: - extendedCode - description - points BroadcastPlayerEntry: allOf: - $ref: '#/components/schemas/BroadcastPlayerWithFed' - type: object properties: score: type: number example: 2.5 played: type: integer example: 7 ratingDiffs: description: | Rating differences by FIDE time control. allOf: - $ref: '#/components/schemas/StatByFideTC' example: rapid: -5 blitz: 10 ratingsMap: description: | Player's ratings at the time of the tournament. allOf: - $ref: '#/components/schemas/StatByFideTC' example: rapid: 2500 blitz: 2450 performances: description: | Performance ratings by FIDE time control. allOf: - $ref: '#/components/schemas/StatByFideTC' example: standard: 2138 tiebreaks: type: array maxItems: 5 items: $ref: '#/components/schemas/BroadcastPlayerTiebreak' rank: type: integer example: 1 minimum: 1 BroadcastPointStr: type: string enum: - '1' - 1/2 - '0' BroadcastGameEntry: type: object properties: round: type: string description: ID of the round id: type: string description: The game ID. Analogous to chapterId. opponent: $ref: '#/components/schemas/BroadcastPlayerWithFed' color: $ref: '#/components/schemas/GameColor' points: $ref: '#/components/schemas/BroadcastPointStr' customPoints: $ref: '#/components/schemas/BroadcastCustomPoints' ratingDiff: type: integer description: The change in rating for the player as a result of this game fideTC: $ref: '#/components/schemas/FideTimeControl' ongoing: type: boolean required: - round - id - opponent - color - fideTC BroadcastPlayerEntryWithFideAndGames: allOf: - $ref: '#/components/schemas/BroadcastPlayerEntry' - type: object properties: fide: type: object properties: year: type: integer description: Year of birth ratings: description: Player's current ratings from the latest FIDE rating list. allOf: - $ref: '#/components/schemas/StatByFideTC' games: type: array description: List of games played by the player in the broadcast tournament items: $ref: '#/components/schemas/BroadcastGameEntry' BroadcastTeamPOVMatchEntry: type: object properties: roundId: type: string opponent: type: string description: The name of the opposing team mp: type: number description: Match points scored in this match gp: type: number description: Game points scored in this match points: $ref: '#/components/schemas/BroadcastPointStr' required: - roundId - opponent BroadcastTeamLeaderboardEntry: properties: name: type: string description: The name of the team mp: type: number description: Total match points scored gp: type: number description: Total game points scored averageRating: type: integer description: The average rating of the team's players matches: type: array items: $ref: '#/components/schemas/BroadcastTeamPOVMatchEntry' players: type: array description: Players who have played for the team and their overall score items: $ref: '#/components/schemas/BroadcastPlayerEntry' required: - name - mp - gp - matches - players BroadcastRoundFormName: type: string minLength: 3 maxLength: 80 description: | Name of the broadcast round. Example: `Round 1` BroadcastRoundForm: allOf: - oneOf: - type: object title: send games via push required: - name properties: name: $ref: '#/components/schemas/BroadcastRoundFormName' - type: object title: retrieve games via PGN url required: - name - syncUrl properties: name: $ref: '#/components/schemas/BroadcastRoundFormName' syncUrl: type: string format: uri description: | URL that Lichess will poll to get updates about the games. It must be publicly accessible from the Internet. Example: ```txt https://myserver.org/myevent/round-10/games.pgn ``` onlyRound: type: integer maximum: 999 minimum: 1 description: | Filter games by round number Optional, only keep games from the source that match a round number. It uses the PGN **Round** tag. These would match round 3: ```txt [Round "3"] [Round "3.1"] ``` If you set a round number, then games without a **Round** tag are dropped. It only works if you chose `syncUrl` or `syncUrls` as the source. slices: type: string description: | Select slices of the games Optional. Select games based on their position in the source. ```txt 1 only select the first board 1-4 only select the first 4 boards 1,2,3,4 same as above, first 4 boards 11-15,21-25 boards 11 to 15, and boards 21 to 25 2,3,7-9 boards 2, 3, 7, 8, and 9 ``` Slicing is done after filtering by round number. It only works if you chose `syncUrl` or `syncUrls` as the source. - type: object title: retrieve games via mutiple PGN urls required: - name - syncUrls properties: name: $ref: '#/components/schemas/BroadcastRoundFormName' syncUrls: type: string description: | URLs that Lichess will poll to get updates about the games, separated by newlines. They must be publicly accessible from the Internet. Example: ```txt https://myserver.org/myevent/round-10/game-1.pgn https://myserver.org/myevent/round-10/game-2.pgn ``` onlyRound: type: integer maximum: 999 minimum: 1 description: | Filter games by round number Optional, only keep games from the source that match a round number. It uses the PGN **Round** tag. These would match round 3: ```txt [Round "3"] [Round "3.1"] ``` If you set a round number, then games without a **Round** tag are dropped. It only works if you chose `syncUrl` or `syncUrls` as the source. slices: type: string description: | Select slices of the games Optional. Select games based on their position in the source. ```txt 1 only select the first board 1-4 only select the first 4 boards 1,2,3,4 same as above, first 4 boards 11-15,21-25 boards 11 to 15, and boards 21 to 25 2,3,7-9 boards 2, 3, 7, 8, and 9 ``` Slicing is done after filtering by round number. It only works if you chose `syncUrl` or `syncUrls` as the source. - type: object title: retrieve games via Lichess game IDs required: - name - syncIds properties: name: $ref: '#/components/schemas/BroadcastRoundFormName' syncIds: type: string description: | Lichess game IDs - Up to 100 Lichess game IDs, separated by spaces. - type: object title: retrieve games via Lichess usernames required: - name - syncUsers properties: name: $ref: '#/components/schemas/BroadcastRoundFormName' syncUsers: type: string description: | Up to 100 Lichess usernames, separated by spaces - type: object properties: syncSource: description: | Where the games come from. type: string enum: - push - url - urls - ids - users default: push startsAt: type: integer format: int64 description: | Timestamp in milliseconds of broadcast round start. Leave empty to manually start the broadcast round. Example: `1356998400070` minimum: 1356998400070 startsAfterPrevious: type: boolean description: | The start date is unknown, and the round will start automatically when the previous round completes. default: false delay: type: integer description: | Delay in seconds for movements to appear on the broadcast. Leave it empty if you don't need it. Example: `900` (15 min) minimum: 0 maximum: 3600 status: type: string enum: - new - started - finished description: | Lichess can usually detect the round status, but you can also set it manually if needed. default: new rated: type: boolean default: true description: Whether the round is used when calculating players' rating changes. customScoring.white.win: $ref: '#/components/schemas/BroadcastCustomPoints' customScoring.white.draw: $ref: '#/components/schemas/BroadcastCustomPoints' customScoring.black.win: $ref: '#/components/schemas/BroadcastCustomPoints' customScoring.black.draw: $ref: '#/components/schemas/BroadcastCustomPoints' period: type: integer description: | (Only for Admins) Waiting time for each poll. minimum: 2 maximum: 60 BroadcastRoundStudyInfo: type: object properties: writeable: description: Whether the currently authenticated user has permission to update the study type: boolean features: type: object properties: chat: type: boolean description: Whether chat is enabled for the currently authenticated user computer: type: boolean description: Whether engine analysis is enabled for the currently authenticated user explorer: type: boolean description: Whether the opening explorer + tablebase is enabled for the currently authenticated user BroadcastRoundNew: type: object properties: round: $ref: '#/components/schemas/BroadcastRoundInfo' tour: $ref: '#/components/schemas/BroadcastTour' study: $ref: '#/components/schemas/BroadcastRoundStudyInfo' required: - round - tour - study BroadcastRoundGame: type: object properties: id: type: string name: type: string fen: type: string players: type: array items: type: object properties: name: type: string title: $ref: '#/components/schemas/Title' rating: type: integer fideId: type: integer fed: type: string clock: type: integer lastMove: type: string check: type: string enum: - + - '#' thinkTime: type: integer status: description: The result of the game type: string enum: - '*' - 1-0 - 0-1 - ½-½ required: - id - name BroadcastRound: type: object properties: round: $ref: '#/components/schemas/BroadcastRoundInfo' tour: $ref: '#/components/schemas/BroadcastTour' study: $ref: '#/components/schemas/BroadcastRoundStudyInfo' games: type: array items: $ref: '#/components/schemas/BroadcastRoundGame' group: $ref: '#/components/schemas/BroadcastGroup' isSubscribed: type: boolean description: Indicates if the user making the request is subscribed to the broadcast photos: $ref: '#/components/schemas/BroadcastPhotos' required: - round - tour - study - games - photos BroadcastPgnPushTags: type: object additionalProperties: type: string BroadcastPgnPush: type: object properties: games: type: array items: type: object properties: tags: $ref: '#/components/schemas/BroadcastPgnPushTags' moves: type: integer error: type: string required: - tags required: - games BroadcastMyRound: type: object properties: round: $ref: '#/components/schemas/BroadcastRoundInfo' tour: $ref: '#/components/schemas/BroadcastTour' study: $ref: '#/components/schemas/BroadcastRoundStudyInfo' required: - round - tour - study FIDEPlayerPhoto: type: object properties: small: description: URL of a small (100x100) thumbnail of the photo type: string medium: description: URL of a medium (500x500) version of the photo type: string credit: description: If set, then you should make it appear next to the photo type: string required: - small - medium FIDEPlayer: type: object properties: id: type: integer name: type: string title: $ref: '#/components/schemas/Title' federation: type: string year: type: - integer - 'null' inactive: type: integer standard: type: integer rapid: type: integer blitz: type: integer gender: type: string description: FIDE uses mandatory binary gender. enum: - M - F photo: $ref: '#/components/schemas/FIDEPlayerPhoto' required: - id - name - federation FIDEPlayerRatings: type: object description: | Data points are encoded. Each number contains a year, a month, and an ELO rating. `2015081568` -> `August 2015: 1568` Here's an example decoding implementation in JS: ```js const decodePoint = point => { const elo = point % 10000; const dateNum = Math.floor(point / 10000); const year = Math.floor(dateNum / 100); const month = dateNum % 100; return [year, month, elo]; }; ``` Consecutive months with same ELO are omitted. For a given ELO, only the first and last month are provided. properties: standard: type: array items: type: number rapid: type: array items: type: number blitz: type: array items: type: number required: - standard - rapid - blitz Simul: type: object required: - id - host - name - fullName - variants - isCreated - isFinished - isRunning - nbApplicants - nbPairings properties: id: type: string host: type: object allOf: - $ref: '#/components/schemas/LightUser' - type: object properties: rating: type: integer provisional: type: boolean gameId: type: string online: type: boolean name: type: string fullName: type: string variants: type: array items: type: object properties: key: $ref: '#/components/schemas/VariantKey' icon: type: string name: type: string isCreated: type: boolean isFinished: type: boolean isRunning: type: boolean text: type: string estimatedStartAt: type: integer startedAt: type: integer finishedAt: type: integer nbApplicants: type: integer nbPairings: type: integer Team: type: object properties: id: type: string name: type: string description: type: string flair: $ref: '#/components/schemas/Flair' leader: $ref: '#/components/schemas/LightUser' leaders: type: array items: $ref: '#/components/schemas/LightUser' nbMembers: type: integer open: type: boolean joined: type: boolean requested: type: boolean required: - id - name TeamPaginatorJson: type: object properties: currentPage: type: integer example: 4 maxPerPage: type: integer example: 15 currentPageResults: type: array items: $ref: '#/components/schemas/Team' previousPage: type: - integer - 'null' example: 3 nextPage: type: - integer - 'null' example: 5 nbResults: type: integer nbPages: type: integer required: - currentPage - maxPerPage - currentPageResults - previousPage - nextPage - nbResults - nbPages ArenaStatusName: type: string description: The current state of the arena tournament enum: - created - started - finished TeamRequest: type: object properties: teamId: type: string example: coders userId: type: string example: thibault date: type: integer example: 1514505150384 message: type: string example: Hello, I would like to join the team! required: - teamId - userId - date TeamRequestWithUser: type: object properties: request: $ref: '#/components/schemas/TeamRequest' user: $ref: '#/components/schemas/User' required: - request - user Crosstable: type: object properties: users: additionalProperties: type: number nbGames: type: integer required: - users - nbGames example: users: neio: 201.5 thibault: 144.5 nbGames: 346 LightUserOnline: allOf: - $ref: '#/components/schemas/LightUser' - properties: online: type: boolean UserNote: type: object properties: from: $ref: '#/components/schemas/LightUser' to: $ref: '#/components/schemas/LightUser' text: type: string example: This is a note date: type: integer format: int64 example: 1290415680000 GameEventOpponent: oneOf: - type: object title: Player properties: id: type: string username: type: string rating: type: integer ratingDiff: type: integer required: - id - username - rating - type: object title: AI Opponent properties: id: type: 'null' username: type: string ai: type: integer description: AI level, from 1 to 8, where 1 is the weakest and 8 is the strongest. required: - id - username - ai GameCompat: type: object properties: bot: type: boolean description: Compatible with Bot API board: type: boolean description: Compatible with Board API GameEventInfo: type: object properties: fullId: type: string gameId: type: string fen: type: string color: $ref: '#/components/schemas/GameColor' lastMove: type: string source: $ref: '#/components/schemas/GameSource' status: $ref: '#/components/schemas/GameStatus' variant: $ref: '#/components/schemas/Variant' speed: $ref: '#/components/schemas/Speed' perf: type: string rating: type: integer rated: type: boolean hasMoved: type: boolean opponent: $ref: '#/components/schemas/GameEventOpponent' isMyTurn: type: boolean secondsLeft: type: integer winner: $ref: '#/components/schemas/GameColor' ratingDiff: type: integer compat: $ref: '#/components/schemas/GameCompat' id: type: string tournamentId: type: string required: - fullId - gameId GameStartEvent: type: object properties: type: type: string const: gameStart game: $ref: '#/components/schemas/GameEventInfo' required: - type - game GameFinishEvent: type: object properties: type: type: string const: gameFinish game: $ref: '#/components/schemas/GameEventInfo' required: - type - game ChallengeStatus: type: string enum: - created - offline - canceled - declined - accepted ChallengeUser: type: object properties: id: type: string name: type: string rating: type: integer title: $ref: '#/components/schemas/Title' flair: $ref: '#/components/schemas/Flair' patron: $ref: '#/components/schemas/Patron' patronColor: $ref: '#/components/schemas/PatronColor' provisional: type: boolean online: type: boolean lag: type: integer required: - id - name TimeControl: oneOf: - type: object title: Real-time properties: type: type: string const: clock limit: type: integer increment: type: integer show: example: 5+2 type: string additionalProperties: false - type: object title: Correspondence properties: type: type: string const: correspondence daysPerTurn: type: integer additionalProperties: false - type: object title: Unlimited properties: type: type: string const: unlimited additionalProperties: false ChallengeColor: type: string enum: - white - black - random ChallengeJson: type: object properties: id: type: string url: type: string format: uri status: $ref: '#/components/schemas/ChallengeStatus' challenger: $ref: '#/components/schemas/ChallengeUser' destUser: oneOf: - $ref: '#/components/schemas/ChallengeUser' - type: 'null' variant: $ref: '#/components/schemas/Variant' rated: type: boolean speed: $ref: '#/components/schemas/Speed' timeControl: $ref: '#/components/schemas/TimeControl' color: $ref: '#/components/schemas/ChallengeColor' finalColor: $ref: '#/components/schemas/GameColor' perf: type: object properties: icon: type: string name: type: string required: - icon - name direction: type: string enum: - in - out initialFen: type: string rematchOf: type: string required: - id - url - status - challenger - destUser - variant - rated - speed - timeControl - color - perf example: id: H9fIRZUk url: https://lichess.org/H9fIRZUk status: created challenger: id: bot1 name: Bot1 rating: 1500 title: BOT provisional: true online: true lag: 4 destUser: id: bobby name: Bobby rating: 1635 title: GM provisional: true online: true lag: 4 variant: key: standard name: Standard short: Std rated: true speed: rapid timeControl: type: clock limit: 600 increment: 0 show: 10+0 color: random finalColor: black perf: icon:  name: Rapid direction: out ChallengeEvent: type: object properties: type: type: string const: challenge challenge: $ref: '#/components/schemas/ChallengeJson' compat: $ref: '#/components/schemas/GameCompat' required: - type - challenge ChallengeCanceledEvent: type: object properties: type: type: string const: challengeCanceled challenge: $ref: '#/components/schemas/ChallengeJson' required: - type - challenge ChallengeDeclinedJson: allOf: - $ref: '#/components/schemas/ChallengeJson' - type: object properties: declineReason: type: string description: Human readable, possibly translated reason why the challenge was declined. declineReasonKey: type: string description: Untranslated, computer-matchable reason why the challenge was declined. enum: - generic - later - toofast - tooslow - timecontrol - rated - casual - standard - variant - nobot - onlybot required: - declineReason - declineReasonKey ChallengeDeclinedEvent: type: object properties: type: type: string const: challengeDeclined challenge: $ref: '#/components/schemas/ChallengeDeclinedJson' required: - type - challenge GameEventPlayer: type: object properties: aiLevel: type: integer id: type: string name: type: string title: oneOf: - $ref: '#/components/schemas/Title' - type: 'null' rating: type: integer provisional: type: boolean required: - id - name GameStateEvent: type: object properties: type: type: string const: gameState moves: type: string description: | Current moves in UCI format (King to rook for Chess690-compatible castling notation) wtime: type: integer description: Integer of milliseconds White has left on the clock btime: type: integer description: Integer of milliseconds Black has left on the clock winc: type: integer description: Integer of White Fisher increment. binc: type: integer description: Integer of Black Fisher increment. status: $ref: '#/components/schemas/GameStatusName' winner: $ref: '#/components/schemas/GameColor' description: Color of the winner, if any wdraw: type: boolean description: true if white is offering draw, else omitted bdraw: type: boolean description: true if black is offering draw, else omitted wtakeback: type: boolean description: true if white is proposing takeback, else omitted btakeback: type: boolean description: true if black is proposing takeback, else omitted expiration: type: object description: A game may be aborted if a player doesn't make their first move in time properties: idleMillis: type: integer description: Milliseconds since the last move was played, or since the game started millisToMove: type: integer description: Time each player has to make their first move, before the game is aborted required: - idleMillis - millisToMove required: - type - moves - wtime - btime - winc - binc - status example: type: gameState moves: e2e4 c7c5 f2f4 d7d6 g1f3 b8c6 f1c4 g8f6 d2d3 g7g6 e1g1 f8g7 b1c3 wtime: 7598040 btime: 8395220 winc: 10000 binc: 10000 wdraw: false bdraw: false wtakeback: false btakeback: false status: started GameFullEvent: type: object properties: type: type: string const: gameFull id: type: string variant: $ref: '#/components/schemas/Variant' clock: type: object properties: initial: type: integer format: int64 description: Initial time in milliseconds increment: type: integer format: int64 description: Increment time in milliseconds speed: $ref: '#/components/schemas/Speed' perf: type: object properties: name: type: string description: Translated perf name (e.g. "Classical" or "Blitz") rated: type: boolean createdAt: type: integer format: int64 white: $ref: '#/components/schemas/GameEventPlayer' black: $ref: '#/components/schemas/GameEventPlayer' initialFen: type: string default: startpos state: $ref: '#/components/schemas/GameStateEvent' daysPerTurn: type: integer description: If the game is correspondence tournamentId: type: string required: - type - id - variant - speed - perf - rated - createdAt - white - black - initialFen - state example: id: BEOucQJo variant: key: standard name: Standard short: Std speed: rapid perf: name: Rapid rated: false createdAt: 1745112707998 white: id: bobby name: Bobby title: null rating: 1751 black: id: mary name: Mary title: null rating: 1021 initialFen: startpos clock: initial: 900000 increment: 0 type: gameFull state: type: gameState moves: d2d3 wtime: 900000 btime: 900000 winc: 0 binc: 0 status: started ChatLineEvent: type: object properties: type: type: string const: chatLine room: type: string enum: - player - spectator username: type: string text: type: string required: - type - room - username - text example: type: chatLine username: thibault text: Good luck, have fun room: player OpponentGoneEvent: type: object properties: type: type: string const: opponentGone gone: type: boolean claimWinInSeconds: type: integer required: - type - gone example: type: opponentGone gone: true claimWinInSeconds: 8 PlayerGameChat: type: array items: type: object properties: text: type: string user: type: string required: - text - user example: - text: Takeback sent user: lichess - text: Takeback accepted user: lichess - text: Good game, well played user: thibault ChallengeOpenJson: type: object properties: id: type: string url: type: string format: uri status: $ref: '#/components/schemas/ChallengeStatus' challenger: type: 'null' destUser: type: 'null' variant: $ref: '#/components/schemas/Variant' rated: type: boolean speed: $ref: '#/components/schemas/Speed' timeControl: $ref: '#/components/schemas/TimeControl' color: $ref: '#/components/schemas/ChallengeColor' finalColor: $ref: '#/components/schemas/GameColor' perf: type: object properties: icon: type: string name: type: string initialFen: type: string urlWhite: type: string format: uri urlBlack: type: string format: uri open: type: object properties: userIds: description: An optional array of two user ids. If set, only these users will be allowed to join the game. The first username gets the white pieces. type: array items: type: string minItems: 2 maxItems: 2 required: - id - url - status - challenger - destUser - variant - rated - speed - timeControl - color - perf - urlWhite - urlBlack - open BulkPairing: type: object properties: id: type: string games: type: array items: type: object properties: id: type: string black: type: string white: type: string variant: $ref: '#/components/schemas/VariantKey' clock: $ref: '#/components/schemas/Clock' pairAt: type: integer pairedAt: type: - integer - 'null' rated: type: boolean startClocksAt: type: integer scheduledAt: type: integer required: - id - games - variant - clock - pairAt - pairedAt - rated - startClocksAt - scheduledAt example: id: RVAcwgg7 games: - id: NKop9IyD black: lizen1 white: thibault - id: KT8374ut black: lizen3 white: lizen2 - id: wInQr8Sk black: lizen5 white: lizen4 variant: standard clock: increment: 0 limit: 300 pairAt: 1612289869919 pairedAt: null rated: false startClocksAt: 1612200422971 scheduledAt: 1612203514628 CloudEval: type: object required: - depth - fen - knodes - pvs properties: depth: type: integer fen: type: string knodes: type: integer pvs: type: array items: oneOf: - type: object title: Non-mate variation required: - cp - moves properties: cp: type: integer description: Evaluation in centi-pawns, from White's point of view moves: type: string description: | Variation in UCI notation (King to rook for Chess960-compatible castling notation) - type: object title: Mate variation required: - mate - moves properties: mate: type: integer description: Evaluation in moves to mate, from White's point of view moves: type: string description: | Variation in UCI notation (King to rook for Chess960-compatible castling notation) example: fen: r1bqkbnr/pppp1ppp/2n5/1B2p3/4P3/5N2/PPPP1PPP/RNBQK2R knodes: 106325 depth: 29 pvs: - moves: d1e2 d8e7 a2a4 a7a6 b5c4 d7d6 d2d3 g8f6 c1e3 c6a5 cp: 41 - moves: c2c3 a7a6 b5a4 g8f6 d2d3 b7b5 a4b3 h7h6 a2a4 c8b7 cp: 39 - moves: d2d3 d8f6 c2c3 a7a6 b5a4 f8c5 d3d4 c5a7 c1e3 g8e7 cp: 37 UciVariant: type: string enum: - chess - crazyhouse - antichess - atomic - horde - kingofthehill - racingkings - 3check example: chess default: chess ExternalEngine: type: object properties: id: type: string description: Unique engine registration ID. name: type: string description: Display name of the engine. minLength: 3 maxLength: 200 clientSecret: type: string description: | A secret token that can be used to [*request* analysis](#tag/external-engine/POST/api/external-engine/{id}/analyse) from this external engine. userId: type: string description: The user this engine has been registered for. maxThreads: type: integer description: Maximum number of available threads. minimum: 1 maximum: 65536 maxHash: type: integer description: Maximum available hash table size, in MiB. minimum: 1 maximum: 1048576 variants: type: array description: List of supported chess variants. items: $ref: '#/components/schemas/UciVariant' providerData: type: - string - 'null' description: | Arbitrary data that the engine provider can use for identification or bookkeeping. Users can read this information, but updating it requires knowing or changing the `providerSecret`. required: - id - clientSecret - userId - name - maxThreads - maxHash - variants ExternalEngineRegistration: type: object properties: name: type: string description: Display name of the engine. example: Stockfish 15 minLength: 3 maxLength: 200 maxThreads: type: integer description: Maximum number of available threads. example: 8 minimum: 1 maximum: 65536 maxHash: type: integer description: Maximum available hash table size, in MiB. example: 2048 minimum: 1 maximum: 1048576 variants: type: array description: Optional list of supported chess variants. items: $ref: '#/components/schemas/UciVariant' providerSecret: type: string description: | A random token that can be used to [wait for analysis requests](#tag/external-engine/POST/api/external-engine/work) and provide analysis. The engine provider should securely generate a random string. The token will not be readable again, even by the user. The analysis provider can register multiple engines with the same token, even for different users, and wait for analysis requests from any of them. In this case, the request must not be made via CORS, so that the token is not revealed to any of the users. example: Dee3uwieZei9ahpaici9bee2yahsai0K minLength: 16 maxLength: 1024 providerData: type: string description: | Arbitrary data that the engine provider can use for identification or bookkeeping. Users can read this information, but updating it requires knowing or changing the `providerSecret`. required: - name - maxThreads - maxHash - providerSecret ExternalEngineWorkCommon: type: object properties: sessionId: type: string description: | Arbitary string that identifies the analysis session. Providers may wish to clear the hash table between sessions. threads: type: integer minimum: 1 description: Number of threads to use for analysis. hash: type: integer minimum: 1 description: Hash table size to use for analysis, in MiB. multiPv: type: integer minimum: 1 maximum: 5 description: Requested number of principal variations. variant: $ref: '#/components/schemas/UciVariant' initialFen: type: string description: Initial position of the game. moves: type: array description: List of moves played from the initial position, in UCI notation. items: type: string required: - sessionId - threads - hash - multiPv - variant - initialFen - moves ExternalEngineWork: oneOf: - allOf: - type: object title: Search by movetime properties: movetime: type: integer description: Amount of time to analyse the position, in milliseconds. minimum: 1 required: - movetime - $ref: '#/components/schemas/ExternalEngineWorkCommon' - allOf: - type: object title: Search by depth properties: depth: type: integer description: Analysis target depth minimum: 1 required: - depth - $ref: '#/components/schemas/ExternalEngineWorkCommon' - allOf: - type: object title: Search by nodes properties: nodes: type: integer description: Number of nodes to analyse in the position minimum: 1 required: - nodes - $ref: '#/components/schemas/ExternalEngineWorkCommon' OAuthError: type: object properties: error: type: string description: The cause of the error. error_description: type: string description: The reason why the request was rejected. required: - error example: error: invalid_grant error_description: hash of code_verifier does not match code_challenge OpeningExplorerOpening: type: object properties: eco: type: string name: type: string required: - eco - name OpeningExplorerGamePlayer: type: object properties: name: type: string rating: type: integer required: - name - rating 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 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 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 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 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 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 TablebaseMove: type: object properties: uci: type: string example: h7h8q san: type: string example: h8=Q+ category: type: string enum: - loss - unknown - syzygy-loss - maybe-loss - blessed-loss - draw - cursed-win - maybe-win - syzygy-win - win dtz: type: - 'null' - integer precise_dtz: type: - 'null' - integer dtc: type: - 'null' - integer dtm: type: - 'null' - integer dtw: type: - 'null' - integer zeroing: type: boolean conversion: type: boolean checkmate: type: boolean stalemate: type: boolean variant_win: type: boolean variant_loss: type: boolean insufficient_material: type: boolean required: - uci - san - category TablebaseJson: type: object properties: category: type: string enum: - win - unknown - syzygy-win - maybe-win - cursed-win - draw - blessed-loss - maybe-loss - syzygy-loss - loss description: | `cursed-win` and `blessed-loss` means the 50-move rule prevents the decisive result. `syzygy-win` and `syzygy-loss` means exact result is unknown due to [DTZ rounding](https://syzygy-tables.info/metrics#dtz), i.e., the win or loss could also be prevented by the 50-move rule if the user has deviated from the tablebase recommendation since the last pawn move or capture. `maybe-win` and `maybe-loss` means the result with regard to the 50-move rule is unknown, because DTZ is unknown and the DTC tablebase does not guarantee to reach a zeroing move as soon as possible. dtz: type: - 'null' - integer description: | [DTZ50'' with rounding](https://syzygy-tables.info/metrics#dtz) in plies (for Standard chess positions with not more than 7 pieces and variant positions not more than 6 pieces) precise_dtz: type: - 'null' - integer description: | DTZ50'' in plies, only if guaranteed to not be rounded, or absent if unknown dtc: type: - 'null' - integer description: | Depth to Conversion: Moves to next capture, promotion, or checkmate. Available for: * Standard chess positions with 8 pieces, more than one pawn of material value for each side, and at least one pair of opposing pawns, short *op1*, if query parameter `dtc` is `auxiliary` or `always`. * Some standard chess positions with up to 7 pieces, if query parameter `dtc` is `always`. Work in progress. dtm: type: - 'null' - integer description: | Depth To Mate: Plies to mate (available only for Standard positions with not more than 6 pieces) dtw: type: - 'null' - integer description: | Depth To Win: Plies to win (available only for Antichess positions with not more than 4 pieces) checkmate: type: boolean stalemate: type: boolean variant_win: type: boolean description: Only in chess variants variant_loss: type: boolean description: Only in chess variants insufficient_material: type: boolean moves: type: array description: Information about legal moves, best first items: $ref: '#/components/schemas/TablebaseMove' required: - category - moves example: dtz: 1 precise_dtz: 1 dtc: null dtm: 17 dtw: null checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false category: win moves: - uci: h7h8q san: h8=Q+ dtz: -2 precise_dtz: -2 dtc: null dtm: -16 dtw: null zeroing: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false category: loss 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) examples: users-getRealTimeUsersStatus.json: value: - name: Mary flair: people.open-hands-medium-light-skin-tone id: mary - name: Ana title: WCM flair: smileys.downcast-face-with-sweat id: ana users-getAllTop10.json: value: bullet: - id: chessplayer202024 username: chessplayer202024 perfs: bullet: rating: 3337 progress: 50 - id: ediz_gurel username: Ediz_Gurel perfs: bullet: rating: 3314 progress: -15 title: GM - id: rodosfatihi username: RoDoSfAtiHi perfs: bullet: rating: 3309 progress: -5 - id: chess-art-us username: chess-art-us perfs: bullet: rating: 3302 progress: 23 title: GM - id: grizzlybear15 username: grizzlybear15 perfs: bullet: rating: 3302 progress: 34 - id: sindarovgm username: SindarovGM perfs: bullet: rating: 3294 progress: 13 title: GM - id: vladimirovich9000 username: Vladimirovich9000 perfs: bullet: rating: 3243 progress: 1 title: GM - id: arka50 username: Arka50 perfs: bullet: rating: 3224 progress: 8 title: GM - id: shant7777777 username: Shant7777777 perfs: bullet: rating: 3222 progress: 14 title: GM - id: woshigeshagua username: woshigeshagua perfs: bullet: rating: 3207 progress: 14 online: true blitz: - id: asdert9 username: asdert9 perfs: blitz: rating: 3039 progress: 33 - id: wonderland305 username: wonderland305 perfs: blitz: rating: 3003 progress: -11 - id: functionjunkie username: FunctionJunkie perfs: blitz: rating: 2968 progress: 41 - id: athena-pallada username: athena-pallada perfs: blitz: rating: 2954 progress: 4 title: GM - id: yarebore username: Yarebore perfs: blitz: rating: 2953 progress: -7 title: GM - id: woshigeshagua username: woshigeshagua perfs: blitz: rating: 2938 progress: -18 online: true - id: vladimirovich9000 username: Vladimirovich9000 perfs: blitz: rating: 2932 progress: 21 title: GM - id: dr_tiger username: Dr_Tiger perfs: blitz: rating: 2931 progress: 30 title: GM - id: lu_shanglei username: Lu_Shanglei perfs: blitz: rating: 2931 progress: -21 - id: worstplayerinbullet username: worstplayerinbullet perfs: blitz: rating: 2922 progress: 31 rapid: - id: ultra_d_instinct username: Ultra_D_Instinct perfs: rapid: rating: 2801 progress: 7 - id: just_no_fun username: Just_No_Fun perfs: rapid: rating: 2801 progress: -21 - id: ilqar_7474 username: ilqar_7474 perfs: rapid: rating: 2768 progress: -44 - id: tuzakli_egitim username: Tuzakli_Egitim perfs: rapid: rating: 2754 progress: 12 title: FM - id: coolchessschool username: CoolChessSchool perfs: rapid: rating: 2752 progress: 56 - id: fluorinedesu username: Fluorinedesu perfs: rapid: rating: 2749 progress: 44 - id: andrey11976 username: Andrey11976 perfs: rapid: rating: 2733 progress: 10 title: NM - id: sashakuzhilniy username: SashaKuzhilniy perfs: rapid: rating: 2725 progress: -2 title: CM - id: metan0ia username: metan0ia perfs: rapid: rating: 2718 progress: 36 - id: wuinmas username: WUINMAS perfs: rapid: rating: 2717 progress: 31 classical: - id: belyakovbogdan username: BelyakovBogdan perfs: classical: rating: 2612 progress: 8 title: IM patron: true patronColor: 3 - id: heisingen1234 username: heisingen1234 perfs: classical: rating: 2559 progress: 53 - id: mw1966 username: MW1966 perfs: classical: rating: 2520 progress: 8 patron: true patronColor: 4 - id: vlad_lazarev79 username: Vlad_Lazarev79 perfs: classical: rating: 2512 progress: -23 - id: lance5500 username: Lance5500 perfs: classical: rating: 2495 progress: 7 title: LM patron: true patronColor: 10 online: true - id: ojaijoao username: OjaiJoao perfs: classical: rating: 2482 progress: -3 title: FM - id: chesstheory64 username: ChessTheory64 perfs: classical: rating: 2480 progress: -39 title: FM patron: true patronColor: 7 - id: dynamicus username: Dynamicus perfs: classical: rating: 2469 progress: 17 title: CM - id: inner___join username: Inner___Join perfs: classical: rating: 2467 progress: 19 - id: marshal67 username: marshal67 perfs: classical: rating: 2459 progress: -2 ultraBullet: - id: arkadiy_khromaev username: Arkadiy_Khromaev perfs: ultraBullet: rating: 2804 progress: 37 patron: true patronColor: 1 - id: nihalsarin2004 username: nihalsarin2004 perfs: ultraBullet: rating: 2744 progress: -6 title: GM patron: true patronColor: 10 - id: tamojerry username: tamojerry perfs: ultraBullet: rating: 2731 progress: 17 title: IM - id: shadowking78 username: ShadowKing78 perfs: ultraBullet: rating: 2635 progress: 18 title: FM online: true - id: amethyst27 username: AmeThyst27 perfs: ultraBullet: rating: 2613 progress: -36 - id: blazinq username: Blazinq perfs: ultraBullet: rating: 2613 progress: 9 title: IM - id: trixr4kidzzz username: TrixR4Kidzzz perfs: ultraBullet: rating: 2611 progress: -24 title: FM - id: aa175 username: aa175 perfs: ultraBullet: rating: 2572 progress: -26 online: true - id: mysterious_expert username: mysterious_expert perfs: ultraBullet: rating: 2564 progress: -37 title: IM patron: true patronColor: 10 - id: impogthefunnyfrog username: impogthefunnyfrog perfs: ultraBullet: rating: 2555 progress: 1 crazyhouse: - id: littleplotkin username: littleplotkin perfs: crazyhouse: rating: 2849 progress: 1 title: IM online: true - id: jannlee username: JannLee perfs: crazyhouse: rating: 2817 progress: 4 title: LM patron: true patronColor: 10 - id: visualdennis username: visualdennis perfs: crazyhouse: rating: 2765 progress: 3 title: NM patron: true patronColor: 9 - id: bzdybowicz username: bzdybowicz perfs: crazyhouse: rating: 2686 progress: 25 online: true - id: vikal00 username: vikal00 perfs: crazyhouse: rating: 2638 progress: 15 - id: tobyrizzo username: tobyrizzo perfs: crazyhouse: rating: 2637 progress: -29 title: NM - id: samuraitonto username: Samuraitonto perfs: crazyhouse: rating: 2594 progress: 21 - id: sonogoneli username: sonogoneli perfs: crazyhouse: rating: 2585 progress: 18 - id: pknm username: pknm perfs: crazyhouse: rating: 2584 progress: -1 - id: unjournakamura username: unjournakamura perfs: crazyhouse: rating: 2555 progress: 33 chess960: - id: chess-art-us username: chess-art-us perfs: chess960: rating: 2817 progress: 42 title: GM - id: jumpingknight20 username: jumpingknight20 perfs: chess960: rating: 2773 progress: -12 - id: guary1 username: Guary1 perfs: chess960: rating: 2667 progress: -8 title: FM online: true - id: matteorf2b username: matteorf2b perfs: chess960: rating: 2602 progress: 32 title: CM - id: johnsam1 username: johnsam1 perfs: chess960: rating: 2600 progress: 8 - id: potnie_ladoshki2 username: Potnie_Ladoshki2 perfs: chess960: rating: 2596 progress: -10 title: CM - id: maratgilfanovyoutube username: MaratGilfanovYoutube perfs: chess960: rating: 2594 progress: 43 title: FM - id: hanskai username: Hanskai perfs: chess960: rating: 2566 progress: -15 - id: neverenough username: NeverEnough perfs: chess960: rating: 2551 progress: 28 title: GM - id: mereseberserknhi username: MereseBerserkNhi perfs: chess960: rating: 2531 progress: -22 kingOfTheHill: - id: trixr4kidzzz username: TrixR4Kidzzz perfs: kingOfTheHill: rating: 2609 progress: -10 title: FM - id: chess-art-us username: chess-art-us perfs: kingOfTheHill: rating: 2605 progress: 22 title: GM - id: johnsam1 username: johnsam1 perfs: kingOfTheHill: rating: 2559 progress: 14 - id: aqua_blazing username: Aqua_Blazing perfs: kingOfTheHill: rating: 2518 progress: -9 - id: yakov25 username: Yakov25 perfs: kingOfTheHill: rating: 2501 progress: 25 - id: marek_religa username: Marek_Religa perfs: kingOfTheHill: rating: 2485 progress: 9 - id: move5 username: move5 perfs: kingOfTheHill: rating: 2471 progress: 20 title: FM - id: yuuki-asuna username: yuuki-asuna perfs: kingOfTheHill: rating: 2463 progress: 13 title: CM online: true - id: mereseberserknhi username: MereseBerserkNhi perfs: kingOfTheHill: rating: 2452 progress: -21 - id: lance5500 username: Lance5500 perfs: kingOfTheHill: rating: 2426 progress: 13 title: LM patron: true patronColor: 10 online: true threeCheck: - id: statham_13 username: Statham_13 perfs: threeCheck: rating: 2667 progress: 12 title: FM - id: unholycrusade username: UnholyCrusade perfs: threeCheck: rating: 2570 progress: 10 title: FM - id: knightrider-777 username: Knightrider-777 perfs: threeCheck: rating: 2521 progress: -14 - id: maxwellssilvrhammer username: maxwellssilvrhaMMer perfs: threeCheck: rating: 2459 progress: -11 - id: lion2006-45 username: lion2006-45 perfs: threeCheck: rating: 2459 progress: 2 - id: coldstar1 username: ColdStar1 perfs: threeCheck: rating: 2449 progress: -20 - id: maimel username: Maimel perfs: threeCheck: rating: 2448 progress: 9 - id: yuuki-asuna username: yuuki-asuna perfs: threeCheck: rating: 2444 progress: -26 title: CM online: true - id: yakov25 username: Yakov25 perfs: threeCheck: rating: 2439 progress: 20 - id: vikal00 username: vikal00 perfs: threeCheck: rating: 2435 progress: 20 antichess: - id: bonab_bakery username: Bonab_Bakery perfs: antichess: rating: 2559 progress: -19 - id: mr_pirinchoo username: Mr_Pirinchoo perfs: antichess: rating: 2546 progress: 5 patron: true patronColor: 2 online: true - id: theunknownguyreborn username: TheUnknownGuyReborn perfs: antichess: rating: 2543 progress: 19 patron: true patronColor: 5 - id: tetiksh1agrawal username: Tetiksh1Agrawal perfs: antichess: rating: 2542 progress: -33 patron: true patronColor: 4 - id: antichessepico username: AntichessEpico perfs: antichess: rating: 2485 progress: 15 - id: rush_g15 username: Rush_G15 perfs: antichess: rating: 2471 progress: -6 online: true - id: pf2000 username: pf2000 perfs: antichess: rating: 2457 progress: -5 - id: irlywnttply username: irlywnttply perfs: antichess: rating: 2457 progress: 23 - id: antichess_valentino username: Antichess_Valentino perfs: antichess: rating: 2421 progress: 10 - id: iithearunii username: IiTheAruNiI perfs: antichess: rating: 2417 progress: 7 atomic: - id: chrisrapid username: chrisrapid perfs: atomic: rating: 2472 progress: -20 - id: maxwellssilvrhammer username: maxwellssilvrhaMMer perfs: atomic: rating: 2464 progress: -25 - id: jakestatefarm username: JakeStateFarm perfs: atomic: rating: 2460 progress: 9 - id: rechesster username: ReChesster perfs: atomic: rating: 2444 progress: 6 patron: true patronColor: 3 - id: rkrounit username: RKROUNIT perfs: atomic: rating: 2442 progress: 12 - id: mss365 username: mss365 perfs: atomic: rating: 2423 progress: 19 - id: quasabianth username: Quasabianth perfs: atomic: rating: 2420 progress: 21 - id: ihatespammers username: ihatespaMMers perfs: atomic: rating: 2405 progress: -10 - id: chembaby username: Chembaby perfs: atomic: rating: 2383 progress: -43 - id: statham_13 username: Statham_13 perfs: atomic: rating: 2374 progress: -18 title: FM horde: - id: horus_88 username: Horus_88 perfs: horde: rating: 2738 progress: 6 online: true - id: matvei-e2e4 username: Matvei-e2e4 perfs: horde: rating: 2734 progress: 2 - id: kutlugbilgekagan username: KutlugBilgeKagan perfs: horde: rating: 2668 progress: -10 - id: mindhoonter-f5f6 username: MindHoonter-f5f6 perfs: horde: rating: 2586 progress: 5 - id: hod-konem96 username: hod-konem96 perfs: horde: rating: 2580 progress: 9 - id: tahaaminecherraben username: TahaAmineCherraben perfs: horde: rating: 2559 progress: 55 - id: yakov25 username: Yakov25 perfs: horde: rating: 2556 progress: 4 - id: stubenfisch username: Stubenfisch perfs: horde: rating: 2548 progress: -41 patron: true patronColor: 10 - id: rayholt username: RayHolt perfs: horde: rating: 2543 progress: -37 - id: aar_77on username: Aar_77on perfs: horde: rating: 2524 progress: -16 online: true racingKings: - id: royalmaniac username: RoyalManiac perfs: racingKings: rating: 2522 progress: -12 patron: true patronColor: 10 - id: m-a01 username: M-A01 perfs: racingKings: rating: 2448 progress: 7 - id: r2300 username: R2300 perfs: racingKings: rating: 2422 progress: 15 - id: playanotherone username: playanotherone perfs: racingKings: rating: 2384 progress: 0 - id: seth_777 username: seth_777 perfs: racingKings: rating: 2383 progress: -38 - id: cybershredder username: CyberShredder perfs: racingKings: rating: 2371 progress: 0 online: true - id: oscarsm80 username: OSCARSM80 perfs: racingKings: rating: 2353 progress: 30 - id: gleb_momot username: Gleb_Momot perfs: racingKings: rating: 2319 progress: -7 - id: controllerofficial77 username: ControllerOfficial77 perfs: racingKings: rating: 2313 progress: -26 patron: true patronColor: 1 - id: cr0c0d1l3 username: cr0c0d1l3 perfs: racingKings: rating: 2299 progress: -33 users-getOneLeaderboard.json: value: users: - id: ana username: Ana perfs: blitz: rating: 2512 progress: 0 title: WCM - id: elena username: Elena perfs: blitz: rating: 2389 progress: 0 title: WNM patron: true patronColor: 1 - id: lola username: Lola perfs: blitz: rating: 2366 progress: 0 title: CM users-getUserPublicData.json: value: id: mary username: Mary perfs: bullet: games: 1593 rating: 1119 rd: 66 prog: -27 blitz: games: 1560 rating: 1145 rd: 56 prog: -29 rapid: games: 358 rating: 1124 rd: 83 prog: -8 classical: games: 414 rating: 946 rd: 110 prog: 33 prov: true correspondence: games: 692 rating: 1083 rd: 56 prog: 23 chess960: games: 600 rating: 1104 rd: 92 prog: 22 kingOfTheHill: games: 454 rating: 1077 rd: 54 prog: 43 threeCheck: games: 159 rating: 1018 rd: 108 prog: -6 antichess: games: 114 rating: 937 rd: 49 prog: -51 atomic: games: 1261 rating: 1073 rd: 45 prog: -6 horde: games: 83 rating: 1115 rd: 45 prog: -28 crazyhouse: games: 1556 rating: 965 rd: 49 prog: 2 puzzle: games: 60 rating: 1033 rd: 45 prog: -36 flair: people.open-hands-medium-light-skin-tone createdAt: 1775221588473 profile: flag: GW location: Mary City bio: A normal working day for modern industry only dates from the Factory Act of 1833, which included cotton, wool, flax, and silk factories. Nothing is more characteristic of the spirit of capital than the history of the English Factory Acts from 1833 to 1864. fideRating: 1400 uscfRating: 1035 ecfRating: 1084 rcfRating: 910 cfcRating: 992 dsbRating: 1129 links: |- https://en.wikipedia.org/wiki/Srinivasa_Ramanujan https://en.wikipedia.org/wiki/Charles_Darwin https://lichess.org https://reddit.com/r/chess https://en.wikipedia.org/wiki/Noam_Chomsky seenAt: 1776880668894 playTime: total: 15514 tv: 0 url: https://lichess.org/@/Mary count: all: 9795 rated: 7836 draw: 904 loss: 4408 win: 4483 bookmark: 0 playing: 0 import: 0 me: 1 followable: true following: true blocking: false users-getRatingHistoryOfAUser.json: value: - name: UltraBullet points: [] - name: Bullet points: - - 2026 - 3 - 3 - 1193 - - 2026 - 3 - 6 - 1195 - - 2026 - 3 - 9 - 1262 - - 2026 - 3 - 12 - 1150 - - 2026 - 3 - 15 - 1213 - - 2026 - 3 - 18 - 1120 - - 2026 - 3 - 21 - 1220 - - 2026 - 3 - 24 - 1115 - - 2026 - 3 - 27 - 1076 - - 2026 - 3 - 30 - 1219 - - 2026 - 4 - 3 - 1231 - - 2026 - 4 - 6 - 1138 - - 2026 - 4 - 9 - 1134 - - 2026 - 4 - 12 - 1220 - name: Blitz points: - - 2026 - 3 - 3 - 697 - - 2026 - 3 - 5 - 674 - - 2026 - 3 - 7 - 671 - - 2026 - 3 - 9 - 717 - - 2026 - 3 - 11 - 838 - - 2026 - 3 - 13 - 807 - - 2026 - 3 - 15 - 862 - - 2026 - 3 - 17 - 919 - - 2026 - 3 - 19 - 900 - - 2026 - 3 - 21 - 900 - - 2026 - 3 - 23 - 1005 - - 2026 - 3 - 25 - 992 - - 2026 - 3 - 27 - 870 - - 2026 - 3 - 29 - 933 - - 2026 - 4 - 1 - 1027 - - 2026 - 4 - 3 - 983 - - 2026 - 4 - 5 - 1119 - - 2026 - 4 - 7 - 1023 - - 2026 - 4 - 9 - 1137 - - 2026 - 4 - 11 - 1019 - - 2026 - 4 - 13 - 1098 - name: Rapid points: - - 2026 - 3 - 3 - 737 - - 2026 - 3 - 9 - 750 - - 2026 - 3 - 15 - 784 - - 2026 - 3 - 21 - 859 - - 2026 - 3 - 27 - 852 - - 2026 - 4 - 3 - 959 - - 2026 - 4 - 9 - 1000 - name: Classical points: - - 2026 - 3 - 3 - 988 - - 2026 - 3 - 10 - 1069 - - 2026 - 3 - 17 - 963 - - 2026 - 3 - 24 - 946 - - 2026 - 4 - 1 - 907 - - 2026 - 4 - 8 - 864 - name: Correspondence points: - - 2026 - 3 - 3 - 1474 - - 2026 - 3 - 10 - 1270 - - 2026 - 3 - 17 - 1291 - - 2026 - 3 - 24 - 1307 - - 2026 - 4 - 1 - 1229 - - 2026 - 4 - 8 - 1058 - name: Crazyhouse points: - - 2026 - 3 - 3 - 1158 - - 2026 - 3 - 6 - 1196 - - 2026 - 3 - 9 - 1120 - - 2026 - 3 - 12 - 1170 - - 2026 - 3 - 15 - 1106 - - 2026 - 3 - 18 - 1045 - - 2026 - 3 - 21 - 1156 - - 2026 - 3 - 24 - 1066 - - 2026 - 3 - 27 - 1061 - - 2026 - 3 - 30 - 1056 - - 2026 - 4 - 3 - 1074 - - 2026 - 4 - 6 - 1014 - - 2026 - 4 - 9 - 931 - - 2026 - 4 - 12 - 965 - name: Chess960 points: - - 2026 - 3 - 3 - 1035 - - 2026 - 3 - 8 - 957 - - 2026 - 3 - 13 - 1084 - - 2026 - 3 - 18 - 1043 - - 2026 - 3 - 23 - 1055 - - 2026 - 3 - 28 - 1118 - - 2026 - 4 - 3 - 1139 - - 2026 - 4 - 8 - 1146 - - 2026 - 4 - 13 - 1194 - name: King of the Hill points: - - 2026 - 3 - 3 - 1346 - - 2026 - 3 - 5 - 1405 - - 2026 - 3 - 7 - 1377 - - 2026 - 3 - 9 - 1259 - - 2026 - 3 - 11 - 1290 - - 2026 - 3 - 13 - 1269 - - 2026 - 3 - 15 - 1227 - - 2026 - 3 - 17 - 1338 - - 2026 - 3 - 19 - 1321 - - 2026 - 3 - 21 - 1155 - - 2026 - 3 - 23 - 1220 - - 2026 - 3 - 25 - 1132 - - 2026 - 3 - 27 - 1143 - - 2026 - 3 - 29 - 1099 - - 2026 - 4 - 1 - 1143 - - 2026 - 4 - 3 - 1211 - - 2026 - 4 - 5 - 1182 - - 2026 - 4 - 7 - 1219 - - 2026 - 4 - 9 - 1171 - - 2026 - 4 - 11 - 1105 - - 2026 - 4 - 13 - 1162 - name: Three-Check points: - - 2026 - 3 - 3 - 1575 - - 2026 - 3 - 7 - 1371 - - 2026 - 3 - 11 - 1388 - - 2026 - 3 - 15 - 1379 - - 2026 - 3 - 19 - 1245 - - 2026 - 3 - 23 - 1358 - - 2026 - 3 - 27 - 1234 - - 2026 - 4 - 1 - 1113 - - 2026 - 4 - 5 - 1161 - - 2026 - 4 - 9 - 1062 - - 2026 - 4 - 13 - 1042 - name: Antichess points: - - 2026 - 3 - 3 - 1126 - - 2026 - 3 - 10 - 1200 - - 2026 - 3 - 17 - 1147 - - 2026 - 3 - 24 - 1030 - - 2026 - 4 - 1 - 1074 - - 2026 - 4 - 8 - 1065 - name: Atomic points: - - 2026 - 3 - 3 - 1576 - - 2026 - 3 - 5 - 1399 - - 2026 - 3 - 7 - 1359 - - 2026 - 3 - 9 - 1416 - - 2026 - 3 - 11 - 1364 - - 2026 - 3 - 13 - 1405 - - 2026 - 3 - 15 - 1364 - - 2026 - 3 - 17 - 1343 - - 2026 - 3 - 19 - 1365 - - 2026 - 3 - 21 - 1385 - - 2026 - 3 - 23 - 1236 - - 2026 - 3 - 25 - 1280 - - 2026 - 3 - 27 - 1156 - - 2026 - 3 - 29 - 1191 - - 2026 - 4 - 1 - 1124 - - 2026 - 4 - 3 - 1122 - - 2026 - 4 - 5 - 1163 - - 2026 - 4 - 7 - 1131 - - 2026 - 4 - 9 - 1053 - - 2026 - 4 - 11 - 1169 - - 2026 - 4 - 13 - 1140 - name: Horde points: - - 2026 - 3 - 3 - 701 - - 2026 - 3 - 6 - 853 - - 2026 - 3 - 9 - 919 - - 2026 - 3 - 12 - 844 - - 2026 - 3 - 15 - 826 - - 2026 - 3 - 18 - 959 - - 2026 - 3 - 21 - 851 - - 2026 - 3 - 24 - 859 - - 2026 - 3 - 27 - 1012 - - 2026 - 3 - 30 - 1043 - - 2026 - 4 - 3 - 1108 - - 2026 - 4 - 6 - 1138 - - 2026 - 4 - 9 - 986 - - 2026 - 4 - 12 - 1121 - name: Racing Kings points: [] - name: Puzzles points: - - 2026 - 3 - 3 - 1123 - - 2026 - 3 - 7 - 1094 - - 2026 - 3 - 11 - 1268 - - 2026 - 3 - 15 - 1223 - - 2026 - 3 - 19 - 1232 - - 2026 - 3 - 23 - 1085 - - 2026 - 3 - 27 - 1021 - - 2026 - 4 - 1 - 1146 - - 2026 - 4 - 5 - 1076 - - 2026 - 4 - 9 - 965 - - 2026 - 4 - 13 - 1108 users-getPerformanceStatisticsOfAUser.json: value: user: name: thibault perf: glicko: rating: 1791.48 deviation: 47.84 nb: 11614 progress: -1 rank: 147171 percentile: 77.6 stat: highest: int: 1970 at: '2022-02-23T13:44:54.633Z' gameId: Blpjmhnf lowest: int: 1385 at: '2015-08-05T10:13:41.326Z' gameId: tgbRykg2 bestWins: results: - opRating: 2239 opId: name: aqua21 flair: objects.postal-horn id: aqua21 at: '2020-02-15T19:13:05.329Z' gameId: UxNJmMXz - opRating: 2163 opId: name: Staffan67 id: staffan67 at: '2022-12-28T10:54:21.597Z' gameId: 9IMlwEv1 - opRating: 2120 opId: name: Heissenberger id: heissenberger at: '2021-10-25T08:26:27.155Z' gameId: 2buPRuV8 - opRating: 2051 opId: name: Stas235 id: stas235 at: '2021-11-06T18:55:53.728Z' gameId: VLxCVzDY - opRating: 2040 opId: name: Harryz-77 id: harryz-77 at: '2021-11-03T17:39:40.181Z' gameId: eCgiYDS7 worstLosses: results: - opRating: 995 opId: name: dahupetitjoueur id: dahupetitjoueur at: '2017-04-12T14:31:58.002Z' gameId: 7zyddy2c - opRating: 1121 opId: name: Tinkugupta1011 id: tinkugupta1011 at: '2022-10-22T03:36:35.447Z' gameId: CCyyGKmD - opRating: 1146 opId: name: chemkhihabib id: chemkhihabib at: '2016-06-01T09:31:09.694Z' gameId: XatMm3RO - opRating: 1166 opId: name: Bottios title: BOT id: bottios at: '2018-12-14T09:22:52.633Z' gameId: 3fke4MHX - opRating: 1182 opId: name: skanerterry id: skanerterry at: '2016-06-09T15:32:10.474Z' gameId: n4ViqGlp count: all: 12101 rated: 11492 win: 5726 loss: 5802 draw: 573 tour: 1601 berserk: 52 opAvg: 1706.62 seconds: 3767400 disconnects: 9 resultStreak: win: cur: v: 0 max: v: 11 from: at: '2018-10-19T10:02:05.144Z' gameId: ycmyqK6e to: at: '2018-10-19T12:25:31.868Z' gameId: 3PwQXIBN loss: cur: v: 2 from: at: '2026-05-13T08:23:38.653Z' gameId: nrO6iTZ3 to: at: '2026-05-13T08:32:58.61Z' gameId: fSJcMeCL max: v: 19 from: at: '2018-03-09T23:54:54.771Z' gameId: iAJe1M8f to: at: '2018-03-16T20:52:03.611Z' gameId: 7CZ1SEF5 playStreak: nb: cur: v: 0 max: v: 115 from: at: '2024-10-18T11:32:12.142Z' gameId: l819pRNp to: at: '2024-10-18T20:54:30.256Z' gameId: 1HeDeGbe time: cur: v: 0 max: v: 23231 from: at: '2024-10-18T11:32:12.142Z' gameId: l819pRNp to: at: '2024-10-18T20:54:30.256Z' gameId: 1HeDeGbe lastDate: '2026-05-13T08:32:58.61Z' users-getUserActivity.json: value: - interval: start: 1778803200000 end: 1778889600000 follows: in: ids: - chrisc5mb - interval: start: 1778716800000 end: 1778803200000 puzzles: score: win: 1 loss: 0 draw: 0 rp: before: 1999 after: 2009 follows: in: ids: - lisanthm - pureaperionsq - arda_kslc21 - teso22 - ww0ut - vidhathathreya - shirakuchess - interval: start: 1778630400000 end: 1778716800000 games: blitz: win: 0 loss: 2 draw: 0 rp: before: 1805 after: 1791 puzzles: score: win: 1 loss: 0 draw: 0 rp: before: 1986 after: 1999 follows: in: ids: - sathvik_nannuri - raphael_171123 - l3azwa - orion_banerjee - leftfreezingdoor - shapovalov1 - tolbrandir - jhansirani - mailtoadvik - battledudes606dbdb - hdjjkf - advit_bhat - j_harshiv - bobybot - jackhlay nb: 18 - interval: start: 1778544000000 end: 1778630400000 puzzles: score: win: 1 loss: 0 draw: 0 rp: before: 1978 after: 1986 follows: in: ids: - xinyilovechess - kushnorris - enrigo93 - zanycolourfulwindow - pet_your_enemy - advikrnair - rom1_chess - gleb1234567899 - masterr_67 - gknuchamp - mr_checkmate007 - karpov005 - pragyanreddy stream: true - interval: start: 1778457600000 end: 1778544000000 games: blitz: win: 1 loss: 0 draw: 0 rp: before: 1799 after: 1805 follows: in: ids: - kolya228322 - uluthrek - sixtyseven_67 - jilbo1234 - onemorekiwi - laskeristhebomb - vihariuppalapati - alexhuerta - fjcruiser - thenameisstan - bhoomin - zeus555 - ramrachit_2204 - kishalay_m - dayronf1 - interval: start: 1778371200000 end: 1778457600000 puzzles: score: win: 13 loss: 2 draw: 0 rp: before: 1886 after: 1978 follows: in: ids: - coolcoldice3 - johndoe5743 - kemalbaitemir - emmanuelrv1 - qlibet - jay63 - rchess14102013 - r-a1h8h1a8 - tidahy - tikhon_loud - danielgg14 - chessking20122026 - h4zuop - schiffskoch - nilusha1984 - interval: start: 1778284800000 end: 1778371200000 puzzles: score: win: 1 loss: 0 draw: 0 rp: before: 1872 after: 1886 follows: in: ids: - h4zuop - thebeguiler - rawlyfearful - brilliant-siesta - r01-f2f7 - iamsubhajitroy - akshayksingh - nel_2000 - feshom - remotecon_troller - yonilavo - basitbc02 puzzles-getDailyPuzzle.json: value: game: id: MmhaEJoJ perf: key: classical name: Classical rated: true players: - name: MuhCiri id: muhciri color: white rating: 1915 - name: saadatinia id: saadatinia color: black rating: 1798 pgn: e4 e5 Nf3 Nc6 Bc4 h6 c3 f5 d3 fxe4 clock: 15+15 puzzle: id: u3GaW rating: 1938 plays: 127146 solution: - f3e5 - g8f6 - e5f7 - d8e7 - f7h8 themes: - opening - long - fork - advantage fen: r1bqkbnr/pppp2p1/2n4p/4p3/2B1p3/2PP1N2/PP3PPP/RNBQK2R w KQkq - 0 1 lastMove: f5e4 initialPly: 9 puzzles-getPuzzleById.json: value: game: id: AHGPPS44 perf: key: blitz name: Blitz rated: true players: - name: EricRosen title: IM flair: travel-places.ambulance patron: true patronColor: 10 id: ericrosen color: white rating: 2642 - name: Anton_Volovikov title: FM id: anton_volovikov color: black rating: 2619 pgn: d4 d5 Bf4 Bf5 Nf3 e6 c4 Nf6 Nc3 Bd6 Bg3 Nbd7 e3 O-O c5 Bxg3 hxg3 h6 Bd3 Ne4 Qc2 Ndf6 Nd2 Nxc3 Bxf5 exf5 bxc3 Ne4 Nxe4 fxe4 Rb1 b6 Rh5 bxc5 Rb5 cxd4 cxd4 c6 Qxc6 Rc8 Qxd5 Qf6 Qxe4 Rc1+ Ke2 Qa6 Qd5 Rc2+ Kf3 g6 Rxh6 Qf6+ Ke4 clock: 3+0 puzzle: id: PSjmf rating: 2652 plays: 806 solution: - g8g7 - d5e5 - f6e5 themes: - endgame - master - short - masterVsMaster - crushing fen: 5rk1/p4p2/5qpR/1R1Q4/3PK3/4P1P1/P1r2PP1/8 b - - 1 1 lastMove: f3e4 initialPly: 52 puzzles-getNewPuzzle.json: value: game: id: mAe3fKx5 perf: key: blitz name: Blitz rated: true players: - name: Lenshrr id: lenshrr color: white rating: 1948 - name: Wmendes id: wmendes color: black rating: 1938 pgn: e4 c5 c3 Nc6 d4 cxd4 cxd4 e6 Nc3 Nf6 e5 Nd5 Nxd5 exd5 Nf3 d6 Be2 dxe5 dxe5 Be7 O-O O-O Bf4 Be6 Qb3 Rb8 Rad1 Qa5 Nd4 Nxd4 Rxd4 Rfc8 Qg3 Rc2 Bh6 Bf8 Bg4 Rxb2 Bxe6 fxe6 Rg4 g6 Bc1 Rxa2 h4 Rc8 h5 Rc3 f3 Qc5+ Kh2 Rxc1 hxg6 h6 g7 Be7 Qf4 Rxf1 clock: 5+0 puzzle: id: SLR3a rating: 1894 plays: 13601 solution: - f4f7 - g8f7 - g7g8q themes: - advancedPawn - short - attraction - promotion - endgame - mateIn2 initialPly: 57 puzzles-getMultiplePuzzlesAtOnce.json: value: puzzles: - game: id: lzdAM1jJ perf: key: classical name: Classical rated: true players: - name: Abubakar flair: people.woman-mountain-biking-dark-skin-tone id: abubakar color: white rating: 1698 - name: Ivan title: WGM id: ivan color: black rating: 1637 pgn: d4 d6 c4 Nd7 e3 e5 Nf3 h6 Bd3 Ngf6 Bc2 Be7 O-O c6 Ne1 Nf8 g3 g5 dxe5 dxe5 Qxd8+ Bxd8 c5 Bh3 Ng2 h5 Nd2 h4 Nf3 hxg3 fxg3 e4 Nxg5 Bxg2 Kxg2 Ne6 Nxe4 Nxe4 Bxe4 Nxc5 Bc2 Be7 b4 Ne6 Bb3 Bxb4 Bb2 Rh5 Bd1 Rd5 a3 Bc5 e4 clock: 15+15 puzzle: id: 6ewuj rating: 1123 plays: 24845 solution: - d5d2 - g2h1 - d2b2 themes: - middlegame - fork - advantage - short initialPly: 52 - game: id: 6OH3Wycp perf: key: rapid name: Rapid rated: true players: - name: Hui patron: true patronColor: 1 id: hui color: white rating: 1954 - name: Pedro flair: people.person-walking-dark-skin-tone patron: true patronColor: 1 id: pedro color: black rating: 1823 pgn: e4 c5 Bc4 e6 Qh5 Nf6 Qf3 Nc6 Nc3 Nd4 Qd1 d5 exd5 exd5 Bb5+ Nxb5 Nxb5 Bd7 a4 a6 Nc3 d4 Qe2+ Be7 Ne4 Nxe4 Qxe4 Bc6 Qg4 O-O d3 Qd5 f3 Rfe8 Ne2 Qe5 Kf2 Bd6 Ng3 Qe7 Bd2 Bd7 Qg5 Bxg3+ Qxg3 clock: 15+10 puzzle: id: 1ygt6 rating: 1124 plays: 3186 solution: - e7e2 - f2g1 - e2d2 themes: - middlegame - fork - short - crushing initialPly: 44 glicko: rating: 1756 deviation: 51.98 puzzles-solveMultiplePuzzlesAtOnce.json: value: puzzles: - game: id: vgDNN1oc perf: key: rapid name: Rapid rated: true players: - name: Hui patron: true patronColor: 1 id: hui color: white rating: 1890 - name: Guang flair: people.rightwards-hand-medium-skin-tone id: guang color: black rating: 1873 pgn: e4 e5 Nf3 d6 d4 Bg4 dxe5 Bxf3 gxf3 Be7 exd6 Bxd6 f4 Nc6 Nc3 Nge7 a3 O-O Rg1 Ng6 Nd5 Nce7 Qg4 Nxd5 exd5 Qe7+ Be2 Qe4 f5 Qxg4 Rxg4 Ne5 Re4 Rae8 Bd2 Nd7 Rxe8 Rxe8 Be3 b6 O-O-O Bxh2 Bb5 Re7 Bg5 f6 Be3 Ne5 Rh1 Ng4 Be2 h5 clock: 10+0 puzzle: id: 2wzBW rating: 1374 plays: 12470 solution: - e2g4 - h5g4 - h1h2 themes: - endgame - advantage - short - capturingDefender initialPly: 51 - game: id: YwJ3U1fZ perf: key: rapid name: Rapid rated: true players: - name: Jiang flair: people.woman-cook-medium-light-skin-tone id: jiang color: white rating: 2084 - name: Svetlana id: svetlana color: black rating: 2043 pgn: d4 Nf6 c4 e6 Nf3 d5 g3 dxc4 Ne5 Bb4+ Nc3 b5 Bg2 Nd5 O-O f6 e4 Nxc3 bxc3 Bxc3 clock: 10+0 puzzle: id: 4seCY rating: 1377 plays: 22179 solution: - d1h5 - g7g6 - e5g6 - h7g6 - h5h8 themes: - middlegame - long - advantage initialPly: 19 glicko: rating: 1756.46 deviation: 54.13 rounds: - id: 6ewuj win: true ratingDiff: 0 puzzles-getYourPuzzleActivity.json: value: date: 1778812618669 win: true puzzle: id: 6ewuj rating: 1122 plays: 24846 solution: - d5d2 - g2h1 - d2b2 themes: - middlegame - fork - advantage - short fen: r3k3/pp3p2/2p1n3/2br4/4P3/P5P1/1B4KP/R2B1R2 b q - 0 1 lastMove: e3e4 puzzles-getPuzzlesToReplay.json: value: replay: days: 90 theme: mix nb: 3 remaining: - EMJ4a - 9bZjC - 5JGeN angle: key: mix name: Puzzle Themes desc: A mix of everything. You don't know what to expect, so be ready for anything! Just like in real games. puzzles-getYourPuzzleDashboard.json: value: days: 30 global: nb: 11 firstWins: 8 replayWins: 0 puzzleRatingAvg: 1489 performance: 1716 themes: middlegame: theme: Middlegame results: nb: 8 firstWins: 6 replayWins: 0 puzzleRatingAvg: 1529 performance: 1779 fork: theme: Fork results: nb: 2 firstWins: 2 replayWins: 0 puzzleRatingAvg: 1150 performance: 1650 opening: theme: Opening results: nb: 2 firstWins: 1 replayWins: 0 puzzleRatingAvg: 1112 performance: 1112 kingsideAttack: theme: Kingside attack results: nb: 2 firstWins: 1 replayWins: 0 puzzleRatingAvg: 1336 performance: 1336 discoveredAttack: theme: Discovered attack results: nb: 2 firstWins: 1 replayWins: 0 puzzleRatingAvg: 1801 performance: 1801 endgame: theme: Endgame results: nb: 1 firstWins: 1 replayWins: 0 puzzleRatingAvg: 1922 performance: 2422 pin: theme: Pin results: nb: 1 firstWins: 1 replayWins: 0 puzzleRatingAvg: 1487 performance: 1987 defensiveMove: theme: Defensive move results: nb: 1 firstWins: 1 replayWins: 0 puzzleRatingAvg: 1403 performance: 1903 puzzles-getStormDashboardOfPlayer.json: value: high: day: 0 week: 0 month: 0 allTime: 33 days: - _id: 2025/2/8 score: 1 moves: 1 errors: 0 combo: 1 time: 180 highest: 1020 runs: 1 - _id: 2025/1/23 score: 17 moves: 35 errors: 3 combo: 17 time: 164 highest: 1314 runs: 1 - _id: 2024/12/11 score: 16 moves: 41 errors: 6 combo: 20 time: 141 highest: 1315 runs: 1 puzzles-createAndJoinPuzzleRace.json: value: id: KgOHb url: https://lichess.org/racer/KgOHb puzzles-getRaceResults.json: value: id: nkEw7 owner: lichess players: - name: Hossienshirmohamady flair: activity.yo-yo id: hossienshirmohamady score: 62 - name: Dswift1_Makar-1 flair: activity.lichess-variant-crazyhouse id: dswift1_makar-1 score: 41 - name: ManavKumar1865 id: manavkumar1865 score: 50 - name: sir_john_doe id: sir_john_doe score: 40 - name: BubblyBakerHound score: 6 - name: ttrv flair: activity.trophy patron: true patronColor: 10 id: ttrv score: 37 - name: FairyGliedt id: fairygliedt score: 11 - name: BecomingWillingRuyLopez score: 29 - name: EternalDrummerSalmon score: 0 - name: AdroitLiterateCoder score: 0 puzzles: - id: oiHY2 fen: 1r6/7R/1n2p2p/p2kN3/3P3P/PPp5/2P5/2K5 b - - 1 38 line: d5d4 e5c6 d4e4 c6b8 rating: 1016 - id: 3EzyJ fen: 8/p3r1pp/1pp5/2p5/3k4/2RP4/PP3KPP/8 b - - 5 38 line: e7e3 c3c4 d4d3 c4c3 d3d2 c3e3 rating: 1031 - id: uclhP fen: 1n1r2k1/N2Prppp/1p6/2p5/2P1p3/P6B/1P3P2/3R1K2 b - - 0 29 line: b8d7 a7c6 g8f8 c6d8 rating: 1062 - id: A6eYH fen: r4r2/1p2q3/p1p1p1pQ/3nP3/P5k1/4P3/1P4K1/R4R2 b - - 1 31 line: e7g5 h6h3 rating: 1088 - id: KCUmn fen: r1bq1rk1/pppnBppp/2n1p3/3p4/3P3Q/1N1B1P2/PPP3PP/R3K1NR b KQ - 0 11 line: d8e7 h4h7 rating: 1129 - id: V6fYA fen: 5rk1/pp1b2pp/2p4b/2nprp2/5N1P/P1NB1PP1/1PP5/1K2RR2 b - - 1 22 line: f8d8 e1e5 h6f4 g3f4 c5d3 c2d3 rating: 1161 - id: BLlhu fen: r4rk1/1b1n1ppp/p2p4/1pqN1PP1/8/5Q2/PPPR3P/2K2B1R b - - 4 17 line: d7b6 d5e7 g8h8 f3b7 rating: 1190 - id: wGzcz fen: r1b2rk1/5pp1/1q2pn1p/n2p4/1ppP2N1/4P1P1/PPQ2PP1/1BR1RNK1 b - - 4 19 line: b4b3 g4f6 g7f6 c2h7 rating: 1272 - id: koNaI fen: 4r3/pk1nr3/1pp1q2p/4n3/4QB2/1PP5/P5PP/3R1R1K b - - 9 35 line: e5g4 e4e6 e7e6 d1d7 rating: 1291 - id: UrPl5 fen: 1k5r/p6P/1p4p1/1Pp1Pr2/2P5/5NP1/1P4K1/7R b - - 4 31 line: f5h5 h1h5 g6h5 f3g5 rating: 1309 - id: UOc8p fen: r3qr2/6pk/3b1p1p/1p1P1N2/p1n3RQ/4P2P/3R1PP1/6K1 b - - 9 30 line: f8f7 g4g7 f7g7 h4h6 h7g8 h6g7 rating: 1327 - id: lz9D3 fen: 8/pp6/8/2P5/1Pk4p/P7/6K1/8 b - - 2 45 line: c4b3 b4b5 b3c4 c5c6 b7c6 b5c6 rating: 1414 - id: 6kFcn fen: r1b2r2/5pkp/1qpQ1np1/2n1p3/p3P1P1/P1N2N1P/1PP1BP2/2KR3R b - - 0 17 line: c5e4 c3e4 f6e4 d6e5 rating: 1431 - id: 6tr7c fen: 2q1r1k1/5pp1/2p4p/3p1N2/3PR2P/2P3P1/2Q2PK1/8 b - - 0 31 line: e8e4 c2e4 d5e4 f5e7 g8h7 e7c8 rating: 1445 - id: mkyEZ fen: 3k1r2/1p3p2/p2P1Q2/P1p5/2P1P3/8/P5PK/2q5 b - - 2 39 line: d8d7 f6e7 d7c6 e7c7 rating: 1459 - id: fX84W fen: 2b2rk1/4b1pp/1q3p2/1p1BN3/1p3Q2/7P/PPP3PK/5R2 b - - 1 25 line: g8h8 e5g6 h7g6 f4h4 rating: 1479 - id: MI2jt fen: 5rk1/1rpq2b1/Q1np2pp/3Npp2/2P1P3/3P2P1/P3NPBP/5RK1 b - - 0 20 line: b7a7 a6c6 d7c6 d5e7 g8h8 e7c6 rating: 1559 - id: Yz0fD fen: r1bqkb1r/pp1n1ppp/5n2/1B1pp3/3P4/2N1PN2/PP3PPP/R1BQK2R b KQkq - 1 7 line: f8d6 d4e5 d6e5 f3e5 rating: 1575 - id: gLXCp fen: r1b2rk1/ppq3b1/2pp4/4pP2/3P2p1/2PB2Pn/PP1N2K1/R2Q2BR b - - 0 24 line: c8f5 d3f5 f8f5 d1g4 h3f4 g3f4 rating: 1588 - id: jAqV7 fen: 6k1/1ppr1pp1/pb5B/8/P1Q5/2P4P/1P3qPK/R7 b - - 0 30 line: g7h6 c4g4 g8f8 g4d7 f2f4 h2h1 rating: 1604 - id: EhkBX fen: 3r2k1/pp4pp/5p2/q2Rp3/2Q5/1P6/P3RPPP/6K1 b - - 0 27 line: a5d5 e2d2 d5c4 d2d8 g8f7 b3c4 rating: 1615 - id: ECY0A fen: 4rrk1/1p3p2/5q2/p2pp3/4N3/1BPP2R1/Pb3PP1/1N4K1 b - - 1 27 line: f6g7 e4f6 g8h8 g3h3 g7h6 h3h6 rating: 1695 - id: XmDE6 fen: rR4k1/p1p1brp1/2q2pNp/2n1p3/3p2Q1/3P2BP/2P2PP1/1R4K1 b - - 5 24 line: a8b8 b1b8 e7f8 b8f8 f7f8 g6e7 rating: 1707 - id: RWGfE fen: 3rkbr1/pp3p1p/5p2/2p5/2P1P1b1/q2n1N2/P1QBB1PP/1R3K1R b - - 11 19 line: b7b6 b1b3 a3a4 e2d3 g4f3 g2f3 rating: 1726 - id: 52zOY fen: 8/p1r2k1p/1p3p2/1P1p4/1QbBnPqN/6P1/P6P/4R1K1 b - - 2 40 line: e4g3 h2g3 g4g3 h4g2 rating: 1737 - id: fT2rI fen: 8/4n1p1/p2BPk1p/PB1p4/1P1P4/2P2K2/3b4/8 b - - 0 45 line: a6b5 d6e7 f6e7 a5a6 rating: 1753 - id: YGDJo fen: 5n2/p1n5/1pP1kqp1/7p/1P3N2/P1Q1P3/7K/8 b - - 13 40 line: e6f5 e3e4 f5f4 c3f6 rating: 1829 - id: rH2VZ fen: r3kb1r/1pp2pp1/p1n2q1p/4N3/Q2PB1b1/2P1P1P1/PP3PP1/R3K2R b KQkq - 1 13 line: g4d7 e5d7 e8d7 d4d5 b7b5 d5c6 rating: 1875 - id: aKemL fen: r1b1kbnr/ppppqppp/6n1/1N2P3/3P4/8/PPP1QPPP/R1B1KB1R b KQkq - 4 8 line: d7d6 b5c7 e8d8 c7a8 rating: 1899 - id: pYMPH fen: r1bqkb1r/p1pn3p/2p1pp2/3p2B1/3N4/3P4/PPP2PPP/RN1QK2R b KQkq - 1 9 line: f6g5 d1h5 e8e7 d4c6 e7d6 c6d8 rating: 1925 - id: zwwhE fen: r7/2P2pkp/4p1p1/8/3bN3/1R4PP/5PK1/8 b - - 0 39 line: a8c8 e4d6 c8c7 d6e8 g7g8 e8c7 rating: 1940 - id: pe36T fen: 6k1/pbp1R1pp/1p6/8/2P3P1/1PKB4/P4r2/8 b - - 4 36 line: f2f7 e7e8 f7f8 d3h7 g8f7 h7g6 rating: 1967 - id: J1B1v fen: 6k1/4rp2/6p1/1p1p4/3q4/3PpR1Q/2r3PP/4R2K b - - 1 29 line: c2f2 h3c8 g8g7 f3h3 d4h4 h3h4 rating: 1988 - id: GkNRd fen: 3r1rk1/1p2bppp/p1q1b3/2p5/4B3/4BP2/PPP3PP/R1QR2K1 b - - 5 17 line: e6d5 d1d5 d8d5 c2c4 d5d6 e4c6 rating: 2007 - id: SvmVG fen: r2r1k2/p4ppp/3p2n1/6Q1/3N4/2P5/Pq3PPP/1R2R1K1 b - - 1 21 line: d8e8 e1e8 a8e8 d4e6 e8e6 g5d8 e6e8 d8e8 f8e8 b1b2 rating: 2018 - id: Z9d0B fen: r3kb1r/pp3ppp/2p1pq2/3P1n2/5N2/3Q1P2/PPPB2PP/R4RK1 b kq - 0 15 line: c6d5 d3b5 e8d8 b5b7 rating: 2036 - id: vdTvR fen: 3r1r1k/p3q1p1/1pQb2Pp/3Rp1p1/4P3/3R1PB1/P5K1/8 b - - 11 37 line: e7f6 d5d6 d8d6 c6d6 f6d6 d3d6 rating: 2048 - id: glKGa fen: 8/p6p/1pk2pp1/2p1pP2/2NnP1PP/PP2K3/8/8 b - - 1 34 line: d4b3 f5g6 h7g6 h4h5 g6h5 g4h5 rating: 2067 - id: G7VSz fen: 8/1p4R1/4p3/3rPkp1/8/4K1P1/5P2/8 b - - 4 40 line: b7b6 f2f4 g5f4 g3f4 d5e5 f4e5 rating: 2076 - id: sF6cP fen: 3rr1k1/2p2ppp/pp2bq2/2n5/7P/2N5/PPPR1QP1/1K3B1R b - - 0 22 line: e6a2 b1a2 d8d2 f2d2 rating: 2089 - id: 7YkHn fen: 4r1k1/p4pN1/1p1qr2p/2pn4/1P1p3R/P4PP1/3Q1PK1/7R b - - 0 28 line: e6e2 g7e8 e2d2 e8d6 rating: 2104 - id: j7Rjj fen: 1rb1kb1r/3pqp1p/pn3P2/4p1QB/1p6/1P2B3/6PP/5RK1 b k - 0 23 line: e7e6 h5f7 e6f7 g5e5 e8d8 e5b8 rating: 2111 - id: fgreb fen: 6k1/2r4p/1pP5/1P3p2/4p3/2R5/1r3P1P/3R2K1 b - - 1 33 line: b2b5 d1d7 c7d7 c6d7 b5d5 c3c8 rating: 2120 - id: paaOW fen: 2BQ4/6Rp/4P3/2Pp1p1k/br1P4/1p2q3/7K/8 b - - 0 40 line: b4d4 g7h7 h5g4 h7h4 g4f3 h4h3 f3f2 h3e3 rating: 2135 - id: NBV0m fen: r2q1rk1/ppp2pb1/3nb1pp/8/8/2NB1N2/PP1Q1PPP/3RR1K1 b - - 1 15 line: d6c4 d3c4 e6c4 d2f4 rating: 2143 - id: W8D1X fen: 5r2/4N3/p1R1p3/1k1p4/P2P2qr/6P1/1P3P2/5RK1 b - - 0 37 line: b5a4 c6b6 g4g3 f2g3 f8f1 g1f1 rating: 2154 - id: HYmzY fen: 3r3k/5p1p/3P4/8/R3Q3/1P2p3/K1Pq4/8 b - - 8 37 line: d8d6 e4e5 h8g8 a4a8 d6d8 e5g5 rating: 2169 - id: QqJEy fen: r7/7k/p4Qp1/1p3b2/4p3/2P2q2/PPB5/1K1R4 b - - 2 32 line: e4e3 d1d7 h7h6 f6h4 f3h5 h4f4 rating: 2180 - id: 9v76Q fen: 2k5/pb3P2/1pnqp2p/3p3P/P1pP1Pr1/2P5/2PQ4/1R1KR3 b - - 0 28 line: d6f4 d2e2 f4f7 e2g4 rating: 2196 - id: HIjI8 fen: 7r/2pk2pp/p7/P5B1/3Q3P/P4q2/2P1rP2/1R4K1 b - - 4 26 line: d7e6 d4c4 e6f5 c4f7 f5g4 b1b4 e2e4 f7e6 rating: 2211 - id: hIwiE fen: 8/7p/8/5pPP/2p1k3/8/2K5/8 b - - 0 52 line: e4e5 h5h6 e5f4 g5g6 rating: 2224 - id: jN5Ts fen: r4rk1/1R1R3p/5ppq/8/p2QP3/2P5/2P2P2/5K2 b - - 1 33 line: a4a3 d4c4 g8h8 c4c7 h6h1 f1e2 h1e4 e2d2 rating: 2242 - id: 6tSB4 fen: 2r1k2r/3b3p/1p2Rpp1/p7/3p1PQ1/6PK/P1q4P/1N2R3 b k - 0 32 line: d7e6 g4e6 e8f8 e6f6 f8g8 f6e6 rating: 2252 - id: M98Hk fen: 7r/1pq3kp/3pB1pR/2pPb1P1/5r2/pP1Q4/P1P5/1K5R b - - 5 27 line: c7e7 h6h7 h8h7 h1h7 g7f8 h7e7 rating: 2273 - id: z57yq fen: 8/2r3k1/3R2R1/1p2P1p1/6Pp/4r2P/6K1/8 b - - 11 48 line: g7f7 d6f6 f7e8 g6g8 e8d7 f6d6 d7e7 g8g7 e7f8 g7c7 rating: 2282 - id: zPOBo fen: 8/8/7p/1BKPkp1P/b5p1/8/6P1/8 b - - 1 43 line: f5f4 b5a4 f4f3 g2g3 f3f2 a4b5 rating: 2297 - id: 6b1KE fen: r4rk1/pp3ppp/5n1B/7q/2PP4/3B1b2/P1PQ1P1P/R3K1R1 b Q - 2 15 line: h5h2 g1g7 g8h8 d2g5 a8e8 e1d2 h2f2 d2c3 f6e4 d3e4 f2d4 c3d4 rating: 2309 - id: EAPaS fen: 6k1/p6p/1b3N2/1Q4K1/4q3/P5P1/2P1p2P/6r1 b - - 1 38 line: g8g7 b5d7 g7f8 d7c8 f8f7 c8g8 rating: 2337 - id: PJswp fen: 6k1/2p3b1/p3p1q1/1pBrPp2/1Pn1NP2/2P2QR1/P4PKP/2r5 b - - 7 35 line: g6h6 e4f6 g8f7 f6d5 c4d2 f3e3 rating: 2354 - id: fg9uw fen: r3n1k1/p5bp/1pq3p1/2p5/8/1PP2N2/PB2Q1PP/2R2K2 b - - 1 22 line: e8d6 e2e6 g8h8 c1d1 c6e4 e6d6 rating: 2361 - id: UaOV4 fen: r1bq1k1r/pppp1Bpp/2n5/4P1B1/1bQ5/2n2N2/P4PPP/R4K1R b - - 3 12 line: d7d5 c4f4 d8d7 f7e6 f8e8 e6d7 rating: 2374 - id: 6q7pY fen: 8/8/2p5/pp3p1p/2kPpPpP/P1P3P1/1PK5/8 b - - 3 52 line: e4e3 b2b3 c4d5 c2d3 e3e2 c3c4 rating: 2386 - id: WU2iW fen: rnb1rk2/ppp4p/6pb/q3P3/2B1Q3/2P5/P5PP/3R1RK1 b - - 0 20 line: c8f5 f1f5 f8g7 f5f7 g7h8 e4h4 a5b6 g1h1 rating: 2399 - id: ruvnu fen: 2k2Q2/p5p1/2r5/1p3p1p/4q2b/1PP4P/P3p1PB/4R2K b - - 7 35 line: c8b7 f8b8 b7a6 h2g1 c6b6 g1b6 rating: 2413 - id: 09L17 fen: 8/8/1p1P1k2/p4P1p/1P2K3/8/8/8 b - - 0 55 line: a5b4 e4d5 b4b3 d6d7 f6e7 d5c6 b3b2 f5f6 e7f7 d7d8q b2b1q d8e7 f7g6 e7g7 g6f5 g7h7 f5f6 h7b1 rating: 2424 - id: sXZNJ fen: 2r3k1/p2P1ppp/5q2/Q2p4/3np3/B3P1Pb/P3BP1P/3R3K b - - 0 28 line: h3d7 e3d4 f6f2 a5e1 rating: 2444 - id: M2T99 fen: 8/k7/3K4/2Q2p2/8/8/6P1/4q3 b - - 1 54 line: a7a6 d6c7 e1g3 c5d6 g3d6 c7d6 rating: 2458 - id: yLsF4 fen: r1b2r2/ppq3k1/2nRp3/5pR1/4Q3/PP4P1/4P2P/7K b - - 0 24 line: g7f6 e4f5 f6e7 g5g7 e7d6 f5d3 rating: 2476 - id: N1FQs fen: 5nk1/p4rpp/1p2p3/4P1QP/1P3P2/P1q5/2pR2P1/2B4K b - - 3 31 line: f7d7 d2d7 f8d7 h5h6 g8f7 h6g7 rating: 2496 startsAt: 1758635599928 finishesAt: 1758635689928 users-getUsersById.json: value: - id: thibault username: thibault perfs: ultraBullet: games: 3 rating: 1688 rd: 358 prog: 0 prov: true bullet: games: 7482 rating: 1785 rd: 86 prog: 12 blitz: games: 11614 rating: 1791 rd: 47 prog: -1 rapid: games: 894 rating: 1907 rd: 72 prog: -34 classical: games: 25 rating: 1858 rd: 241 prog: 48 prov: true correspondence: games: 377 rating: 1942 rd: 165 prog: -12 prov: true chess960: games: 348 rating: 1551 rd: 264 prog: 61 prov: true kingOfTheHill: games: 94 rating: 1744 rd: 284 prog: 14 prov: true threeCheck: games: 66 rating: 1728 rd: 257 prog: 132 prov: true antichess: games: 73 rating: 1465 rd: 248 prog: -56 prov: true atomic: games: 99 rating: 1633 rd: 297 prog: 18 prov: true horde: games: 46 rating: 1592 rd: 278 prog: -20 prov: true racingKings: games: 13 rating: 1552 rd: 329 prog: -75 prov: true crazyhouse: games: 50 rating: 1567 rd: 295 prog: -34 prov: true puzzle: games: 5875 rating: 2009 rd: 66 prog: 0 storm: runs: 44 score: 33 racer: runs: 83 score: 51 streak: runs: 49 score: 33 flair: nature.seedling patron: true patronColor: 10 verified: true createdAt: 1290415680000 profile: bio: I turn coffee into bugs. realName: Thibault Duplessis links: "github.com/ornicar\r\nmas.to/@thibault" seenAt: 1778797754768 playTime: total: 6501837 tv: 18024 - id: maia1 username: maia1 perfs: bullet: games: 213943 rating: 1646 rd: 45 prog: 9 blitz: games: 405348 rating: 1454 rd: 45 prog: -19 rapid: games: 531260 rating: 1554 rd: 45 prog: -12 classical: games: 141761 rating: 1648 rd: 45 prog: 17 correspondence: games: 265 rating: 1527 rd: 219 prog: -18 prov: true title: BOT verified: true createdAt: 1582579972726 profile: bio: "Maia is a human-like neural network chess engine. This version was trained by learning from over 10 million Lichess games between 1100s. \r\n\r\nMaia Chess is an ongoing research project aiming to make a more human-friendly, useful, and fun chess AI. For more information go to maiachess.com. You can also play against @maia5 and @maia9. Developed by\_@ashtonanderson, @sidsen\_and\_@reidmcy." realName: Maia Chess 1100 links: "https://maiachess.com\r\nhttps://github.com/CSSLab/maia-chess\r\nhttps://twitter.com/maiachess" seenAt: 1778812162634 playTime: total: 1241669416 tv: 3031257 human: 975711343 - id: maia5 username: maia5 perfs: bullet: games: 64081 rating: 1619 rd: 45 prog: 0 blitz: games: 182714 rating: 1436 rd: 45 prog: -11 rapid: games: 205434 rating: 1666 rd: 45 prog: 10 classical: games: 49627 rating: 1726 rd: 45 prog: -16 correspondence: games: 18 rating: 1792 rd: 240 prog: 30 prov: true title: BOT verified: true createdAt: 1582580198358 profile: bio: Maia is a human-like neural network chess engine. This version was trained by learning from over 10 million Lichess games between 1500s. Maia Chess is an ongoing research project aiming to make a more human-friendly, useful, and fun chess AI. For more information go to maiachess.com. You can also play @maia1 and @maia9. Developed by @ashtonanderson, @sidsen and @reidmcy. realName: Maia Chess 1500 links: "https://maiachess.com\r\ngithub.com/CSSLab/maia-chess\r\nhttps://twitter.com/maiachess" seenAt: 1778812197532 playTime: total: 562691901 tv: 3859273 human: 410999173 account-getMyProfile.json: value: id: bobby username: Bobby perfs: bullet: games: 17 rating: 1681 rd: 76 prog: -25 blitz: games: 109 rating: 1814 rd: 55 prog: -19 rapid: games: 137 rating: 1761 rd: 88 prog: -2 classical: games: 62 rating: 1619 rd: 114 prog: -37 prov: true correspondence: games: 1 rating: 1804 rd: 48 prog: -43 chess960: games: 6 rating: 1703 rd: 49 prog: -52 kingOfTheHill: games: 17 rating: 1728 rd: 45 prog: -17 threeCheck: games: 576 rating: 1615 rd: 115 prog: -5 prov: true antichess: games: 25 rating: 1661 rd: 48 prog: -20 atomic: games: 118 rating: 1707 rd: 76 prog: -22 horde: games: 80 rating: 1678 rd: 78 prog: -5 crazyhouse: games: 37 rating: 1722 rd: 53 prog: 18 puzzle: games: 31 rating: 1756 rd: 51 prog: -17 createdAt: 1775598473954 profile: flag: VA location: Bobby City bio: The succeeding period, from 1820 to 1830, was notable in England for scientific activity in the domain of Political Economy. It was the time as well of the vulgarising and extending of Ricardo's theory, as of the contest of that theory with the old school. Splendid tournaments were held. What was done then, is little known to the Continent generall fideRating: 1725 uscfRating: 1756 ecfRating: 1569 rcfRating: 1736 cfcRating: 1793 dsbRating: 1794 links: |- https://en.wikipedia.org/wiki/Niels_Bohr https://en.wikipedia.org/wiki/Voltaire https://en.wikipedia.org/wiki/Archimedes https://en.wikipedia.org/wiki/Nelson_Mandela https://en.wikipedia.org/wiki/Euler seenAt: 1778760604182 playTime: total: 19991 tv: 0 url: https://lichess.org/@/Bobby count: all: 2054 rated: 1643 draw: 231 loss: 921 win: 902 bookmark: 0 playing: 0 import: 0 me: 0 followable: true following: false blocking: false account-getMyEmailAddress.json: value: email: bobby@localhost account-getMyPreferences.json: value: prefs: dark: true transp: false bgImg: https://lichess1.org/assets/lifat/background/gallery/bg25.webp is3d: false theme: brown pieceSet: cburnett theme3d: Woodi pieceSet3d: Basic soundSet: standard autoQueen: 2 autoThreefold: 3 takeback: 3 moretime: 3 clockTenths: 1 clockBar: true clockSound: true premove: true animation: 2 pieceNotation: 0 captured: true follow: true highlight: true destination: true coords: 1 replay: 2 challenge: 4 message: 3 submitMove: 0 confirmResign: 1 insightShare: 1 keyboardMove: 0 voiceMove: false zen: 0 ratings: 1 moveEvent: 2 rookCastle: 1 flairs: true sayGG: 0 language: en-US account-getMyKidModeStatus.json: value: kid: false account-setMyKidModeStatus.json: value: ok: true account-getMyTimeline.json: value: entries: - type: team-join data: userId: mary teamId: two-bishops-two-steeds-two-wellhidden-beads date: 1778797290118 - type: team-join data: userId: dmitry teamId: i-dont-think-he-knows-about-second-piece-sac-pip date: 1778796409740 - type: follow data: u1: mary u2: marcel date: 1778794086387 - type: team-join data: userId: yun teamId: this-team-name-has-been-purchased-by-chesscom date: 1778771081591 - type: team-join data: userId: yun teamId: god-sac-the-queen date: 1778743477150 - type: team-join data: userId: yarah teamId: god-sac-the-queen date: 1778741318351 - type: team-join data: userId: kenneth teamId: god-sac-the-queen date: 1778735292388 - type: team-join data: userId: dmitry teamId: god-sac-the-queen date: 1778730999374 - type: team-join data: userId: iryna teamId: god-sac-the-queen date: 1778726337298 - type: team-join data: userId: hui teamId: massive-minority-attack date: 1778725729602 - type: team-join data: userId: pedro teamId: the-prep-leaks-for-itself date: 1778719719539 - type: team-join data: userId: ikem teamId: this-team-name-has-been-purchased-by-chesscom date: 1778715702099 - type: team-create data: userId: kenneth teamId: god-sac-the-queen date: 1778707835827 - type: follow data: u1: marcel u2: abubakar date: 1778697218585 - type: follow data: u1: broadcaster u2: sai date: 1778695013138 users: kenneth: name: Kenneth flair: objects.paperclip id: kenneth broadcaster: name: Broadcaster flair: people.oncoming-fist-dark-skin-tone id: broadcaster yarah: name: Yarah flair: nature.coral patron: true patronColor: 1 id: yarah abubakar: name: Abubakar flair: people.woman-mountain-biking-dark-skin-tone id: abubakar mary: name: Mary flair: people.open-hands-medium-light-skin-tone id: mary pedro: name: Pedro flair: people.person-walking-dark-skin-tone patron: true patronColor: 1 id: pedro ikem: name: Ikem flair: people.astronaut-medium-light-skin-tone patron: true patronColor: 1 id: ikem marcel: name: Marcel flair: objects.guitar id: marcel dmitry: name: Dmitry id: dmitry sai: name: Sai id: sai hui: name: Hui patron: true patronColor: 1 id: hui yun: name: Yun flair: travel-places.globe-showing-europe-africa id: yun iryna: name: Iryna flair: people.call-me-hand-dark-skin-tone id: iryna games-exportOneGame.pgn: value: | [Event "2017 Winter Marathon"] [Site "https://lichess.org/q7ZvsdUF"] [Date "2017.12.28"] [Round "-"] [White "Lance5500"] [Black "TryingHard87"] [Result "1/2-1/2"] [GameId "q7ZvsdUF"] [UTCDate "2017.12.28"] [UTCTime "23:52:30"] [WhiteElo "2389"] [BlackElo "2498"] [WhiteRatingDiff "+4"] [BlackRatingDiff "-4"] [WhiteTitle "LM"] [WhiteBerserk "true"] [Variant "Standard"] [TimeControl "300+3"] [ECO "D31"] [Opening "Semi-Slav Defense: Marshall Gambit"] [Termination "Normal"] [Annotator "lichess.org"] 1. d4 { [%eval 0.08] } 1... d5 { [%eval 0.07] } 2. c4 { [%eval 0.1] } 2... c6 { [%eval 0.14] } 3. Nc3 { [%eval 0.02] } 3... e6 { [%eval 0.09] } 4. e4 { [%eval 0.05] } { D31 Semi-Slav Defense: Marshall Gambit } 4... Nd7?! { (0.05 → 0.85) Inaccuracy. dxe4 was best. } { [%eval 0.85] } (4... dxe4 5. Nxe4 Bb4+ 6. Nc3 c5 7. a3 Bxc3+ 8. bxc3 Nc6 9. Nf3) 5. exd5 { [%eval 0.96] } 5... cxd5 { [%eval 0.98] } 6. cxd5 { [%eval 0.88] } 6... exd5 { [%eval 0.87] } 7. Nxd5 { [%eval 0.81] } 7... Nb6 { [%eval 0.88] } 8. Bb5+ { [%eval 0.82] } 8... Bd7 { [%eval 0.9] } 9. Qe2+ { [%eval 0.79] } 9... Ne7?! { (0.79 → 1.60) Inaccuracy. Be7 was best. } { [%eval 1.6] } (9... Be7 10. Nxb6 axb6 11. Nf3 Nf6 12. O-O O-O 13. Bd2 Bd6 14. Bc4 Re8 15. Qd3 Be6 16. Bxe6) 10. Nxb6 { [%eval 1.46] } 10... Qxb6 { [%eval 1.51] } 11. Bxd7+ { [%eval 1.49] } 11... Kxd7 { [%eval 1.6] } 12. Nf3 { [%eval 1.51] } 12... Qa6 { [%eval 1.5] } 13. Ne5+ { [%eval 1.64] } 13... Ke8 { [%eval 1.9] } 14. Qf3? { (1.90 → 0.44) Mistake. Nd3 was best. } { [%eval 0.44] } (14. Nd3 Rd8) 14... f6 { [%eval 0.61] } 15. Nd3 { [%eval 0.59] } 15... Qc6 { [%eval 0.54] } 16. Qe2?! { (0.54 → -0.34) Inaccuracy. Ke2 was best. } { [%eval -0.34] } (16. Ke2 Rd8 17. Rd1 Qxf3+ 18. Kxf3 Nf5 19. Be3 Nh4+ 20. Kg3 g5 21. f4 gxf4+ 22. Bxf4 Nf5+) 16... Kf7?? { (-0.34 → 1.58) Blunder. Qxg2 was best. } { [%eval 1.58] } (16... Qxg2 17. Rf1 Qd5 18. Be3 Rc8 19. Nf4 Qf5 20. Rc1 Rxc1+ 21. Bxc1 g5 22. Ne6 Kf7 23. Nd8+) 17. O-O { [%eval 1.42] } 17... Kg8 { [%eval 1.83] } 18. Bd2 { [%eval 1.77] } 18... Re8? { (1.77 → 3.40) Mistake. Nd5 was best. } { [%eval 3.4] } (18... Nd5 19. Rac1 Qe8 20. Qf3 Rd8 21. Nf4 Qf7 22. Nxd5 Qxd5 23. Qxd5+ Rxd5 24. Rc7 Rxd4 25. Bc3) 19. Rac1? { (3.40 → 1.69) Mistake. Rfe1 was best. } { [%eval 1.69] } (19. Rfe1 Rc8 20. Rac1 Qd7 21. Nf4 Rxc1 22. Rxc1 h5 23. Qd3 a5 24. Qb3+ Kh7 25. Rc5 Nf5) 19... Nf5 { [%eval 2.0] } 20. Be3?! { (2.00 → 1.20) Inaccuracy. Qh5 was best. } { [%eval 1.2] } (20. Qh5 Qd7 21. Rc7 Qxc7 22. Qxe8 Qc6 23. Qd8 h6 24. Bb4 Qe4 25. Ne1 Kf7 26. Nf3 Qc6) 20... Qe6 { [%eval 1.67] } 21. Rfe1 { [%eval 1.47] } 21... g6 { [%eval 2.0] } 22. b3?! { (2.00 → 0.92) Inaccuracy. Rc7 was best. } { [%eval 0.92] } (22. Rc7 Qxa2) 22... Bd6 { [%eval 1.02] } 23. Qd2 { [%eval 0.95] } 23... Kf7 { [%eval 0.95] } 24. Bf4 { [%eval 0.61] } 24... Qd7 { [%eval 0.79] } 25. Bxd6 { [%eval 0.72] } 25... Nxd6? { (0.72 → 2.01) Mistake. Qxd6 was best. } { [%eval 2.01] } (25... Qxd6 26. d5 Rxe1+ 27. Rxe1 Re8 28. Rxe8 Kxe8 29. Nf4 Qe5 30. g3 Nd4 31. Qc3 Kd7 32. Qb4) 26. Nc5 { [%eval 1.9] } 26... Rxe1+ { [%eval 1.83] } 27. Rxe1?! { (1.83 → 1.06) Inaccuracy. Qxe1 was best. } { [%eval 1.06] } (27. Qxe1 Qe7 28. Qxe7+ Kxe7 29. Nxb7 Rc8 30. Re1+ Kd7 31. Nc5+ Kc6 32. g3 Re8 33. Rc1 Kd5) 27... Qc6 { [%eval 1.08] } 28. f3 { [%eval 0.93] } 28... Re8 { [%eval 1.01] } 29. Rxe8 { [%eval 1.01] } 29... Nxe8 { [%eval 1.07] } 30. Kf2 { [%eval 1.0] } 30... Nc7 { [%eval 1.05] } 31. Qb4 { [%eval 1.03] } 31... b6 { [%eval 1.18] } 32. Qc4+ { [%eval 1.17] } 32... Nd5 { [%eval 1.16] } 33. Nd3 { [%eval 0.83] } 33... Qe6 { [%eval 0.95] } 34. Nb4 { [%eval 0.9] } 34... Ne7 { [%eval 0.94] } 35. Qxe6+ { [%eval 0.94] } 35... Kxe6 { [%eval 0.93] } 36. Ke3 { [%eval 0.88] } 36... Kd6 { [%eval 1.02] } 37. g3 { [%eval 0.79] } 37... h6 { [%eval 1.2] } 38. Kd3 { [%eval 1.14] } 38... h5 { [%eval 1.24] } 39. Nc2 { [%eval 1.08] } 39... Kd5 { [%eval 1.33] } 40. a3 { [%eval 1.0] } 40... Nc6 { [%eval 1.56] } 41. Ne3+ { [%eval 1.98] } 41... Kd6 { [%eval 1.79] } 42. h4 { [%eval 1.67] } 42... Nd8 { [%eval 2.27] } 43. g4 { [%eval 2.25] } 43... Ne6 { [%eval 2.09] } 44. Ke4 { [%eval 2.07] } 44... Ng7 { [%eval 1.92] } 45. Nc4+ { [%eval 1.73] } 45... Ke6?! { (1.73 → 2.43) Inaccuracy. Kc6 was best. } { [%eval 2.43] } (45... Kc6 46. a4 a6 47. Ne3 Kd6 48. d5 Kd7 49. Kd4 Ne8 50. gxh5 gxh5 51. Nf5 Nd6 52. Ng3) 46. d5+ { [%eval 2.19] } 46... Kd7 { [%eval 2.34] } 47. a4 { [%eval 2.01] } 47... g5? { (2.01 → 3.42) Mistake. Ke7 was best. } { [%eval 3.42] } (47... Ke7 48. Kf4 Ne8 49. g5 Kf7 50. gxf6 Kxf6 51. Nd2 Ng7 52. Ne4+ Ke7 53. Kg5 Nf5 54. d6+) 48. gxh5 { [%eval 3.18] } 48... Nxh5 { [%eval 3.42] } 49. hxg5 { [%eval 3.07] } 49... fxg5 { [%eval 3.23] } 50. Kf5 { [%eval 2.7] } 50... Nf4 { [%eval 3.13] } 51. Ne3 { [%eval 2.79] } 51... Nh3 { [%eval 3.03] } 52. Kg4 { [%eval 2.86] } 52... Ng1 { [%eval 2.77] } 53. Nc4 { [%eval 2.15] } 53... Kc7 { [%eval 2.13] } 54. Nd2?? { (2.13 → 0.08) Blunder. b4 was best. } { [%eval 0.08] } (54. b4 Kc8 55. Nd6+ Kd7 56. Ne4 a6 57. Nc3 Kd6 58. Kg3 Ke5 59. b5 axb5 60. axb5 Kd6) 54... Kd6 { [%eval 0.08] } 55. Kxg5 { [%eval 0.08] } 55... Kxd5 { [%eval 0.08] } 56. f4 { [%eval 0.21] } 56... Nh3+ { [%eval 0.54] } 57. Kg4 { [%eval 0.42] } 57... Nf2+ { [%eval 0.57] } 58. Kf3 { [%eval 0.25] } 58... Nd3 { [%eval 0.63] } 59. Ke3?! { (0.63 → 0.08) Inaccuracy. Kg4 was best. } { [%eval 0.08] } (59. Kg4 Nf2+ 60. Kf5 Kd4 61. Nf3+ Kc3 62. Ke6 Kxb3 63. f5 Ne4 64. Ke5 Nf2 65. Kf4 Nd3+) 59... Nc5 { [%eval 0.08] } 60. Kf3 { [%eval 0.08] } 60... Ke6 { [%eval 0.08] } 61. Ke3 { [%eval 0.08] } 61... Kf5 { [%eval 0.08] } 62. Kd4 { [%eval 0.08] } 62... Ne6+ { [%eval 0.08] } 63. Kc4 { [%eval 0.08] } { The game is a draw. } 1/2-1/2 games-exportOneGame.json: value: id: q7ZvsdUF rated: true variant: standard speed: blitz perf: blitz createdAt: 1514505150384 lastMoveAt: 1514505592843 status: draw source: arena players: white: user: name: Lance5500 title: LM patron: true patronColor: 10 id: lance5500 rating: 2389 ratingDiff: 4 analysis: inaccuracy: 5 mistake: 2 blunder: 1 acpl: 26 accuracy: 90 black: user: name: TryingHard87 id: tryinghard87 rating: 2498 ratingDiff: -4 analysis: inaccuracy: 3 mistake: 3 blunder: 1 acpl: 26 accuracy: 90 opening: eco: D31 name: 'Semi-Slav Defense: Marshall Gambit' ply: 7 moves: d4 d5 c4 c6 Nc3 e6 e4 Nd7 exd5 cxd5 cxd5 exd5 Nxd5 Nb6 Bb5+ Bd7 Qe2+ Ne7 Nxb6 Qxb6 Bxd7+ Kxd7 Nf3 Qa6 Ne5+ Ke8 Qf3 f6 Nd3 Qc6 Qe2 Kf7 O-O Kg8 Bd2 Re8 Rac1 Nf5 Be3 Qe6 Rfe1 g6 b3 Bd6 Qd2 Kf7 Bf4 Qd7 Bxd6 Nxd6 Nc5 Rxe1+ Rxe1 Qc6 f3 Re8 Rxe8 Nxe8 Kf2 Nc7 Qb4 b6 Qc4+ Nd5 Nd3 Qe6 Nb4 Ne7 Qxe6+ Kxe6 Ke3 Kd6 g3 h6 Kd3 h5 Nc2 Kd5 a3 Nc6 Ne3+ Kd6 h4 Nd8 g4 Ne6 Ke4 Ng7 Nc4+ Ke6 d5+ Kd7 a4 g5 gxh5 Nxh5 hxg5 fxg5 Kf5 Nf4 Ne3 Nh3 Kg4 Ng1 Nc4 Kc7 Nd2 Kd6 Kxg5 Kxd5 f4 Nh3+ Kg4 Nf2+ Kf3 Nd3 Ke3 Nc5 Kf3 Ke6 Ke3 Kf5 Kd4 Ne6+ Kc4 analysis: - eval: 8 - eval: 7 - eval: 10 - eval: 14 - eval: 2 - eval: 9 - eval: 5 - eval: 85 best: d5e4 variation: dxe4 Nxe4 Bb4+ Nc3 c5 a3 Bxc3+ bxc3 Nc6 Nf3 judgment: name: Inaccuracy comment: Inaccuracy. dxe4 was best. - eval: 96 - eval: 98 - eval: 88 - eval: 87 - eval: 81 - eval: 88 - eval: 82 - eval: 90 - eval: 79 - eval: 160 best: f8e7 variation: Be7 Nxb6 axb6 Nf3 Nf6 O-O O-O Bd2 Bd6 Bc4 Re8 Qd3 Be6 Bxe6 judgment: name: Inaccuracy comment: Inaccuracy. Be7 was best. - eval: 146 - eval: 151 - eval: 149 - eval: 160 - eval: 151 - eval: 150 - eval: 164 - eval: 190 - eval: 44 best: e5d3 variation: Nd3 Rd8 judgment: name: Mistake comment: Mistake. Nd3 was best. - eval: 61 - eval: 59 - eval: 54 - eval: -34 best: e1e2 variation: Ke2 Rd8 Rd1 Qxf3+ Kxf3 Nf5 Be3 Nh4+ Kg3 g5 f4 gxf4+ Bxf4 Nf5+ judgment: name: Inaccuracy comment: Inaccuracy. Ke2 was best. - eval: 158 best: c6g2 variation: Qxg2 Rf1 Qd5 Be3 Rc8 Nf4 Qf5 Rc1 Rxc1+ Bxc1 g5 Ne6 Kf7 Nd8+ judgment: name: Blunder comment: Blunder. Qxg2 was best. - eval: 142 - eval: 183 - eval: 177 - eval: 340 best: e7d5 variation: Nd5 Rac1 Qe8 Qf3 Rd8 Nf4 Qf7 Nxd5 Qxd5 Qxd5+ Rxd5 Rc7 Rxd4 Bc3 judgment: name: Mistake comment: Mistake. Nd5 was best. - eval: 169 best: f1e1 variation: Rfe1 Rc8 Rac1 Qd7 Nf4 Rxc1 Rxc1 h5 Qd3 a5 Qb3+ Kh7 Rc5 Nf5 judgment: name: Mistake comment: Mistake. Rfe1 was best. - eval: 200 - eval: 120 best: e2h5 variation: Qh5 Qd7 Rc7 Qxc7 Qxe8 Qc6 Qd8 h6 Bb4 Qe4 Ne1 Kf7 Nf3 Qc6 judgment: name: Inaccuracy comment: Inaccuracy. Qh5 was best. - eval: 167 - eval: 147 - eval: 200 best: e6d7 variation: Qd7 Nf4 - eval: 92 best: c1c7 variation: Rc7 Qxa2 judgment: name: Inaccuracy comment: Inaccuracy. Rc7 was best. - eval: 102 - eval: 95 - eval: 95 - eval: 61 - eval: 79 - eval: 72 - eval: 201 best: d7d6 variation: Qxd6 d5 Rxe1+ Rxe1 Re8 Rxe8 Kxe8 Nf4 Qe5 g3 Nd4 Qc3 Kd7 Qb4 judgment: name: Mistake comment: Mistake. Qxd6 was best. - eval: 190 - eval: 183 - eval: 106 best: d2e1 variation: Qxe1 Qe7 Qxe7+ Kxe7 Nxb7 Rc8 Re1+ Kd7 Nc5+ Kc6 g3 Re8 Rc1 Kd5 judgment: name: Inaccuracy comment: Inaccuracy. Qxe1 was best. - eval: 108 - eval: 93 - eval: 101 - eval: 101 - eval: 107 - eval: 100 - eval: 105 - eval: 103 - eval: 118 - eval: 117 - eval: 116 - eval: 83 - eval: 95 - eval: 90 - eval: 94 - eval: 94 - eval: 93 - eval: 88 - eval: 102 - eval: 79 - eval: 120 - eval: 114 - eval: 124 - eval: 108 - eval: 133 - eval: 100 - eval: 156 best: d5d6 variation: Kd6 Kc4 - eval: 198 - eval: 179 - eval: 167 - eval: 227 best: c6a5 variation: Na5 b4 - eval: 225 - eval: 209 - eval: 207 - eval: 192 - eval: 173 - eval: 243 best: d6c6 variation: Kc6 a4 a6 Ne3 Kd6 d5 Kd7 Kd4 Ne8 gxh5 gxh5 Nf5 Nd6 Ng3 judgment: name: Inaccuracy comment: Inaccuracy. Kc6 was best. - eval: 219 - eval: 234 - eval: 201 - eval: 342 best: d7e7 variation: Ke7 Kf4 Ne8 g5 Kf7 gxf6 Kxf6 Nd2 Ng7 Ne4+ Ke7 Kg5 Nf5 d6+ judgment: name: Mistake comment: Mistake. Ke7 was best. - eval: 318 - eval: 342 - eval: 307 - eval: 323 - eval: 270 - eval: 313 - eval: 279 - eval: 303 - eval: 286 - eval: 277 - eval: 215 - eval: 213 - eval: 8 best: b3b4 variation: b4 Kc8 Nd6+ Kd7 Ne4 a6 Nc3 Kd6 Kg3 Ke5 b5 axb5 axb5 Kd6 judgment: name: Blunder comment: Blunder. b4 was best. - eval: 8 - eval: 8 - eval: 8 - eval: 21 - eval: 54 - eval: 42 - eval: 57 - eval: 25 - eval: 63 - eval: 8 best: f3g4 variation: Kg4 Nf2+ Kf5 Kd4 Nf3+ Kc3 Ke6 Kxb3 f5 Ne4 Ke5 Nf2 Kf4 Nd3+ judgment: name: Inaccuracy comment: Inaccuracy. Kg4 was best. - eval: 8 - eval: 8 - eval: 8 - eval: 8 - eval: 8 - eval: 8 - eval: 8 - eval: 8 tournament: winter17 clock: initial: 300 increment: 3 totalTime: 420 division: middle: 22 end: 53 games-apiUserCurrentGamePgn.pgn: value: | [Event "Coach LM Lance5500 simul"] [Site "https://lichess.org/wVI5NKlo"] [Date "2026.05.14"] [Round "-"] [White "thomas7777777"] [Black "Lance5500"] [Result "0-1"] [GameId "wVI5NKlo"] [UTCDate "2026.05.14"] [UTCTime "17:47:08"] [WhiteElo "1036"] [BlackElo "2569"] [BlackTitle "LM"] [Variant "Standard"] [TimeControl "300+0"] [ECO "?"] [Opening "?"] [Termination "Time forfeit"] [Annotator "lichess.org"] 0-1 games-apiUserCurrentGameJson.json: value: id: wVI5NKlo rated: false variant: standard speed: blitz perf: blitz createdAt: 1778780828563 lastMoveAt: 1778780828563 status: outoftime source: simul players: white: user: name: thomas7777777 flair: nature.rabbit id: thomas7777777 rating: 1036 black: user: name: Lance5500 title: LM patron: true patronColor: 10 id: lance5500 rating: 2569 winner: black moves: '' clock: initial: 300 increment: 0 totalTime: 300 division: {} games-apiGamesUserPgn.pgn: value: | [Event "Coach LM Lance5500 simul"] [Site "https://lichess.org/wVI5NKlo"] [Date "2026.05.14"] [Round "-"] [White "thomas7777777"] [Black "Lance5500"] [Result "0-1"] [GameId "wVI5NKlo"] [UTCDate "2026.05.14"] [UTCTime "17:47:08"] [WhiteElo "1036"] [BlackElo "2569"] [BlackTitle "LM"] [Variant "Standard"] [TimeControl "300+0"] [ECO "?"] [Termination "Time forfeit"] 0-1 games-apiGamesUserJson.json: value: id: wVI5NKlo rated: false variant: standard speed: blitz perf: blitz createdAt: 1778780828563 lastMoveAt: 1778780828563 status: outoftime source: simul players: white: user: name: thomas7777777 flair: nature.rabbit id: thomas7777777 rating: 1036 black: user: name: Lance5500 title: LM patron: true patronColor: 10 id: lance5500 rating: 2569 winner: black moves: '' clock: initial: 300 increment: 0 totalTime: 300 division: {} games-gamesExportIds.pgn: value: | [Event "Daily Rapid Arena"] [Site "https://lichess.org/TJxUmbWK"] [Date "2017.08.30"] [Round "-"] [White "arex"] [Black "JERC-12Jesus"] [Result "1-0"] [GameId "TJxUmbWK"] [UTCDate "2017.08.30"] [UTCTime "20:40:27"] [WhiteElo "1627"] [BlackElo "1740"] [WhiteRatingDiff "+15"] [BlackRatingDiff "-15"] [Variant "Standard"] [TimeControl "600+0"] [ECO "B07"] [Opening "Pirc Defense"] [Termination "Normal"] [Annotator "lichess.org"] 1. e4 d6 2. d4 Nf6 3. Nc3 g6 { B07 Pirc Defense } 4. Bd3 Bg7 5. Be3 O-O 6. Qd2 Ng4 7. O-O-O Nxe3 8. Qxe3 Nd7 9. f4 Nf6 10. h3 c6 11. g4 Qb6 12. Nf3 c5 13. dxc5 Qxc5 14. Qxc5 dxc5 15. e5 Nd7 16. Nd5 e6 17. Ne7+ Kh8 18. Bb5 a6 19. Bxd7 Bxd7 20. Rxd7 Rfe8 21. Rxb7 { Black resigns. } 1-0 games-gamesExportIds.json: value: id: TJxUmbWK rated: true variant: standard speed: rapid perf: rapid createdAt: 1504125627542 lastMoveAt: 1504126012148 status: resign source: arena players: white: user: name: arex patron: true patronColor: 10 id: arex rating: 1627 ratingDiff: 15 black: user: name: JERC-12Jesus id: jerc-12jesus rating: 1740 ratingDiff: -15 winner: white opening: eco: B07 name: Pirc Defense ply: 6 moves: e4 d6 d4 Nf6 Nc3 g6 Bd3 Bg7 Be3 O-O Qd2 Ng4 O-O-O Nxe3 Qxe3 Nd7 f4 Nf6 h3 c6 g4 Qb6 Nf3 c5 dxc5 Qxc5 Qxc5 dxc5 e5 Nd7 Nd5 e6 Ne7+ Kh8 Bb5 a6 Bxd7 Bxd7 Rxd7 Rfe8 Rxb7 tournament: Xg7M4och clock: initial: 600 increment: 0 totalTime: 600 division: middle: 22 tv-getCurrentTvGames.json: value: chess960: user: name: realNomenNescio id: realnomennescio rating: 2366 gameId: doTaX3pm color: black best: user: name: DrawMerchant title: IM id: drawmerchant rating: 2787 gameId: 2i3nCKuq color: black antichess: user: name: Penguinept flair: activity.puzzle-piece id: penguinept rating: 2197 gameId: Mm5RSBXg color: white computer: user: name: AIDARED flair: food-drink.red-apple id: aidared rating: 2506 gameId: Y1D9abkF color: white bullet: user: name: DrawMerchant title: IM id: drawmerchant rating: 2787 gameId: 2i3nCKuq color: black horde: user: name: Andr88 flair: symbols.triangular-flag id: andr88 rating: 2133 gameId: zv6BfeT6 color: black atomic: user: name: cyberpunks flair: smileys.cold-face patron: true patronColor: 1 id: cyberpunks rating: 1932 gameId: EBddIJbc color: white bot: user: name: PetersBot title: BOT id: petersbot rating: 2921 gameId: 0xBV4AeD color: black racingKings: user: name: AahaanTheChamp flair: food-drink.mango id: aahaanthechamp rating: 2135 gameId: HEmN5MUd color: white ultraBullet: user: name: Lumbrerosky id: lumbrerosky rating: 1942 gameId: v2WgmhmU color: black blitz: user: name: Bugzilla title: IM id: bugzilla rating: 2629 gameId: Si5fCcRw color: white kingOfTheHill: user: name: sorrymyfault id: sorrymyfault rating: 2357 gameId: ugZHqrgZ color: white crazyhouse: user: name: Mini_verse flair: smileys.skull id: mini_verse rating: 2295 gameId: f2RI9DMl color: black threeCheck: user: name: blit2 id: blit2 rating: 1978 gameId: ltR9SqXm color: black classical: user: name: Matador85 id: matador85 rating: 2356 gameId: JBrftNJe color: white rapid: user: name: fito2 title: FM id: fito2 rating: 2479 gameId: EUO98ic9 color: white tv-streamCurrentTvGame-newGame.json: value: t: featured d: id: 2i3nCKuq orientation: black players: - color: white user: name: DrawMerchant title: IM id: drawmerchant rating: 2787 seconds: 60 - color: black user: name: Empathy666 flair: symbols.black-heart id: empathy666 rating: 2876 seconds: 60 fen: 2n1rrk1/1p3ppp/3p4/pP1P2qn/2PB4/5Q2/P1N2PPP/R4RK1 w - - 5 21 tv-streamCurrentTvGame-move.json: value: t: fen d: fen: 2n1rrk1/1p3ppp/3p4/pP1P2qn/2PB4/5Q2/P1N2PPP/4RRK1 b - - 6 21 lm: a1e1 wc: 39 bc: 43 tv-getBestOngoingGamesOfTvChannel.pgn: value: | [Event "rated bullet game"] [Site "https://lichess.org/nQSXy8Zw"] [Date "2026.05.15"] [Round "-"] [White "Chess-uae"] [Black "eloWhitekingchess"] [Result "*"] [GameId "nQSXy8Zw"] [UTCDate "2026.05.15"] [UTCTime "02:36:59"] [WhiteElo "2995"] [BlackElo "2868"] [Variant "Standard"] [TimeControl "30+0"] [ECO "A00"] [Termination "Unterminated"] 1. g3 Nf6 2. Bg2 d6 3. Nf3 g6 4. O-O Bg7 5. d4 O-O 6. c4 c6 * [Event "GRAN FINAL BULLET RAW ABRIL Team Battle"] [Site "https://lichess.org/9U5Mc8fc"] [Date "2026.05.15"] [Round "-"] [White "Goku102020newaccount"] [Black "Misterio666"] [Result "*"] [GameId "9U5Mc8fc"] [UTCDate "2026.05.15"] [UTCTime "02:36:36"] [WhiteElo "2826"] [BlackElo "2530"] [Variant "Standard"] [TimeControl "60+0"] [ECO "A40"] [Termination "Unterminated"] 1. d4 e6 2. Bf4 Nf6 3. e3 d5 4. Nf3 Bd6 5. Bg3 Ne4 6. Nbd2 f5 7. c4 c6 8. Qb3 O-O 9. Bd3 Kh8 10. Bxe4 fxe4 11. Ne5 Bxe5 12. Bxe5 Nd7 13. Bg3 Nf6 * [Event "rated bullet game"] [Site "https://lichess.org/tQrb3I5l"] [Date "2026.05.15"] [Round "-"] [White "eloWhitekingchess"] [Black "Chess-uae"] [Result "0-1"] [GameId "tQrb3I5l"] [UTCDate "2026.05.15"] [UTCTime "02:36:23"] [WhiteElo "2872"] [BlackElo "2991"] [WhiteRatingDiff "-4"] [BlackRatingDiff "+4"] [Variant "Standard"] [TimeControl "30+0"] [ECO "A05"] [Termination "Normal"] 1. Nf3 g6 2. d3 Nf6 3. g3 Bg7 4. Bg2 O-O 5. O-O d5 6. c3 c5 7. Qc2 Nc6 8. Nbd2 d4 9. e3 dxc3 10. bxc3 Bf5 11. e4 Bg4 12. Nc4 b5 13. Ne3 Rc8 14. Nxg4 Nxg4 15. h3 Nge5 16. Nxe5 Bxe5 17. Rd1 Bg7 18. Be3 b4 19. cxb4 Nxb4 20. Qb3 Bxa1 21. Rxa1 Qxd3 22. Qa4 Rfd8 23. Qxa7 Nc2 24. Rc1 Nxe3 25. Qxe7 Nxg2 26. Kxg2 Re8 0-1 tv-getBestOngoingGamesOfTvChannel.json: value: id: nQSXy8Zw rated: true variant: standard speed: bullet perf: bullet createdAt: 1778812619976 lastMoveAt: 1778812625792 status: started source: friend players: white: user: name: Chess-uae id: chess-uae rating: 2995 black: user: name: eloWhitekingchess flair: nature.horse-face id: elowhitekingchess rating: 2868 opening: eco: A00 name: 'Hungarian Opening: Indian Defense' ply: 2 moves: g3 Nf6 Bg2 d6 Nf3 g6 O-O Bg7 d4 O-O c4 c6 clocks: - 3000 - 3000 - 3000 - 3000 - 3000 - 2964 - 3000 - 2964 - 3000 - 2964 - 3000 - 2955 pgn: |+ [Event "rated bullet game"] [Site "https://lichess.org/nQSXy8Zw"] [Date "2026.05.15"] [Round "-"] [White "Chess-uae"] [Black "eloWhitekingchess"] [Result "*"] [GameId "nQSXy8Zw"] [UTCDate "2026.05.15"] [UTCTime "02:36:59"] [WhiteElo "2995"] [BlackElo "2868"] [Variant "Standard"] [TimeControl "30+0"] [ECO "A00"] [Opening "Hungarian Opening: Indian Defense"] [Termination "Unterminated"] 1. g3 { [%clk 0:00:30] } 1... Nf6 { [%clk 0:00:30] } 2. Bg2 { [%clk 0:00:30] } 2... d6 { [%clk 0:00:30] } 3. Nf3 { [%clk 0:00:30] } 3... g6 { [%clk 0:00:30] } 4. O-O { [%clk 0:00:30] } 4... Bg7 { [%clk 0:00:30] } 5. d4 { [%clk 0:00:30] } 5... O-O { [%clk 0:00:30] } 6. c4 { [%clk 0:00:30] } 6... c6 { [%clk 0:00:30] } * clock: initial: 30 increment: 0 totalTime: 30 arenas-getCurrentTournaments.json: value: created: - id: ZDzuK1O3 createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: English Opening Bullet Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778814000000 finishesAt: 1778815620000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 1402 minRatedGames: nb: 20 position: eco: A30 name: 'English Opening: Symmetrical Variation' fen: rnbqkbnr/pp1ppppp/8/2p5/2P5/8/PP1PPPPP/RNBQKBNR w KQkq - url: https://lichess.org/opening/English_Opening_Symmetrical_Variation schedule: freq: hourly speed: bullet - id: Rxvzjo7L createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Three-check Arena nbPlayers: 0 variant: key: threeCheck short: 3check name: Three-check startsAt: 1778814002500 finishesAt: 1778817422500 status: 10 perf: key: threeCheck name: Three-Check position: 8 secondsToStart: 1404 schedule: freq: hourly speed: blitz - id: vyt0HLB5 createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly SuperBlitz Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778814005000 finishesAt: 1778817425000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 1407 minRatedGames: nb: 15 schedule: freq: hourly speed: superBlitz - id: p3GtvydO createdBy: lichess system: arena minutes: 57 clock: limit: 60 increment: 2 rated: true fullName: Hourly Crazyhouse Arena nbPlayers: 0 variant: key: crazyhouse short: Crazy name: Crazyhouse startsAt: 1778814007500 finishesAt: 1778817427500 status: 10 perf: key: crazyhouse name: Crazyhouse position: 5 secondsToStart: 1409 schedule: freq: hourly speed: superBlitz - id: ptqgddvN createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: ≤1500 Blitz Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778814010000 finishesAt: 1778817430000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 1412 hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz - id: JsEh9LAs createdBy: lichess system: arena minutes: 57 clock: limit: 60 increment: 2 rated: true fullName: Hourly King of the Hill Arena nbPlayers: 1 variant: key: kingOfTheHill short: KotH name: King of the Hill startsAt: 1778814012500 finishesAt: 1778817432500 status: 10 perf: key: kingOfTheHill name: King of the Hill position: 7 secondsToStart: 1414 schedule: freq: hourly speed: superBlitz - id: tAf4Y30Y createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: Hourly Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778814015000 finishesAt: 1778817435000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 1417 minRatedGames: nb: 15 schedule: freq: hourly speed: blitz - id: 8PSsjm9b createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Racing Kings Arena nbPlayers: 0 variant: key: racingKings short: Racing name: Racing Kings startsAt: 1778814017500 finishesAt: 1778815637500 status: 10 perf: key: racingKings name: Racing Kings position: 12 secondsToStart: 1419 schedule: freq: hourly speed: bullet - id: JBG7995G createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤1700 SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778814020000 finishesAt: 1778817440000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 1422 hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz - id: 6jmF50N2 createdBy: lichess system: arena minutes: 57 clock: limit: 600 increment: 0 rated: true fullName: ≤1300 Rapid Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778814025000 finishesAt: 1778817445000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 1427 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid - id: D2PEDKAC createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778814030000 finishesAt: 1778815650000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 1432 minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet - id: bq7zxE35 createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Antichess Arena nbPlayers: 0 variant: key: antichess short: Anti name: Antichess startsAt: 1778814035000 finishesAt: 1778815655000 status: 10 perf: key: antichess name: Antichess position: 9 secondsToStart: 1437 schedule: freq: hourly speed: bullet - id: VmA2ssAC createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤2000 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778814040000 finishesAt: 1778815660000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 1442 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: OSZQhGmK createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤2000 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778815800000 finishesAt: 1778817420000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 3202 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: NB3hIIUw createdBy: lichess system: arena minutes: 27 clock: limit: 0 increment: 2 rated: true fullName: Hourly Antichess Arena nbPlayers: 0 variant: key: antichess short: Anti name: Antichess startsAt: 1778815810000 finishesAt: 1778817430000 status: 10 perf: key: antichess name: Antichess position: 9 secondsToStart: 3212 schedule: freq: hourly speed: bullet - id: h2VW1kWe createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778815820000 finishesAt: 1778817440000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 3222 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: hVamDEdH createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Racing Kings Arena nbPlayers: 0 variant: key: racingKings short: Racing name: Racing Kings startsAt: 1778815830000 finishesAt: 1778817450000 status: 10 perf: key: racingKings name: Racing Kings position: 12 secondsToStart: 3232 schedule: freq: hourly speed: bullet - id: fgV7gQqJ createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778815840000 finishesAt: 1778817460000 status: 10 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' secondsToStart: 3242 schedule: freq: hourly speed: ultraBullet - id: q6wlWN0D createdBy: lichess system: arena minutes: 60 clock: limit: 60 increment: 0 rated: true fullName: Eastern Bullet Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778817600000 finishesAt: 1778821200000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 5002 minRatedGames: nb: 20 schedule: freq: eastern speed: bullet - id: i29WEwln createdBy: lichess system: arena minutes: 57 clock: limit: 60 increment: 2 rated: true fullName: Hourly Atomic Arena nbPlayers: 0 variant: key: atomic short: Atom name: Atomic startsAt: 1778817602500 finishesAt: 1778821022500 status: 10 perf: key: atomic name: Atomic position: 10 secondsToStart: 5004 schedule: freq: hourly speed: superBlitz - id: yoIvehOJ createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778817605000 finishesAt: 1778819225000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 5007 minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet - id: ZUZxYwob createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly Crazyhouse Arena nbPlayers: 0 variant: key: crazyhouse short: Crazy name: Crazyhouse startsAt: 1778817607500 finishesAt: 1778821027500 status: 10 perf: key: crazyhouse name: Crazyhouse position: 5 secondsToStart: 5009 schedule: freq: hourly speed: superBlitz - id: h4dO3xKf createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: ≤1700 Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778817610000 finishesAt: 1778821030000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 5012 hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz - id: iDPlWY8f createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly King of the Hill Arena nbPlayers: 0 variant: key: kingOfTheHill short: KotH name: King of the Hill startsAt: 1778817612500 finishesAt: 1778821032500 status: 10 perf: key: kingOfTheHill name: King of the Hill position: 7 secondsToStart: 5014 schedule: freq: hourly speed: superBlitz - id: 0lJWcvq6 createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: Hourly Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778817615000 finishesAt: 1778821035000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 5017 minRatedGames: nb: 15 schedule: freq: hourly speed: blitz - id: 7dsUcaFd createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly Chess960 Arena nbPlayers: 0 variant: key: chess960 short: '960' name: Chess960 startsAt: 1778817617500 finishesAt: 1778821037500 status: 10 perf: key: chess960 name: Chess960 position: 6 secondsToStart: 5019 schedule: freq: hourly speed: superBlitz - id: zo5nohPF createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤2000 SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778817620000 finishesAt: 1778821040000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 5022 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz - id: 3rn1kfTe createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Horde Arena nbPlayers: 0 variant: key: horde short: Horde name: Horde startsAt: 1778817622500 finishesAt: 1778819242500 status: 10 perf: key: horde name: Horde position: 11 secondsToStart: 5024 schedule: freq: hourly speed: bullet - id: uiGdzan4 createdBy: lichess system: arena minutes: 117 clock: limit: 600 increment: 0 rated: true fullName: Hourly Rapid Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778817625000 finishesAt: 1778824645000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 5027 minRatedGames: nb: 10 schedule: freq: hourly speed: rapid - id: Iqv3M3l9 createdBy: lichess system: arena minutes: 57 clock: limit: 600 increment: 0 rated: true fullName: ≤1500 Rapid Arena nbPlayers: 2 variant: key: standard short: Std name: Standard startsAt: 1778817630000 finishesAt: 1778821050000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 5032 hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid - id: grMRVw1u createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤1300 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778817635000 finishesAt: 1778819255000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 5037 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: pK1LAIJu createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: English Opening SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778817640000 finishesAt: 1778821060000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 5042 minRatedGames: nb: 15 position: eco: A30 name: 'English Opening: Symmetrical Variation' fen: rnbqkbnr/pp1ppppp/8/2p5/2P5/8/PP1PPPPP/RNBQKBNR w KQkq - url: https://lichess.org/opening/English_Opening_Symmetrical_Variation schedule: freq: hourly speed: superBlitz - id: aXEGWAhm createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778819400000 finishesAt: 1778821020000 status: 10 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' secondsToStart: 6802 schedule: freq: hourly speed: ultraBullet - id: oVhUaGe6 createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Horde Arena nbPlayers: 0 variant: key: horde short: Horde name: Horde startsAt: 1778819420000 finishesAt: 1778821040000 status: 10 perf: key: horde name: Horde position: 11 secondsToStart: 6822 schedule: freq: hourly speed: bullet - id: 0Qy9tLcw createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤1300 Bullet Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778819440000 finishesAt: 1778821060000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 6842 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: KA6UUs8d createdBy: lichess system: arena minutes: 90 clock: limit: 180 increment: 0 rated: true fullName: Eastern SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821200000 finishesAt: 1778826600000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 8602 minRatedGames: nb: 15 schedule: freq: eastern speed: superBlitz - id: LhNRvz06 createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Atomic Arena nbPlayers: 0 variant: key: atomic short: Atom name: Atomic startsAt: 1778821202500 finishesAt: 1778824622500 status: 10 perf: key: atomic name: Atomic position: 10 secondsToStart: 8604 schedule: freq: hourly speed: blitz - id: 2w9fnDA9 createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821205000 finishesAt: 1778822825000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 8607 minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet - id: 2UkntBWA createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Three-check Arena nbPlayers: 0 variant: key: threeCheck short: 3check name: Three-check startsAt: 1778821207500 finishesAt: 1778822827500 status: 10 perf: key: threeCheck name: Three-Check position: 8 secondsToStart: 8609 schedule: freq: hourly speed: bullet - id: phoKkvC2 createdBy: lichess system: arena minutes: 57 clock: limit: 600 increment: 0 rated: true fullName: ≤1700 Rapid Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821210000 finishesAt: 1778824630000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 8612 hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid - id: KKm7O5dR createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 3 rated: true fullName: Hourly Chess960 Arena nbPlayers: 0 variant: key: chess960 short: '960' name: Chess960 startsAt: 1778821212500 finishesAt: 1778824632500 status: 10 perf: key: chess960 name: Chess960 position: 6 secondsToStart: 8614 schedule: freq: hourly speed: blitz - id: VtTcQZhg createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821215000 finishesAt: 1778822835000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 8617 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: 4XDrOzze createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly Racing Kings Arena nbPlayers: 0 variant: key: racingKings short: Racing name: Racing Kings startsAt: 1778821217500 finishesAt: 1778824637500 status: 10 perf: key: racingKings name: Racing Kings position: 12 secondsToStart: 8619 schedule: freq: hourly speed: superBlitz - id: NjdPpHdW createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: ≤2000 Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821220000 finishesAt: 1778824640000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 8622 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz - id: DXTovkDV createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤1300 SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821225000 finishesAt: 1778824645000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 8627 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz - id: vb2XnN9f createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤1500 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821230000 finishesAt: 1778822850000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 8632 hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: YfzrllQ0 createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Antichess Arena nbPlayers: 0 variant: key: antichess short: Anti name: Antichess startsAt: 1778821235000 finishesAt: 1778824655000 status: 10 perf: key: antichess name: Antichess position: 9 secondsToStart: 8637 schedule: freq: hourly speed: blitz - id: eST1oB9P createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: English Opening Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778821240000 finishesAt: 1778824660000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 8642 minRatedGames: nb: 15 position: eco: A30 name: 'English Opening: Symmetrical Variation' fen: rnbqkbnr/pp1ppppp/8/2p5/2P5/8/PP1PPPPP/RNBQKBNR w KQkq - url: https://lichess.org/opening/English_Opening_Symmetrical_Variation schedule: freq: hourly speed: blitz - id: 9cAN2N5F createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤1500 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778823000000 finishesAt: 1778824620000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 10402 hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: 4mqJj6tB createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly Three-check Arena nbPlayers: 0 variant: key: threeCheck short: 3check name: Three-check startsAt: 1778823010000 finishesAt: 1778824630000 status: 10 perf: key: threeCheck name: Three-Check position: 8 secondsToStart: 10412 schedule: freq: hourly speed: hyperBullet - id: 6NSQ476j createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778823020000 finishesAt: 1778824640000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 10422 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: 1zYvveJa createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778823040000 finishesAt: 1778824660000 status: 10 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' secondsToStart: 10442 schedule: freq: hourly speed: ultraBullet - id: W9lt2ALo createdBy: lichess system: arena minutes: 120 clock: limit: 300 increment: 0 rated: true fullName: Eastern Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778824800000 finishesAt: 1778832000000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 12202 minRatedGames: nb: 15 schedule: freq: eastern speed: blitz - id: JRjBBcf2 createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly Three-check Arena nbPlayers: 0 variant: key: threeCheck short: 3check name: Three-check startsAt: 1778824802500 finishesAt: 1778828222500 status: 10 perf: key: threeCheck name: Three-Check position: 8 secondsToStart: 12204 schedule: freq: hourly speed: superBlitz - id: o9Ih7sWc createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778824805000 finishesAt: 1778826425000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 12207 minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet - id: jiy6IPRu createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Crazyhouse Arena nbPlayers: 0 variant: key: crazyhouse short: Crazy name: Crazyhouse startsAt: 1778824807500 finishesAt: 1778828227500 status: 10 perf: key: crazyhouse name: Crazyhouse position: 5 secondsToStart: 12209 schedule: freq: hourly speed: blitz - id: 70tNJdAU createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤1700 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778824810000 finishesAt: 1778826430000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 12212 hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: EjHgAioJ createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly King of the Hill Arena nbPlayers: 0 variant: key: kingOfTheHill short: KotH name: King of the Hill startsAt: 1778824812500 finishesAt: 1778828232500 status: 10 perf: key: kingOfTheHill name: King of the Hill position: 7 secondsToStart: 12214 schedule: freq: hourly speed: blitz - id: IgjXUEX4 createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778824815000 finishesAt: 1778826435000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 12217 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: P7sPt8XR createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Horde Arena nbPlayers: 0 variant: key: horde short: Horde name: Horde startsAt: 1778824817500 finishesAt: 1778828237500 status: 10 perf: key: horde name: Horde position: 11 secondsToStart: 12219 schedule: freq: hourly speed: blitz - id: yLjup93V createdBy: lichess system: arena minutes: 57 clock: limit: 600 increment: 0 rated: true fullName: ≤2000 Rapid Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778824820000 finishesAt: 1778828240000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 12222 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid - id: 0eefSUWz createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: ≤1300 Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778824825000 finishesAt: 1778828245000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 12227 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz - id: ReFJgfFg createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤1500 SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778824830000 finishesAt: 1778828250000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 12232 hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz - id: 6jNTlhBe createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Antichess Arena nbPlayers: 0 variant: key: antichess short: Anti name: Antichess startsAt: 1778824835000 finishesAt: 1778826455000 status: 10 perf: key: antichess name: Antichess position: 9 secondsToStart: 12237 schedule: freq: hourly speed: bullet - id: GTEqUpxR createdBy: lichess system: arena minutes: 117 clock: limit: 600 increment: 0 rated: true fullName: English Opening Rapid Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778824840000 finishesAt: 1778831860000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 12242 minRatedGames: nb: 10 position: eco: A30 name: 'English Opening: Symmetrical Variation' fen: rnbqkbnr/pp1ppppp/8/2p5/2P5/8/PP1PPPPP/RNBQKBNR w KQkq - url: https://lichess.org/opening/English_Opening_Symmetrical_Variation schedule: freq: hourly speed: rapid - id: MNNHHsn7 createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤1700 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778826600000 finishesAt: 1778828220000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 14002 hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: wLKfj5jS createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly Antichess Arena nbPlayers: 0 variant: key: antichess short: Anti name: Antichess startsAt: 1778826610000 finishesAt: 1778828230000 status: 10 perf: key: antichess name: Antichess position: 9 secondsToStart: 14012 schedule: freq: hourly speed: hyperBullet - id: OQKReuP5 createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778826620000 finishesAt: 1778828240000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 14022 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: RPEPhmMC createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778826640000 finishesAt: 1778828260000 status: 10 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' secondsToStart: 14042 schedule: freq: hourly speed: ultraBullet - id: QJNqCQbF createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤2000 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778828400000 finishesAt: 1778830020000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 15802 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: iVUxVMBn createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly King of the Hill Arena nbPlayers: 0 variant: key: kingOfTheHill short: KotH name: King of the Hill startsAt: 1778828402500 finishesAt: 1778830022500 status: 10 perf: key: kingOfTheHill name: King of the Hill position: 7 secondsToStart: 15804 schedule: freq: hourly speed: bullet - id: 3z2AAegY createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778828405000 finishesAt: 1778831825000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 15807 minRatedGames: nb: 15 schedule: freq: hourly speed: superBlitz - id: nrR93JRl createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Chess960 Arena nbPlayers: 0 variant: key: chess960 short: '960' name: Chess960 startsAt: 1778828407500 finishesAt: 1778831827500 status: 10 perf: key: chess960 name: Chess960 position: 6 secondsToStart: 15809 schedule: freq: hourly speed: blitz - id: gVT7J1y7 createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778828410000 finishesAt: 1778830030000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 15812 minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet - id: ZilbarqB createdBy: lichess system: arena minutes: 57 clock: limit: 60 increment: 2 rated: true fullName: Hourly Racing Kings Arena nbPlayers: 0 variant: key: racingKings short: Racing name: Racing Kings startsAt: 1778828412500 finishesAt: 1778831832500 status: 10 perf: key: racingKings name: Racing Kings position: 12 secondsToStart: 15814 schedule: freq: hourly speed: superBlitz - id: aB3j5ovy createdBy: lichess system: arena minutes: 57 clock: limit: 600 increment: 0 rated: true fullName: ≤1300 Rapid Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778828415000 finishesAt: 1778831835000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 15817 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid - id: 7SVmaSvC createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: ≤1500 Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778828420000 finishesAt: 1778831840000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 15822 hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz - id: RGUOeT0p createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Atomic Arena nbPlayers: 0 variant: key: atomic short: Atom name: Atomic startsAt: 1778828425000 finishesAt: 1778830045000 status: 10 perf: key: atomic name: Atomic position: 10 secondsToStart: 15827 schedule: freq: hourly speed: bullet - id: NPIj6Oce createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778828430000 finishesAt: 1778830050000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 15832 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: yMQKTjnw createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Crazyhouse Arena nbPlayers: 0 variant: key: crazyhouse short: Crazy name: Crazyhouse startsAt: 1778828435000 finishesAt: 1778830055000 status: 10 perf: key: crazyhouse name: Crazyhouse position: 5 secondsToStart: 15837 schedule: freq: hourly speed: bullet - id: ZfzNN7hq createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤1700 SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778828440000 finishesAt: 1778831860000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 15842 hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz - id: A0O4dhse createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤2000 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778830200000 finishesAt: 1778831820000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 17602 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: Bq0rQIns createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly King of the Hill Arena nbPlayers: 0 variant: key: kingOfTheHill short: KotH name: King of the Hill startsAt: 1778830205000 finishesAt: 1778831825000 status: 10 perf: key: kingOfTheHill name: King of the Hill position: 7 secondsToStart: 17607 schedule: freq: hourly speed: hyperBullet - id: 15KSfggX createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly Atomic Arena nbPlayers: 0 variant: key: atomic short: Atom name: Atomic startsAt: 1778830210000 finishesAt: 1778831830000 status: 10 perf: key: atomic name: Atomic position: 10 secondsToStart: 17612 schedule: freq: hourly speed: hyperBullet - id: yFFXj1Ar createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778830220000 finishesAt: 1778831840000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 17622 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: AT4azkPw createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly Crazyhouse Arena nbPlayers: 0 variant: key: crazyhouse short: Crazy name: Crazyhouse startsAt: 1778830230000 finishesAt: 1778831850000 status: 10 perf: key: crazyhouse name: Crazyhouse position: 5 secondsToStart: 17632 schedule: freq: hourly speed: hyperBullet - id: 1dxtYZ5Z createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778830240000 finishesAt: 1778831860000 status: 10 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' secondsToStart: 17642 schedule: freq: hourly speed: ultraBullet - id: oDoYmC4B createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤2000 SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832000000 finishesAt: 1778835420000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 19402 hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz - id: 34R2FVe5 createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly Antichess Arena nbPlayers: 0 variant: key: antichess short: Anti name: Antichess startsAt: 1778832002500 finishesAt: 1778835422500 status: 10 perf: key: antichess name: Antichess position: 9 secondsToStart: 19404 schedule: freq: hourly speed: superBlitz - id: jmYCCAAN createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly SuperBlitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832005000 finishesAt: 1778835425000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 19407 minRatedGames: nb: 15 schedule: freq: hourly speed: superBlitz - id: wV2BcY0b createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly Atomic Arena nbPlayers: 0 variant: key: atomic short: Atom name: Atomic startsAt: 1778832007500 finishesAt: 1778835427500 status: 10 perf: key: atomic name: Atomic position: 10 secondsToStart: 19409 schedule: freq: hourly speed: superBlitz - id: jvCOLHiI createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832010000 finishesAt: 1778833630000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 19412 minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet - id: 9mCqIsue createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Three-check Arena nbPlayers: 0 variant: key: threeCheck short: 3check name: Three-check startsAt: 1778832012500 finishesAt: 1778833632500 status: 10 perf: key: threeCheck name: Three-Check position: 8 secondsToStart: 19414 schedule: freq: hourly speed: bullet - id: WcnjMzqs createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: Hourly Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832015000 finishesAt: 1778835435000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 19417 minRatedGames: nb: 15 schedule: freq: hourly speed: blitz - id: YWiXLdoh createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Chess960 Arena nbPlayers: 0 variant: key: chess960 short: '960' name: Chess960 startsAt: 1778832017500 finishesAt: 1778833637500 status: 10 perf: key: chess960 name: Chess960 position: 6 secondsToStart: 19419 schedule: freq: hourly speed: bullet - id: mUkbaRix createdBy: lichess system: arena minutes: 57 clock: limit: 600 increment: 0 rated: true fullName: ≤1500 Rapid Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832020000 finishesAt: 1778835440000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 19422 hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid - id: Y3UttDRQ createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Horde Arena nbPlayers: 0 variant: key: horde short: Horde name: Horde startsAt: 1778832022500 finishesAt: 1778833642500 status: 10 perf: key: horde name: Horde position: 11 secondsToStart: 19424 schedule: freq: hourly speed: bullet - id: iSvW0YNJ createdBy: lichess system: arena minutes: 117 clock: limit: 600 increment: 0 rated: true fullName: Hourly Rapid Arena nbPlayers: 1 variant: key: standard short: Std name: Standard startsAt: 1778832025000 finishesAt: 1778839045000 status: 10 perf: key: rapid name: Rapid position: 2 icon: '#' secondsToStart: 19427 minRatedGames: nb: 10 schedule: freq: hourly speed: rapid - id: JwEMewsm createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832030000 finishesAt: 1778833650000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 19432 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: N6jZj0Nl createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤1300 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832035000 finishesAt: 1778833655000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 19437 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: r7BqJBgP createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: ≤1700 Blitz Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778832040000 finishesAt: 1778835460000 status: 10 perf: key: blitz name: Blitz position: 1 icon: ) secondsToStart: 19442 hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz - id: wDHJsFd6 createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778833800000 finishesAt: 1778835420000 status: 10 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' secondsToStart: 21202 schedule: freq: hourly speed: ultraBullet - id: g5DmXHaq createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Horde Arena nbPlayers: 0 variant: key: horde short: Horde name: Horde startsAt: 1778833805000 finishesAt: 1778835425000 status: 10 perf: key: horde name: Horde position: 11 secondsToStart: 21207 schedule: freq: hourly speed: bullet - id: SPDdTr8E createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Three-check Arena nbPlayers: 0 variant: key: threeCheck short: 3check name: Three-check startsAt: 1778833810000 finishesAt: 1778835430000 status: 10 perf: key: threeCheck name: Three-Check position: 8 secondsToStart: 21212 schedule: freq: hourly speed: bullet - id: ThKehDQP createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤1300 Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778833820000 finishesAt: 1778835440000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 21222 hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: jEWALDMn createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Chess960 Arena nbPlayers: 0 variant: key: chess960 short: '960' name: Chess960 startsAt: 1778833830000 finishesAt: 1778835450000 status: 10 perf: key: chess960 name: Chess960 position: 6 secondsToStart: 21232 schedule: freq: hourly speed: bullet - id: lPHYJp6x createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 0 variant: key: standard short: Std name: Standard startsAt: 1778833840000 finishesAt: 1778835460000 status: 10 perf: key: bullet name: Bullet position: 0 icon: T secondsToStart: 21242 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet started: - id: B0vLiFQw createdBy: lichess system: arena minutes: 57 clock: limit: 480 increment: 2 rated: true fullName: ≤2000 Rapid Arena nbPlayers: 207 variant: key: standard short: Std name: Standard startsAt: 1778810400000 finishesAt: 1778813820000 status: 20 perf: key: rapid name: Rapid position: 2 icon: '#' hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid - id: kO9ThH7L createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤1700 Bullet Arena nbPlayers: 31 variant: key: standard short: Std name: Standard startsAt: 1778812200000 finishesAt: 1778813820000 status: 20 perf: key: bullet name: Bullet position: 0 icon: T hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: ablj6YUs createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤1500 SuperBlitz Arena nbPlayers: 99 variant: key: standard short: Std name: Standard startsAt: 1778810420000 finishesAt: 1778813840000 status: 20 perf: key: blitz name: Blitz position: 1 icon: ) hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz - id: 4uPHXNqv createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 23 variant: key: standard short: Std name: Standard startsAt: 1778812240000 finishesAt: 1778813860000 status: 20 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' schedule: freq: hourly speed: ultraBullet - id: FlxHgYR8 createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 107 variant: key: standard short: Std name: Standard startsAt: 1778812220000 finishesAt: 1778813840000 status: 20 perf: key: bullet name: Bullet position: 0 icon: T minRatedGames: nb: 20 schedule: freq: hourly speed: bullet - id: J2WlrUFY createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly SuperBlitz Arena nbPlayers: 358 variant: key: standard short: Std name: Standard startsAt: 1778810405000 finishesAt: 1778813825000 status: 20 perf: key: blitz name: Blitz position: 1 icon: ) minRatedGames: nb: 15 schedule: freq: hourly speed: superBlitz - id: p8HdB8H8 createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: Hourly Blitz Arena nbPlayers: 180 variant: key: standard short: Std name: Standard startsAt: 1778810415000 finishesAt: 1778813835000 status: 20 perf: key: blitz name: Blitz position: 1 icon: ) minRatedGames: nb: 15 schedule: freq: hourly speed: blitz - id: rWvCFazw createdBy: lichess system: arena minutes: 117 clock: limit: 480 increment: 2 rated: true fullName: Hourly Rapid Arena nbPlayers: 155 variant: key: standard short: Std name: Standard startsAt: 1778810425000 finishesAt: 1778817445000 status: 20 perf: key: rapid name: Rapid position: 2 icon: '#' minRatedGames: nb: 10 schedule: freq: hourly speed: rapid - id: s7FI4py5 createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: ≤1300 Blitz Arena nbPlayers: 60 variant: key: standard short: Std name: Standard startsAt: 1778810435000 finishesAt: 1778813855000 status: 20 perf: key: blitz name: Blitz position: 1 icon: ) hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz - id: FeObtTJW createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Antichess Arena nbPlayers: 54 variant: key: antichess short: Anti name: Antichess startsAt: 1778810402500 finishesAt: 1778813822500 status: 20 perf: key: antichess name: Antichess position: 9 schedule: freq: hourly speed: blitz - id: 7yUKlf8L createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Atomic Arena nbPlayers: 38 variant: key: atomic short: Atom name: Atomic startsAt: 1778810407500 finishesAt: 1778813827500 status: 20 perf: key: atomic name: Atomic position: 10 schedule: freq: hourly speed: blitz - id: X0Lq9L1Y createdBy: lichess system: arena minutes: 57 clock: limit: 60 increment: 2 rated: true fullName: Hourly Three-check Arena nbPlayers: 19 variant: key: threeCheck short: 3check name: Three-check startsAt: 1778810412500 finishesAt: 1778813832500 status: 20 perf: key: threeCheck name: Three-Check position: 8 schedule: freq: hourly speed: superBlitz - id: zxVtdIzW createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 3 rated: true fullName: Hourly Chess960 Arena nbPlayers: 39 variant: key: chess960 short: '960' name: Chess960 startsAt: 1778810417500 finishesAt: 1778813837500 status: 20 perf: key: chess960 name: Chess960 position: 6 schedule: freq: hourly speed: blitz - id: QUIOLJLp createdBy: lichess system: arena minutes: 57 clock: limit: 60 increment: 2 rated: true fullName: Hourly Horde Arena nbPlayers: 25 variant: key: horde short: Horde name: Horde startsAt: 1778810422500 finishesAt: 1778813842500 status: 20 perf: key: horde name: Horde position: 11 schedule: freq: hourly speed: superBlitz finished: - id: bE7EU82o createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤1700 Bullet Arena nbPlayers: 59 variant: key: standard short: Std name: Standard startsAt: 1778810440000 finishesAt: 1778812060000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet winner: name: mriguin2010 id: mriguin2010 - id: wQ6ztD4Q createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 176 variant: key: standard short: Std name: Standard startsAt: 1778810430000 finishesAt: 1778812050000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T minRatedGames: nb: 20 schedule: freq: hourly speed: bullet winner: name: Neterobbr2 id: neterobbr2 - id: yyZRQHQ8 createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 50 variant: key: standard short: Std name: Standard startsAt: 1778810410000 finishesAt: 1778812030000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet winner: name: ecstacy002 id: ecstacy002 - id: 4bpzqIgj createdBy: lichess system: arena minutes: 27 clock: limit: 15 increment: 0 rated: true fullName: Hourly UltraBullet Arena nbPlayers: 50 variant: key: standard short: Std name: Standard startsAt: 1778808640000 finishesAt: 1778810260000 status: 30 perf: key: ultraBullet name: UltraBullet position: 4 icon: '{' schedule: freq: hourly speed: ultraBullet winner: name: SadLonelyDreamer id: sadlonelydreamer - id: mcFgf3Ws createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 198 variant: key: standard short: Std name: Standard startsAt: 1778808620000 finishesAt: 1778810240000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T minRatedGames: nb: 20 schedule: freq: hourly speed: bullet winner: name: carlosh99 id: carlosh99 - id: RcjuUMBU createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 1 rated: true fullName: ≤1500 Bullet Arena nbPlayers: 49 variant: key: standard short: Std name: Standard startsAt: 1778808600000 finishesAt: 1778810220000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet winner: name: Sebastiaofragoso id: sebastiaofragoso - id: kl8M1rxq createdBy: lichess system: arena minutes: 57 clock: limit: 600 increment: 0 rated: true fullName: ≤1700 Rapid Arena nbPlayers: 162 variant: key: standard short: Std name: Standard startsAt: 1778806840000 finishesAt: 1778810260000 status: 30 perf: key: rapid name: Rapid position: 2 icon: '#' hasMaxRating: true maxRating: rating: 1700 minRatedGames: nb: 20 schedule: freq: hourly speed: rapid winner: name: Gersonsanti id: gersonsanti - id: XPgpk5xl createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly Atomic Arena nbPlayers: 69 variant: key: atomic short: Atom name: Atomic startsAt: 1778806835000 finishesAt: 1778810255000 status: 30 perf: key: atomic name: Atomic position: 10 schedule: freq: hourly speed: superBlitz winner: name: D0R3X flair: symbols.baby-symbol id: d0r3x - id: ucyiXrFT createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 183 variant: key: standard short: Std name: Standard startsAt: 1778806830000 finishesAt: 1778808450000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T minRatedGames: nb: 20 schedule: freq: hourly speed: bullet winner: name: TheKing flair: objects.crown id: theking - id: kW1LvVjQ createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: ≤1300 SuperBlitz Arena nbPlayers: 64 variant: key: standard short: Std name: Standard startsAt: 1778806825000 finishesAt: 1778810245000 status: 30 perf: key: blitz name: Blitz position: 1 icon: ) hasMaxRating: true maxRating: rating: 1300 minRatedGames: nb: 20 schedule: freq: hourly speed: superBlitz winner: name: Vladhalat2907 id: vladhalat2907 - id: fJvckNID createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: ≤1500 Bullet Arena nbPlayers: 43 variant: key: standard short: Std name: Standard startsAt: 1778806820000 finishesAt: 1778808440000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T hasMaxRating: true maxRating: rating: 1500 minRatedGames: nb: 20 schedule: freq: hourly speed: bullet winner: name: alejandro010493 id: alejandro010493 - id: giQnTLQ2 createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Racing Kings Arena nbPlayers: 18 variant: key: racingKings short: Racing name: Racing Kings startsAt: 1778806817500 finishesAt: 1778810237500 status: 30 perf: key: racingKings name: Racing Kings position: 12 schedule: freq: hourly speed: blitz winner: name: stillinflipflops id: stillinflipflops - id: W4DRLCY9 createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Blitz Arena nbPlayers: 131 variant: key: standard short: Std name: Standard startsAt: 1778806815000 finishesAt: 1778810235000 status: 30 perf: key: blitz name: Blitz position: 1 icon: ) minRatedGames: nb: 15 schedule: freq: hourly speed: blitz winner: name: Arandano22 id: arandano22 - id: AV0Plbwl createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Chess960 Arena nbPlayers: 38 variant: key: chess960 short: '960' name: Chess960 startsAt: 1778806812500 finishesAt: 1778810232500 status: 30 perf: key: chess960 name: Chess960 position: 6 schedule: freq: hourly speed: blitz winner: name: FractalGaming flair: nature.feather id: fractalgaming - id: EchLoIkU createdBy: lichess system: arena minutes: 27 clock: limit: 30 increment: 0 rated: true fullName: Hourly HyperBullet Arena nbPlayers: 62 variant: key: standard short: Std name: Standard startsAt: 1778806810000 finishesAt: 1778808430000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T minRatedGames: nb: 20 schedule: freq: hourly speed: hyperBullet winner: name: account4BD flair: people.troll patron: true patronColor: 4 id: account4bd - id: TSvcHGRH createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly King of the Hill Arena nbPlayers: 14 variant: key: kingOfTheHill short: KotH name: King of the Hill startsAt: 1778806807500 finishesAt: 1778810227500 status: 30 perf: key: kingOfTheHill name: King of the Hill position: 7 schedule: freq: hourly speed: blitz winner: name: panda1924 flair: activity.chess-pawn id: panda1924 - id: EyOmYXww createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 0 rated: true fullName: Hourly SuperBlitz Arena nbPlayers: 439 variant: key: standard short: Std name: Standard startsAt: 1778806805000 finishesAt: 1778810225000 status: 30 perf: key: blitz name: Blitz position: 1 icon: ) minRatedGames: nb: 15 schedule: freq: hourly speed: superBlitz winner: name: PRSCH119 id: prsch119 - id: 1l8tCIEl createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: Hourly Crazyhouse Arena nbPlayers: 49 variant: key: crazyhouse short: Crazy name: Crazyhouse startsAt: 1778806802500 finishesAt: 1778810222500 status: 30 perf: key: crazyhouse name: Crazyhouse position: 5 schedule: freq: hourly speed: blitz winner: name: The_Urban_Turban flair: people.woman-wearing-turban-medium-light-skin-tone id: the_urban_turban - id: UMzJnYiQ createdBy: lichess system: arena minutes: 57 clock: limit: 180 increment: 2 rated: true fullName: ≤2000 Blitz Arena nbPlayers: 304 variant: key: standard short: Std name: Standard startsAt: 1778806800000 finishesAt: 1778810220000 status: 30 perf: key: blitz name: Blitz position: 1 icon: ) hasMaxRating: true maxRating: rating: 2000 minRatedGames: nb: 20 schedule: freq: hourly speed: blitz winner: name: KK_EL id: kk_el - id: NS3SyzlS createdBy: lichess system: arena minutes: 27 clock: limit: 60 increment: 0 rated: true fullName: Hourly Bullet Arena nbPlayers: 189 variant: key: standard short: Std name: Standard startsAt: 1778805040000 finishesAt: 1778806660000 status: 30 perf: key: bullet name: Bullet position: 0 icon: T minRatedGames: nb: 20 schedule: freq: hourly speed: bullet winner: name: GrbecToGrbec id: grbectogrbec arenas-createArena.json: value: nbPlayers: 0 duels: [] secondsToStart: 300 standing: page: 1 players: [] id: M0uoSoAf createdBy: bobby startsAt: '2026-05-15T02:41:38.914694155Z' system: arena fullName: Pogonina Arena minutes: 60 perf: key: blitz name: Blitz icon: ) clock: limit: 300 increment: 0 variant: standard rated: true berserkable: true verdicts: list: - condition: Bot players are not allowed verdict: ok accepted: true quote: text: You know you're going to lose. Even when I was ahead I knew I was going to lose --on playing against Fischer. author: Andrew Soltis greatPlayer: name: Pogonina url: https://wikipedia.org/wiki/Natalia_Pogonina myUsername: Bobby arenas-getArenaById.json: value: nbPlayers: 364 duels: [] isFinished: true podium: - name: RebeccaHarris title: GM patron: true patronColor: 10 rank: 1 rating: 3257 score: 148 nb: game: 69 berserk: 25 win: 46 performance: 3308 - name: Ediz_Gurel title: GM flair: smileys.alien rank: 2 rating: 3230 score: 146 nb: game: 64 berserk: 12 win: 44 performance: 3269 - name: msb2 title: GM patron: true patronColor: 10 rank: 3 rating: 3218 score: 131 nb: game: 74 berserk: 9 win: 44 performance: 3215 pairingsClosed: true stats: games: 5023 moves: 418545 whiteWins: 2476 blackWins: 2236 draws: 311 berserks: 729 averageRating: 2616 standing: page: 1 players: - name: RebeccaHarris title: GM patron: true patronColor: 10 rank: 1 rating: 3257 score: 148 sheet: scores: '030432005442204423030220045423044442201300204220300021033044444423033' - name: Ediz_Gurel title: GM flair: smileys.alien rank: 2 rating: 3230 score: 146 sheet: scores: '4454220224230200000044544432020002242204444220020320204445444422' fire: true - name: msb2 title: GM patron: true patronColor: 10 rank: 3 rating: 3218 score: 131 sheet: scores: '04221204220204220022244220200222423000022020044422044422124422010023303020' - name: nihalsarin2004 title: GM patron: true patronColor: 10 rank: 4 rating: 3236 score: 124 sheet: scores: '30302220030302044220220442204220210022244220202204444422223053200' - name: Arka50 title: GM rank: 5 rating: 3215 score: 122 sheet: scores: '303303002000200220444423002020210422110444444442200202002204444220' - name: chessbrahs title: GM rank: 6 rating: 3115 score: 122 sheet: scores: '220002002020442304542200020000204444422020445220200204220230545220' fire: true - name: neslraCsungaM77 title: GM rank: 7 rating: 3122 score: 121 sheet: scores: '130030000042202422012442202044220204422020022221042213000201022020202044432' - name: ARM-777777 title: GM rank: 8 rating: 3154 score: 119 sheet: scores: '044423030042301021044220220020000000100010200004220444422244444230220320' - name: Night-King96 title: GM patron: true patronColor: 10 rank: 9 rating: 3131 score: 119 sheet: scores: '0000300230302302044220030422044444220200000300003304230533023000305433' - name: tacticthunder title: GM rank: 10 rating: 3051 score: 115 sheet: scores: '20442202044444422100201200020200220044220044220222422022020220422010' id: may24lta createdBy: cormacobear startsAt: '2024-05-25T18:00:00Z' system: arena fullName: Titled Arena May 2024 minutes: 120 perf: key: bullet name: Bullet icon: T clock: limit: 60 increment: 0 variant: standard rated: true spotlight: headline: Titled only, $1,000 prize pool berserkable: true verdicts: list: - condition: Only titled players verdict: ok accepted: true schedule: freq: unique speed: bullet description: "Prizes: $500/$250/$125/$75/$50\r\n\r\n[Warm-up event](https://lichess.org/tournament/may24wua)" onlyTitled: true arenas-updateArena.json: value: nbPlayers: 0 duels: [] secondsToStart: 299 standing: page: 1 players: [] id: M0uoSoAf createdBy: bobby startsAt: '2026-05-15T02:41:38.914Z' system: arena fullName: Updated Arena Arena minutes: 60 perf: key: blitz name: Blitz icon: ) clock: limit: 300 increment: 0 variant: standard rated: true berserkable: true verdicts: list: - condition: Bot players are not allowed verdict: ok accepted: true quote: text: For me right now I think being the world number one is a bigger deal than being the world champion because I think it shows better who plays the best chess. That sounds self-serving but I think it's also right. (2012) author: Magnus Carlsen myUsername: Bobby arenas-getResultsOfArena.json: value: rank: 1 score: 124 rating: 2830 username: penguingim1 title: GM flair: nature.penguin patronColor: 10 performance: 2873 sheet: scores: '2554230000452203303030523003024330543303000305533055330' arenas-getTeamStandingOfTeamBattle.json: value: id: qVDS48xp teams: - rank: 1 id: kingscrusher-youtube-and-twitch-fans score: 1020 players: - user: name: DrMelekess title: IM id: drmelekess score: 127 - user: name: yoseph2013 title: IM flair: objects.alarm-clock id: yoseph2013 score: 126 - user: name: innocentguy title: CM flair: symbols.exclamation-question-mark id: innocentguy score: 88 - user: name: hectorluis2019 title: FM id: hectorluis2019 score: 57 - user: name: Kingscrusher-YouTube title: CM flair: objects.crown patron: true patronColor: 10 id: kingscrusher-youtube score: 50 - user: name: Illyrian12 id: illyrian12 score: 48 - user: name: raketak flair: travel-places.rocket id: raketak score: 48 - user: name: monkins id: monkins score: 46 - user: name: PrincesseRasta flair: people.princess-medium-skin-tone id: princesserasta score: 46 - user: name: cleanR flair: objects.shower id: cleanr score: 41 - user: name: Konek_Gorbunok title: FM id: konek_gorbunok score: 39 - user: name: bsa-waldemar flair: nature.horse id: bsa-waldemar score: 39 - user: name: alex_schmidt id: alex_schmidt score: 37 - user: name: Kasmaran flair: nature.tulip id: kasmaran score: 36 - user: name: gaborszogi id: gaborszogi score: 36 - user: name: BuenosS flair: activity.sparkles id: buenoss score: 35 - user: name: GambitGuru003 flair: smileys.clown-face id: gambitguru003 score: 31 - user: name: elartur id: elartur score: 31 - user: name: Kartal7 id: kartal7 score: 30 - user: name: Oleksandr7chess id: oleksandr7chess score: 29 - rank: 2 id: prizant_academy score: 882 players: - user: name: InFighter title: GM id: infighter score: 125 - user: name: Tyumenskiy_KMC flair: food-drink.burrito id: tyumenskiy_kmc score: 58 - user: name: Endless_May id: endless_may score: 57 - user: name: Ma_Ya_2025 flair: smileys.ghost id: ma_ya_2025 score: 56 - user: name: catalonskiy id: catalonskiy score: 55 - user: name: eleven1_1 id: eleven1_1 score: 44 - user: name: SOLO_PLAYER000 flair: people.backhand-index-pointing-down-dark-skin-tone id: solo_player000 score: 42 - user: name: ChessKing201423 flair: smileys.alien-monster id: chessking201423 score: 42 - user: name: ILYAVES-2012 id: ilyaves-2012 score: 42 - user: name: Danil432 id: danil432 score: 39 - user: name: wAsAd_09 id: wasad_09 score: 39 - user: name: Kogalymskiy_KMC flair: smileys.ogre id: kogalymskiy_kmc score: 37 - user: name: Zurab3200 id: zurab3200 score: 37 - user: name: nneptune flair: smileys.alien id: nneptune score: 34 - user: name: GReenTEA11 flair: smileys.clown-face id: greentea11 score: 32 - user: name: KengurOFF_Yarik id: kenguroff_yarik score: 31 - user: name: saint_revenge flair: activity.moon-viewing-ceremony id: saint_revenge score: 31 - user: name: Krokodil_genadiy flair: nature.crocodile id: krokodil_genadiy score: 29 - user: name: Crazy_Carlsen007 id: crazy_carlsen007 score: 27 - user: name: KononovSemyon2010 flair: travel-places.racing-car id: kononovsemyon2010 score: 25 - rank: 3 id: the-house-discord-server score: 843 players: - user: name: OnePysy id: onepysy score: 77 - user: name: TheFinnisher patron: true patronColor: 10 id: thefinnisher score: 72 - user: name: ChesswarriorTampere id: chesswarriortampere score: 54 - user: name: SANTANA_LUIS id: santana_luis score: 53 - user: name: L1-Master flair: objects.telephone id: l1-master score: 51 - user: name: newgrip id: newgrip score: 45 - user: name: Blitz_40 id: blitz_40 score: 45 - user: name: malyy title: IM id: malyy score: 40 - user: name: cbvu id: cbvu score: 39 - user: name: IvanSergeevich2012 flair: nature.fire id: ivansergeevich2012 score: 37 - user: name: Fischer_fann id: fischer_fann score: 37 - user: name: Chill_Twink id: chill_twink score: 35 - user: name: cuvilla10 id: cuvilla10 score: 34 - user: name: AmtheCoyote id: amthecoyote score: 34 - user: name: stillmodern id: stillmodern score: 33 - user: name: Giascacchiii id: giascacchiii score: 33 - user: name: sugarsweet20 flair: people.person-swimming-dark-skin-tone id: sugarsweet20 score: 32 - user: name: Chess_player_12134 flair: food-drink.popcorn id: chess_player_12134 score: 31 - user: name: Maksat-LBP id: maksat-lbp score: 31 - user: name: Chess_god22 flair: smileys.money-mouth-face id: chess_god22 score: 30 - rank: 4 id: xaj9uK9X score: 737 players: - user: name: Serg_01 flair: objects.graduation-cap id: serg_01 score: 88 - user: name: Shefer_Aleksandr id: shefer_aleksandr score: 63 - user: name: VladimirKruglikov flair: symbols.trade-mark id: vladimirkruglikov score: 58 - user: name: Experimentator1 id: experimentator1 score: 56 - user: name: edgemen title: CM id: edgemen score: 52 - user: name: Black_Winter_Day title: IM flair: symbols.black-circle id: black_winter_day score: 50 - user: name: maurete8 id: maurete8 score: 45 - user: name: Mychessme id: mychessme score: 42 - user: name: porosjator id: porosjator score: 40 - user: name: ruma-x id: ruma-x score: 38 - user: name: neon777879 id: neon777879 score: 30 - user: name: darkjade id: darkjade score: 24 - user: name: berkut94 flair: nature.wing id: berkut94 score: 24 - user: name: Dimeloquetepaso id: dimeloquetepaso score: 22 - user: name: salsaweek75 flair: nature.octopus id: salsaweek75 score: 19 - user: name: Netblaty id: netblaty score: 19 - user: name: buld3r flair: symbols.trade-mark id: buld3r score: 19 - user: name: PardayevSheralichem1 id: pardayevsheralichem1 score: 16 - user: name: hesham_elmasry3 id: hesham_elmasry3 score: 16 - user: name: Alex14102014 id: alex14102014 score: 16 - rank: 5 id: cu4tG2sO score: 737 players: - user: name: Spartan_Lion title: FM flair: activity.lichess-blitz id: spartan_lion score: 66 - user: name: Frolov_75 id: frolov_75 score: 47 - user: name: Mariia29 title: WFM flair: nature.cherry-blossom id: mariia29 score: 45 - user: name: Lymrith title: CM id: lymrith score: 44 - user: name: greshnik333_ASF id: greshnik333_asf score: 40 - user: name: Cubaca id: cubaca score: 40 - user: name: Murmansk_resident id: murmansk_resident score: 37 - user: name: Kedr-94 id: kedr-94 score: 36 - user: name: sasha_solovev_777 title: CM id: sasha_solovev_777 score: 36 - user: name: vasiliyperedruk id: vasiliyperedruk score: 36 - user: name: artist_51 flair: travel-places.anchor id: artist_51 score: 36 - user: name: Road_to_back id: road_to_back score: 35 - user: name: skritsky id: skritsky score: 34 - user: name: APavel73 flair: nature.crab id: apavel73 score: 33 - user: name: Zarra22 id: zarra22 score: 30 - user: name: Jared_Nomak id: jared_nomak score: 30 - user: name: Spartan_Tiger id: spartan_tiger score: 30 - user: name: Gennadij1983 flair: nature.high-voltage id: gennadij1983 score: 29 - user: name: svpopov flair: smileys.ghost id: svpopov score: 27 - user: name: V-62 id: v-62 score: 26 - rank: 6 id: chessfns score: 729 players: - user: name: TysonT id: tysont score: 47 - user: name: Sadykov_aidar id: sadykov_aidar score: 47 - user: name: forge82 flair: nature.zebra id: forge82 score: 47 - user: name: knight_fromg1 id: knight_fromg1 score: 45 - user: name: TolTolEm title: FM id: toltolem score: 44 - user: name: mikepereverzev id: mikepereverzev score: 44 - user: name: GrigoriyMIFNS2 id: grigoriymifns2 score: 38 - user: name: nanptv id: nanptv score: 37 - user: name: Rodion_Raskolnikoff flair: objects.pick id: rodion_raskolnikoff score: 35 - user: name: Vatutin-Andrey id: vatutin-andrey score: 35 - user: name: AAA_1983 id: aaa_1983 score: 34 - user: name: Edchess_48 id: edchess_48 score: 32 - user: name: skomorohov_greg id: skomorohov_greg score: 32 - user: name: Dmitry_Vtulkin id: dmitry_vtulkin score: 32 - user: name: theNextOne10 id: thenextone10 score: 32 - user: name: antonsgau flair: people.anatomical-heart id: antonsgau score: 31 - user: name: SergeyBetz_1989 flair: symbols.trident-emblem id: sergeybetz_1989 score: 31 - user: name: Maxi100 id: maxi100 score: 30 - user: name: ASG1972 id: asg1972 score: 29 - user: name: DMVP1963 id: dmvp1963 score: 27 - rank: 7 id: zhigalko_sergei-fan-club score: 727 players: - user: name: Son_KFC id: son_kfc score: 62 - user: name: Haitbayev_Hayrulla flair: symbols.trade-mark id: haitbayev_hayrulla score: 55 - user: name: walid1337 id: walid1337 score: 52 - user: name: FortoviiHalyavshik52 flair: nature.ringed-planet id: fortoviihalyavshik52 score: 51 - user: name: VazgenKarakhanyan id: vazgenkarakhanyan score: 43 - user: name: x_MertDemirel_x id: x_mertdemirel_x score: 42 - user: name: kingstar70 id: kingstar70 score: 39 - user: name: Ryskal id: ryskal score: 34 - user: name: Talchessmaster27 id: talchessmaster27 score: 33 - user: name: tomi74 id: tomi74 score: 32 - user: name: emandr flair: smileys.cold-face patron: true patronColor: 2 id: emandr score: 31 - user: name: Vovan-number_1 flair: symbols.heart-on-fire id: vovan-number_1 score: 29 - user: name: MANDARINA_1963 flair: smileys.pleading-face id: mandarina_1963 score: 29 - user: name: Dudukas id: dudukas score: 29 - user: name: rikmath_OPG id: rikmath_opg score: 29 - user: name: Lesnick86 id: lesnick86 score: 29 - user: name: Ess_danny id: ess_danny score: 27 - user: name: sudhir880 id: sudhir880 score: 27 - user: name: VadymDybrova1 flair: activity.ping-pong id: vadymdybrova1 score: 27 - user: name: kaczuszka12345 id: kaczuszka12345 score: 27 - rank: 8 id: ypuTgyS4 score: 694 players: - user: name: vvtb id: vvtb score: 61 - user: name: Olonorik id: olonorik score: 48 - user: name: iGor-mikryukov id: igor-mikryukov score: 45 - user: name: vladimirenderov flair: people.anatomical-heart id: vladimirenderov score: 43 - user: name: Voldemator title: FM id: voldemator score: 42 - user: name: Baryshnikov1974 flair: people.handshake-light-skin-tone id: baryshnikov1974 score: 40 - user: name: vazhenin33 flair: nature.sun id: vazhenin33 score: 37 - user: name: Katok_64 id: katok_64 score: 34 - user: name: RacingCat64 id: racingcat64 score: 33 - user: name: Kamrad_67 id: kamrad_67 score: 33 - user: name: Yadolov id: yadolov score: 33 - user: name: Satuev_Emin95 id: satuev_emin95 score: 32 - user: name: alextur77 id: alextur77 score: 31 - user: name: KINGSIZE-1 flair: people.anatomical-heart id: kingsize-1 score: 30 - user: name: ks3sa1 flair: food-drink.pear patron: true patronColor: 4 id: ks3sa1 score: 29 - user: name: Kriss92 flair: people.anatomical-heart id: kriss92 score: 26 - user: name: AleksandraYurevnaDUT id: aleksandrayurevnadut score: 26 - user: name: GnevChess29 id: gnevchess29 score: 25 - user: name: Sergej73 id: sergej73 score: 24 - user: name: Valentina-Marta flair: nature.rose id: valentina-marta score: 22 - rank: 9 id: wag-sli-17 score: 662 players: - user: name: Annabelle_JDS id: annabelle_jds score: 70 - user: name: Subang_KCI flair: objects.crossed-swords id: subang_kci score: 50 - user: name: Pedang_pusaka id: pedang_pusaka score: 49 - user: name: JEeTLii_SLI id: jeetlii_sli score: 44 - user: name: Nurdin_Sasambo id: nurdin_sasambo score: 44 - user: name: silalahifranciscus flair: objects.crossed-swords id: silalahifranciscus score: 42 - user: name: Kijang_Bogard id: kijang_bogard score: 38 - user: name: Pemburu-BPJS_KCI id: pemburu-bpjs_kci score: 37 - user: name: MA_CEN_INA id: ma_cen_ina score: 37 - user: name: Manik_TCC id: manik_tcc score: 35 - user: name: Ade21h flair: activity.1st-place-medal id: ade21h score: 34 - user: name: HermanAdistya flair: nature.eagle id: hermanadistya score: 30 - user: name: KHILAFAH_SLI id: khilafah_sli score: 27 - user: name: Edipurnomo01 id: edipurnomo01 score: 24 - user: name: Senopati_Winaya flair: objects.crown id: senopati_winaya score: 24 - user: name: daraw id: daraw score: 21 - user: name: MONSTER_SLI flair: smileys.angry-face-with-horns id: monster_sli score: 17 - user: name: Bari_Kasparov id: bari_kasparov score: 16 - user: name: Advokat_Dodi flair: people.man-judge-light-skin-tone id: advokat_dodi score: 13 - user: name: DENHARI flair: nature.bat id: denhari score: 10 - rank: 10 id: sadistic-minions score: 625 players: - user: name: RedJadeStaff_2010 id: redjadestaff_2010 score: 69 - user: name: Kid_power id: kid_power score: 54 - user: name: akk_242010 flair: nature.bear id: akk_242010 score: 50 - user: name: sadisticTushi flair: food-drink.french-fries patron: true patronColor: 10 id: sadistictushi score: 47 - user: name: player50934 flair: smileys.alien id: player50934 score: 43 - user: name: HaraldEtuna title: FM patron: true patronColor: 10 id: haraldetuna score: 39 - user: name: Q_960 id: q_960 score: 37 - user: name: AarushBhat512 flair: people.baby-angel-light-skin-tone id: aarushbhat512 score: 33 - user: name: hosannasendie2010 flair: smileys.weary-cat id: hosannasendie2010 score: 32 - user: name: KongChess2011P flair: travel-places.moai id: kongchess2011p score: 27 - user: name: magnuschess1982 flair: smileys.alien-monster id: magnuschess1982 score: 22 - user: name: chesshans1 id: chesshans1 score: 22 - user: name: Aryan_Krish flair: people.man-mage id: aryan_krish score: 20 - user: name: afoodb flair: smileys.clown-face id: afoodb score: 20 - user: name: Gee_2006 flair: smileys.alien id: gee_2006 score: 20 - user: name: Black_panther357 flair: smileys.smiling-face-with-horns id: black_panther357 score: 18 - user: name: Janis_Grigulis flair: nature.dragon id: janis_grigulis score: 18 - user: name: unbeatablegod flair: nature.horse-face id: unbeatablegod score: 18 - user: name: PiyushP_K id: piyushp_k score: 18 - user: name: shippyboat flair: nature.last-quarter-moon-face id: shippyboat score: 18 - rank: 11 id: crestbook-chess-club score: 553 players: - user: name: DebyutElshada id: debyutelshada score: 40 - user: name: SBERO555 flair: activity.soccer-ball id: sbero555 score: 39 - user: name: Sea_Spb2 id: sea_spb2 score: 36 - user: name: Wizzard76 flair: smileys.smiling-face-with-sunglasses id: wizzard76 score: 35 - user: name: PUTNIK_A id: putnik_a score: 34 - user: name: samvel1970 id: samvel1970 score: 30 - user: name: BRAIN_KILLER_77 id: brain_killer_77 score: 29 - user: name: SerenkiySochi2022 id: serenkiysochi2022 score: 28 - user: name: shadow_wth id: shadow_wth score: 28 - user: name: damir1984 id: damir1984 score: 28 - user: name: hash-shrink flair: symbols.gnu-logo id: hash-shrink score: 28 - user: name: Fast_chess_player id: fast_chess_player score: 25 - user: name: HartMan54 id: hartman54 score: 24 - user: name: Gravitsapa_1 id: gravitsapa_1 score: 24 - user: name: terzic64 id: terzic64 score: 23 - user: name: magnus202025 flair: smileys.confused-face id: magnus202025 score: 23 - user: name: Bobluh id: bobluh score: 21 - user: name: Time-to-Win20 flair: objects.test-tube id: time-to-win20 score: 21 - user: name: Seba2202 id: seba2202 score: 20 - user: name: nix70 id: nix70 score: 17 - rank: 12 id: ollachess score: 505 players: - user: name: kapinovo id: kapinovo score: 70 - user: name: yuriy76 flair: nature.scorpion id: yuriy76 score: 51 - user: name: dark_angel_rinat flair: objects.headphone id: dark_angel_rinat score: 36 - user: name: av1203 id: av1203 score: 31 - user: name: Rumoleg id: rumoleg score: 30 - user: name: DIZTRACT flair: smileys.cold-face id: diztract score: 30 - user: name: valeraua id: valeraua score: 29 - user: name: tushinskiy id: tushinskiy score: 28 - user: name: Olga31 flair: activity.chess-pawn patron: true patronColor: 10 id: olga31 score: 28 - user: name: FermerMaks id: fermermaks score: 27 - user: name: Fighter1978 id: fighter1978 score: 26 - user: name: Okmal1975 id: okmal1975 score: 26 - user: name: sivkaburka flair: nature.fox id: sivkaburka score: 24 - user: name: JohnCoffi id: johncoffi score: 23 - user: name: den7778 flair: people.footprints id: den7778 score: 16 - user: name: Artem_123_n flair: nature.crocodile id: artem_123_n score: 12 - user: name: Denisrussos75 id: denisrussos75 score: 12 - user: name: Zico1982 id: zico1982 score: 4 - user: name: Lexeika flair: nature.horse-face id: lexeika score: 2 - user: name: SSaveliev id: ssaveliev score: 0 - rank: 13 id: france-deutschland-group score: 475 players: - user: name: DJ_Haubi title: GM flair: nature.crocodile patron: true patronColor: 6 id: dj_haubi score: 55 - user: name: A-HF flair: symbols.double-curly-loop id: a-hf score: 46 - user: name: Steff_LE patron: true patronColor: 4 id: steff_le score: 43 - user: name: Masterchessgod1 flair: smileys.alien id: masterchessgod1 score: 42 - user: name: knix05 flair: symbols.copyright patron: true patronColor: 9 id: knix05 score: 42 - user: name: JC52 id: jc52 score: 40 - user: name: ulrichwerner id: ulrichwerner score: 37 - user: name: yschla id: yschla score: 33 - user: name: escoubille id: escoubille score: 25 - user: name: dietmar_bratsche id: dietmar_bratsche score: 20 - user: name: Alcedo flair: symbols.small-blue-diamond patron: true patronColor: 1 id: alcedo score: 19 - user: name: Tipp-Kick flair: activity.soccer-ball id: tipp-kick score: 18 - user: name: Knightinthenight123 flair: objects.drum id: knightinthenight123 score: 15 - user: name: Gambitgourmand id: gambitgourmand score: 9 - user: name: Boulou88 id: boulou88 score: 8 - user: name: Tigerauge id: tigerauge score: 6 - user: name: noniplus3 flair: objects.nazar-amulet id: noniplus3 score: 6 - user: name: MagBlaise flair: people.dna patron: true patronColor: 10 id: magblaise score: 5 - user: name: phenix3-4 id: phenix3-4 score: 4 - user: name: Renoir1718 flair: objects.hiking-boot patron: true patronColor: 6 id: renoir1718 score: 2 - rank: 14 id: pk5g37bM score: 404 players: - user: name: ENajer title: GM id: enajer score: 57 - user: name: somer id: somer score: 42 - user: name: Afobazol id: afobazol score: 42 - user: name: bayad2016 id: bayad2016 score: 36 - user: name: EvgeniyGaevskiy flair: people.eyes id: evgeniygaevskiy score: 28 - user: name: MakhmudovRuslan flair: people.man-supervillain-light-skin-tone id: makhmudovruslan score: 28 - user: name: Rvova flair: smileys.crying-face id: rvova score: 26 - user: name: LEOMUR flair: activity.lichess-berserk id: leomur score: 26 - user: name: nike_460 id: nike_460 score: 24 - user: name: Etud-otradnoe title: IM flair: activity.chess-pawn id: etud-otradnoe score: 20 - user: name: kotovo id: kotovo score: 20 - user: name: valera238 flair: nature.wing id: valera238 score: 15 - user: name: gramrusjr flair: symbols.cancer id: gramrusjr score: 11 - user: name: YaromirKrasnov id: yaromirkrasnov score: 9 - user: name: Medvo id: medvo score: 8 - user: name: Vladik5godov id: vladik5godov score: 8 - user: name: Herobrine666 flair: symbols.dizzy id: herobrine666 score: 2 - user: name: nikolay_18 id: nikolay_18 score: 2 - user: name: Dima_Budanov2011 id: dima_budanov2011 score: 0 - user: name: Egor-Zakharov flair: travel-places.rocket id: egor-zakharov score: 0 - rank: 15 id: team-zaporizhzhia-region---- score: 376 players: - user: name: berlizovst id: berlizovst score: 56 - user: name: Pro_100_Sasha id: pro_100_sasha score: 49 - user: name: infection id: infection score: 43 - user: name: ysp12 flair: travel-places.bicycle id: ysp12 score: 42 - user: name: berlizov_vl id: berlizov_vl score: 41 - user: name: YuriiShaliapin flair: objects.rescue-workers-helmet id: yuriishaliapin score: 39 - user: name: vovaapelsin id: vovaapelsin score: 33 - user: name: vcothurnatus patron: true patronColor: 10 id: vcothurnatus score: 25 - user: name: A-Zubarev title: GM id: a-zubarev score: 20 - user: name: Vlad-Korobka id: vlad-korobka score: 16 - user: name: Leskov_Andrii id: leskov_andrii score: 8 - user: name: artemmmmmmmmmmossssa flair: symbols.zzz id: artemmmmmmmmmmossssa score: 2 - user: name: AntypovVladyslav id: antypovvladyslav score: 2 - user: name: vasyl_puzanov patron: true patronColor: 10 id: vasyl_puzanov score: 0 - rank: 16 id: bazar-wokzal-chess score: 363 players: - user: name: Frezzerr id: frezzerr score: 49 - user: name: Glodjevo777 flair: symbols.keycap-digit-seven id: glodjevo777 score: 46 - user: name: novice1021 id: novice1021 score: 45 - user: name: Leonid_A id: leonid_a score: 40 - user: name: Evgenix1999 flair: smileys.rolling-on-the-floor-laughing id: evgenix1999 score: 35 - user: name: Nessmyslov id: nessmyslov score: 34 - user: name: Shihovsn id: shihovsn score: 33 - user: name: sergei1956q id: sergei1956q score: 28 - user: name: Canadopitek id: canadopitek score: 24 - user: name: Mikhail_CAN id: mikhail_can score: 21 - user: name: ManManych id: manmanych score: 8 - rank: 17 id: yJlI9KRQ score: 362 players: - user: name: Netkachev-1969 flair: activity.lichess-horsey id: netkachev-1969 score: 43 - user: name: Sibiryik_Viktor78 id: sibiryik_viktor78 score: 42 - user: name: Kyzja_Lakomkin id: kyzja_lakomkin score: 34 - user: name: Fortu72 id: fortu72 score: 31 - user: name: Alex_Muezersky flair: nature.rose id: alex_muezersky score: 28 - user: name: fair18 flair: people.deaf-man-light-skin-tone id: fair18 score: 27 - user: name: Bisern id: bisern score: 27 - user: name: aso14643 id: aso14643 score: 26 - user: name: lutsenko2020 id: lutsenko2020 score: 21 - user: name: Yacek1111 id: yacek1111 score: 21 - user: name: ALex_Mixeev id: alex_mixeev score: 19 - user: name: ANDR71 id: andr71 score: 17 - user: name: Igorklepikov1970 id: igorklepikov1970 score: 14 - user: name: Prokopenko_Yura id: prokopenko_yura score: 12 - user: name: Maiboroda2901 id: maiboroda2901 score: 0 - rank: 18 id: moon-club score: 352 players: - user: name: Cyndaquilk flair: smileys.alien-monster id: cyndaquilk score: 57 - user: name: javadrahimi1990123 id: javadrahimi1990123 score: 39 - user: name: daag28 id: daag28 score: 36 - user: name: hi_nick_OK flair: activity.lichess-blitz id: hi_nick_ok score: 34 - user: name: DualKings flair: people.prince id: dualkings score: 29 - user: name: KiKiKiRA title: IM flair: smileys.cold-face id: kikikira score: 26 - user: name: zeitnotakrobat flair: activity.lichess-horsey id: zeitnotakrobat score: 20 - user: name: mgpro1 flair: symbols.move-brilliant id: mgpro1 score: 16 - user: name: Jaqueconapellido flair: objects.top-hat id: jaqueconapellido score: 14 - user: name: Karlo0300 flair: smileys.grinning-cat id: karlo0300 score: 12 - user: name: Abilmansur_Kalym id: abilmansur_kalym score: 11 - user: name: MATE_IN_111 flair: nature.phoenix-bird id: mate_in_111 score: 11 - user: name: MusicalHumorouspawn id: musicalhumorouspawn score: 10 - user: name: Abcdefu123 id: abcdefu123 score: 8 - user: name: Himothyplayed flair: activity.1st-place-medal id: himothyplayed score: 7 - user: name: venkat22 id: venkat22 score: 7 - user: name: Whoatemylunch id: whoatemylunch score: 6 - user: name: winordraw4566 id: winordraw4566 score: 4 - user: name: TheOne_Kuba id: theone_kuba score: 3 - user: name: buratinocchio id: buratinocchio score: 2 - rank: 19 id: UtnvDtQU score: 350 players: - user: name: esenkulov id: esenkulov score: 48 - user: name: Naryss id: naryss score: 46 - user: name: rossolimo44 id: rossolimo44 score: 44 - user: name: kanachess id: kanachess score: 40 - user: name: BlitzMaestro77 id: blitzmaestro77 score: 39 - user: name: kubanychsyimyk2011 id: kubanychsyimyk2011 score: 34 - user: name: KyrgyzChess id: kyrgyzchess score: 29 - user: name: KyrgyzChessUnion id: kyrgyzchessunion score: 29 - user: name: Koshi61 id: koshi61 score: 26 - user: name: KubaKg id: kubakg score: 12 - user: name: F2_F4 id: f2_f4 score: 3 - user: name: Sardarbek-Nurdinuulu id: sardarbek-nurdinuulu score: 0 - rank: 20 id: 8nt31Aba score: 348 players: - user: name: Galen_Malen id: galen_malen score: 46 - user: name: Golosov0811 id: golosov0811 score: 35 - user: name: nasty_boar id: nasty_boar score: 26 - user: name: misha_pecherkin id: misha_pecherkin score: 23 - user: name: Valientime flair: smileys.skull-and-crossbones id: valientime score: 21 - user: name: Anastasia_v1 flair: people.eyes id: anastasia_v1 score: 20 - user: name: ToksidoMask id: toksidomask score: 16 - user: name: PashKKKa id: pashkkka score: 16 - user: name: GLEB_INTER flair: nature.beaver id: gleb_inter score: 15 - user: name: obvious84 id: obvious84 score: 14 - user: name: am1r3434 flair: nature.beaver id: am1r3434 score: 13 - user: name: koristov id: koristov score: 13 - user: name: Mdoctor368 id: mdoctor368 score: 12 - user: name: mjvxh id: mjvxh score: 12 - user: name: ilvms id: ilvms score: 12 - user: name: Master_Darkholm id: master_darkholm score: 12 - user: name: MyFriend2004 flair: smileys.face-with-open-eyes-and-hand-over-mouth id: myfriend2004 score: 11 - user: name: KoPaTblcH_BomBa id: kopatblch_bomba score: 11 - user: name: mixarower id: mixarower score: 10 - user: name: I_human_I id: i_human_i score: 10 - rank: 21 id: the-art-of-chess-club score: 331 players: - user: name: pernat id: pernat score: 51 - user: name: Hyzhyz85 id: hyzhyz85 score: 36 - user: name: Semurg7 id: semurg7 score: 31 - user: name: Michail1967 id: michail1967 score: 28 - user: name: PavelTankov flair: nature.tiger-face id: paveltankov score: 27 - user: name: AlevtinkA flair: nature.last-quarter-moon id: alevtinka score: 26 - user: name: VasiliusQQ flair: smileys.alien id: vasiliusqq score: 25 - user: name: WI_ST patron: true patronColor: 2 id: wi_st score: 24 - user: name: SmerchLuch id: smerchluch score: 23 - user: name: abcde25 id: abcde25 score: 18 - user: name: KirCAT id: kircat score: 14 - user: name: C_T_A_C_R_M_6_A flair: food-drink.beer-mug id: c_t_a_c_r_m_6_a score: 14 - user: name: DeLaMaestro id: delamaestro score: 6 - user: name: maltcrest id: maltcrest score: 3 - user: name: Forsta id: forsta score: 3 - user: name: vladimir_jurii_55 id: vladimir_jurii_55 score: 2 - user: name: sevenchanger1986 flair: nature.owl id: sevenchanger1986 score: 0 - user: name: Chess4YouTube flair: nature.fox id: chess4youtube score: 0 - user: name: Lisov_Stepan flair: nature.fox id: lisov_stepan score: 0 - user: name: Vitalionoff id: vitalionoff score: 0 - rank: 22 id: livechess score: 323 players: - user: name: i-play-atomic flair: food-drink.beer-mug id: i-play-atomic score: 54 - user: name: Accidental_defeat flair: activity.soccer-ball id: accidental_defeat score: 34 - user: name: alex120864 id: alex120864 score: 34 - user: name: csakmakk id: csakmakk score: 29 - user: name: YurKh id: yurkh score: 28 - user: name: Islomov_Azizbek_Asak flair: nature.wolf id: islomov_azizbek_asak score: 21 - user: name: d_a_matist flair: nature.phoenix-bird id: d_a_matist score: 18 - user: name: REDi43 flair: symbols.white-star id: redi43 score: 16 - user: name: ArmanSardaryan flair: activity.trophy id: armansardaryan score: 16 - user: name: Babapro456 flair: smileys.smiling-face-with-tear id: babapro456 score: 15 - user: name: vadim3103-9608_v id: vadim3103-9608_v score: 13 - user: name: Csaba4b id: csaba4b score: 12 - user: name: Garik2379 id: garik2379 score: 12 - user: name: Miss_Initiative flair: nature.spider-web id: miss_initiative score: 8 - user: name: ahajihoseini id: ahajihoseini score: 5 - user: name: rehansyakha id: rehansyakha score: 2 - user: name: tahakhalili1389 flair: activity.chess-pawn id: tahakhalili1389 score: 2 - user: name: azhardoesthings id: azhardoesthings score: 2 - user: name: KnightVision8 flair: symbols.gnu-logo id: knightvision8 score: 2 - user: name: SluchaynazPOBEDA flair: symbols.no-entry id: sluchaynazpobeda score: 0 - rank: 23 id: valid_all score: 321 players: - user: name: sergeyzharkov id: sergeyzharkov score: 45 - user: name: mimimishka2507 flair: nature.polar-bear id: mimimishka2507 score: 39 - user: name: NemchikSersh flair: objects.pill id: nemchiksersh score: 31 - user: name: Nastya_2005 flair: nature.baby-chick id: nastya_2005 score: 25 - user: name: Oleg1968Tula id: oleg1968tula score: 22 - user: name: KrokodilRU id: krokodilru score: 20 - user: name: Den_Eroma id: den_eroma score: 20 - user: name: Dimas040681 flair: objects.pill id: dimas040681 score: 20 - user: name: Karabas-Barabass flair: activity.military-medal id: karabas-barabass score: 20 - user: name: maligynartem id: maligynartem score: 20 - user: name: VAA_aaa flair: food-drink.cocktail-glass id: vaa_aaa score: 17 - user: name: Irina_Kruti flair: objects.pill id: irina_kruti score: 15 - user: name: Ko3a_B_Kegax flair: objects.pill id: ko3a_b_kegax score: 12 - user: name: kkolenka id: kkolenka score: 8 - user: name: DarkoCG id: darkocg score: 7 - user: name: VALID_ALL flair: objects.pill id: valid_all score: 0 - rank: 24 id: khelegaaaa-chess score: 319 players: - user: name: Master_011 id: master_011 score: 52 - user: name: baniyaaadmihoon flair: activity.chess-pawn id: baniyaaadmihoon score: 39 - user: name: sandbagger07 id: sandbagger07 score: 38 - user: name: nISHANthGDSouza10 id: nishanthgdsouza10 score: 33 - user: name: adityayadav2706 flair: smileys.alien-monster id: adityayadav2706 score: 29 - user: name: Vivek405 id: vivek405 score: 28 - user: name: Chess_combest id: chess_combest score: 28 - user: name: ayush9488 id: ayush9488 score: 19 - user: name: Himanshujha01 id: himanshujha01 score: 15 - user: name: ayushgarg209 id: ayushgarg209 score: 12 - user: name: Shourya29 flair: objects.abacus id: shourya29 score: 11 - user: name: Akashoooo flair: activity.1st-place-medal id: akashoooo score: 9 - user: name: vaibhavasthana id: vaibhavasthana score: 6 - user: name: Ikiguy flair: nature.hibiscus id: ikiguy score: 0 - user: name: Ryan713 id: ryan713 score: 0 - rank: 25 id: ajedrez--las-higueras- score: 288 players: - user: name: Maat39 id: maat39 score: 48 - user: name: JavixAND flair: smileys.alien id: javixand score: 36 - user: name: HMG57 id: hmg57 score: 31 - user: name: rompon id: rompon score: 30 - user: name: trenerdarko id: trenerdarko score: 26 - user: name: fokilokium id: fokilokium score: 22 - user: name: orly38 id: orly38 score: 22 - user: name: TamudoesDIOS id: tamudoesdios score: 12 - user: name: Colomboloza id: colomboloza score: 10 - user: name: Teodoro2020 id: teodoro2020 score: 8 - user: name: Ivan2389 id: ivan2389 score: 7 - user: name: Canibula id: canibula score: 6 - user: name: Serhat222 id: serhat222 score: 6 - user: name: rayitoys1 id: rayitoys1 score: 5 - user: name: erucasativa id: erucasativa score: 4 - user: name: samuelkumar id: samuelkumar score: 4 - user: name: MiroslavK flair: people.thumbs-up-medium-light-skin-tone id: miroslavk score: 4 - user: name: josemoli01 id: josemoli01 score: 3 - user: name: PORTOSIV id: portosiv score: 2 - user: name: Kevynn39 id: kevynn39 score: 2 - rank: 26 id: ulugbek-company score: 271 players: - user: name: Mehriban2000 flair: nature.ant id: mehriban2000 score: 53 - user: name: babash1990 id: babash1990 score: 42 - user: name: M1ghty_24 flair: symbols.zzz id: m1ghty_24 score: 37 - user: name: NJn79nj63 id: njn79nj63 score: 29 - user: name: alihanTkm flair: smileys.cowboy-hat-face id: alihantkm score: 28 - user: name: ahmet_1337 id: ahmet_1337 score: 21 - user: name: umatyakubow1977 id: umatyakubow1977 score: 19 - user: name: Rahym2887 flair: symbols.trade-mark id: rahym2887 score: 18 - user: name: aybolek20133 id: aybolek20133 score: 14 - user: name: Ali_ne id: ali_ne score: 8 - user: name: Isgender_08 flair: people.drop-of-blood id: isgender_08 score: 2 - user: name: Tkmchesslbp flair: activity.lichess-bullet id: tkmchesslbp score: 0 - rank: 27 id: tequila-club score: 257 players: - user: name: Evgenyermolaev title: FM id: evgenyermolaev score: 67 - user: name: MASINA89 flair: people.flexed-biceps id: masina89 score: 54 - user: name: carlson85 id: carlson85 score: 50 - user: name: Glintvein id: glintvein score: 42 - user: name: duha83 id: duha83 score: 38 - user: name: Chama2010 id: chama2010 score: 6 - rank: 28 id: 3pe91Ykb score: 247 players: - user: name: MagomedLushnikov id: magomedlushnikov score: 39 - user: name: Fedor21_2015 flair: activity.lichess-classical id: fedor21_2015 score: 34 - user: name: AlexLazarevA5 flair: activity.wrapped-gift id: alexlazareva5 score: 26 - user: name: Suddyga flair: symbols.hundred-points id: suddyga score: 25 - user: name: nyr-75 flair: smileys.cowboy-hat-face id: nyr-75 score: 24 - user: name: Alexander555 id: alexander555 score: 20 - user: name: Fedor096 id: fedor096 score: 18 - user: name: kanishjain1603 flair: smileys.cold-face id: kanishjain1603 score: 18 - user: name: LevRiv flair: nature.lion id: levriv score: 14 - user: name: MDmatin id: mdmatin score: 10 - user: name: Dekorator id: dekorator score: 5 - user: name: Berrcules flair: nature.hedgehog id: berrcules score: 5 - user: name: Murat-69 id: murat-69 score: 3 - user: name: daaleksandrov title: CM flair: activity.performing-arts id: daaleksandrov score: 2 - user: name: ChessAlex50 id: chessalex50 score: 2 - user: name: Bakif1959 id: bakif1959 score: 2 - user: name: Okonoo flair: nature.cat id: okonoo score: 0 - rank: 29 id: golden-brigade score: 240 players: - user: name: STAR_ARYA flair: nature.star id: star_arya score: 34 - user: name: javid_khanahmadi id: javid_khanahmadi score: 28 - user: name: WilhelmSteinitz1990 flair: activity.sparkles id: wilhelmsteinitz1990 score: 25 - user: name: komeilghorbani93 flair: objects.crown id: komeilghorbani93 score: 20 - user: name: drkarimi flair: activity.trophy id: drkarimi score: 20 - user: name: amirali-sh2012 id: amirali-sh2012 score: 20 - user: name: Sheyda1395 flair: smileys.smiling-face-with-horns id: sheyda1395 score: 19 - user: name: Nikannabizade1392 id: nikannabizade1392 score: 17 - user: name: ArastouAmel flair: people.genie id: arastouamel score: 15 - user: name: ToxicDevil87 flair: nature.fire id: toxicdevil87 score: 13 - user: name: Zohreh56 id: zohreh56 score: 13 - user: name: SARA1405 flair: activity.magic-wand id: sara1405 score: 10 - user: name: ali_migmig id: ali_migmig score: 4 - user: name: imsaadi id: imsaadi score: 2 - user: name: LORD-STAR-ARYA flair: symbols.wireless id: lord-star-arya score: 0 - rank: 30 id: rajabov-chess-club score: 235 players: - user: name: Rajabov1313 id: rajabov1313 score: 45 - user: name: Rahimov_1973 id: rahimov_1973 score: 43 - user: name: Rajabov_Alisher flair: symbols.a-button-blood-type id: rajabov_alisher score: 39 - user: name: Rajabov_Rahim id: rajabov_rahim score: 35 - user: name: Xontepa14 id: xontepa14 score: 23 - user: name: Hakim_1977 id: hakim_1977 score: 22 - user: name: Rajabov_Jahongir id: rajabov_jahongir score: 15 - user: name: murod_teacher flair: people.love-you-gesture id: murod_teacher score: 13 - user: name: ksenippa flair: activity.lichess-correspondence id: ksenippa score: 0 - user: name: Rajabov_Akram_R flair: smileys.face-with-tears-of-joy id: rajabov_akram_r score: 0 - user: name: PaukovKirill flair: smileys.face-screaming-in-fear id: paukovkirill score: 0 - rank: 31 id: crimea-chess score: 224 players: - user: name: Romaa2011 title: CM id: romaa2011 score: 54 - user: name: speedrunchessgames id: speedrunchessgames score: 37 - user: name: SeniaVoronChess id: seniavoronchess score: 34 - user: name: Chelebiev_Esken flair: nature.shark id: chelebiev_esken score: 34 - user: name: DrRezdarstein id: drrezdarstein score: 33 - user: name: Ghost348 flair: smileys.ghost id: ghost348 score: 22 - user: name: AmIr21208 id: amir21208 score: 7 - user: name: PotentialFreakASA flair: smileys.face-with-crossed-out-eyes-blob id: potentialfreakasa score: 3 - user: name: murdered-art flair: smileys.face-with-monocle id: murdered-art score: 0 - user: name: KARSENIY id: karseniy score: 0 - user: name: wellwet570ww56 id: wellwet570ww56 score: 0 - user: name: Jddjifci_1010 id: jddjifci_1010 score: 0 - rank: 32 id: trchess score: 220 players: - user: name: SuleimanovBulat id: suleimanovbulat score: 53 - user: name: Idrisova_Roza title: WFM flair: nature.rose id: idrisova_roza score: 41 - user: name: SafNik flair: travel-places.globe-showing-asia-australia id: safnik score: 27 - user: name: Kotfedot flair: smileys.cat-with-wry-smile id: kotfedot score: 23 - user: name: Skipper-11 flair: nature.penguin id: skipper-11 score: 23 - user: name: ArtoymChaikovskiy flair: objects.musical-score id: artoymchaikovskiy score: 20 - user: name: kirillgenius title: CM flair: nature.rhinoceros id: kirillgenius score: 14 - user: name: Nickolayich id: nickolayich score: 10 - user: name: Marin-ka flair: nature.tulip id: marin-ka score: 9 - user: name: boryanich081 flair: activity.lichess-horsey id: boryanich081 score: 0 - rank: 33 id: el5-energo_chess score: 195 players: - user: name: serg23 id: serg23 score: 56 - user: name: TVK2109 id: tvk2109 score: 49 - user: name: AngryStat id: angrystat score: 32 - user: name: Pokrovca id: pokrovca score: 19 - user: name: MikeVere id: mikevere score: 18 - user: name: Ald1k93 id: ald1k93 score: 12 - user: name: Sazonov78 id: sazonov78 score: 9 - rank: 34 id: NXNKjUFI score: 194 players: - user: name: Sourav_1555 id: sourav_1555 score: 31 - user: name: Johnywh id: johnywh score: 30 - user: name: Ioannis55 id: ioannis55 score: 21 - user: name: Kappax2 flair: activity.lichess-variant-antichess id: kappax2 score: 21 - user: name: alwaysintrouble flair: activity.trophy id: alwaysintrouble score: 16 - user: name: The_Chess_Analyst flair: symbols.input-numbers id: the_chess_analyst score: 15 - user: name: acalyptus id: acalyptus score: 15 - user: name: ploytos id: ploytos score: 10 - user: name: diamantiskos99 id: diamantiskos99 score: 8 - user: name: smaropoulos id: smaropoulos score: 6 - user: name: ILLUMINOUS_SOUL id: illuminous_soul score: 5 - user: name: the_tmd id: the_tmd score: 4 - user: name: Sardanapalos id: sardanapalos score: 3 - user: name: Tcozmiz id: tcozmiz score: 3 - user: name: kesnar flair: activity.lichess-variant-antichess id: kesnar score: 2 - user: name: jdimovelis id: jdimovelis score: 2 - user: name: Elenger98 id: elenger98 score: 2 - user: name: vakontos flair: nature.turtle id: vakontos score: 0 - user: name: maria-ines25 flair: activity.chess id: maria-ines25 score: 0 - user: name: Titos007GR flair: travel-places.airplane-arrival id: titos007gr score: 0 - rank: 35 id: chessmaste--friends score: 182 players: - user: name: Chessmaste patron: true patronColor: 3 id: chessmaste score: 40 - user: name: yar081av flair: nature.droplet id: yar081av score: 31 - user: name: Konoplyanka flair: nature.bird id: konoplyanka score: 29 - user: name: tolichach title: FM id: tolichach score: 26 - user: name: Bialyczlowiek id: bialyczlowiek score: 26 - user: name: Gekab flair: smileys.smiling-face-with-sunglasses id: gekab score: 10 - user: name: PLaToN-3112 flair: nature.cactus id: platon-3112 score: 8 - user: name: Nedomaster715 id: nedomaster715 score: 5 - user: name: FangBowen flair: smileys.saluting-face id: fangbowen score: 4 - user: name: Markot29432 flair: people.guard-light-skin-tone id: markot29432 score: 3 - user: name: Alex_Lavri id: alex_lavri score: 0 - user: name: Moorthattil flair: symbols.move-mistake id: moorthattil score: 0 - user: name: Rodion2020 id: rodion2020 score: 0 - rank: 36 id: central-asia score: 178 players: - user: name: Saidumar1110 flair: objects.crown id: saidumar1110 score: 40 - user: name: K1NRICH id: k1nrich score: 29 - user: name: Saint-Lugar id: saint-lugar score: 19 - user: name: Noname2226 id: noname2226 score: 18 - user: name: aybek1998 id: aybek1998 score: 15 - user: name: Abduazizovich id: abduazizovich score: 15 - user: name: Xushboqov_Husan id: xushboqov_husan score: 14 - user: name: vUoK id: vuok score: 9 - user: name: SeYhU699 flair: smileys.smiling-face-with-horns-blob id: seyhu699 score: 8 - user: name: yorqinoyqutpiddinova id: yorqinoyqutpiddinova score: 6 - user: name: CHESSBEK23 flair: activity.lichess-berserk id: chessbek23 score: 3 - user: name: Hayat2oo9 id: hayat2oo9 score: 2 - user: name: bahodir8855 id: bahodir8855 score: 0 - user: name: TheRealChessPredator flair: activity.lichess-berserk id: therealchesspredator score: 0 - rank: 37 id: polish-chess-team score: 178 players: - user: name: AnonymousWwa flair: food-drink.beer-mug id: anonymouswwa score: 41 - user: name: Romario_4 id: romario_4 score: 39 - user: name: hunterthepunter id: hunterthepunter score: 28 - user: name: Marti_G id: marti_g score: 26 - user: name: Hektor-167 id: hektor-167 score: 22 - user: name: Marcin1777 id: marcin1777 score: 21 - user: name: KorwineK flair: food-drink.cucumber id: korwinek score: 1 - user: name: kioggjxgj flair: activity.trophy id: kioggjxgj score: 0 - user: name: Lol023 id: lol023 score: 0 - user: name: klabund flair: travel-places.compass id: klabund score: 0 - rank: 38 id: lZEV8cdI score: 175 players: - user: name: sgigerin id: sgigerin score: 46 - user: name: Mongol_daichin id: mongol_daichin score: 40 - user: name: sergey12347 id: sergey12347 score: 33 - user: name: Gennadiy1958 id: gennadiy1958 score: 29 - user: name: Bataa1111 id: bataa1111 score: 13 - user: name: BEPCTAK id: bepctak score: 6 - user: name: kutmanis id: kutmanis score: 4 - user: name: Nimyaev1985 id: nimyaev1985 score: 4 - user: name: Malkolmn id: malkolmn score: 0 - rank: 39 id: yMKNw56K score: 172 players: - user: name: ALEXSADERISPUSHKINO flair: travel-places.satellite id: alexsaderispushkino score: 42 - user: name: Robin_Good_chess id: robin_good_chess score: 39 - user: name: Teacherforyou id: teacherforyou score: 26 - user: name: dantes2008 id: dantes2008 score: 21 - user: name: Chessfann345 id: chessfann345 score: 19 - user: name: terra87 id: terra87 score: 17 - user: name: hand_chess flair: people.hand-with-fingers-splayed-medium-light-skin-tone id: hand_chess score: 8 - rank: 40 id: Gm3XMvWV score: 168 players: - user: name: Rollton patron: true patronColor: 1 id: rollton score: 34 - user: name: rinatmozg id: rinatmozg score: 33 - user: name: DeDu3auu91 flair: smileys.disguised-face id: dedu3auu91 score: 31 - user: name: kualhu id: kualhu score: 26 - user: name: Alexi16 id: alexi16 score: 17 - user: name: KapToxa_c_4ecHokom id: kaptoxa_c_4echokom score: 13 - user: name: Volffff74 id: volffff74 score: 8 - user: name: ANTprostoANT id: antprostoant score: 4 - user: name: blackcs1 id: blackcs1 score: 2 - user: name: newt1969 flair: travel-places.sport-utility-vehicle id: newt1969 score: 0 - user: name: kengisfg4 id: kengisfg4 score: 0 - user: name: addsea id: addsea score: 0 - rank: 41 id: ChfzrMPn score: 167 players: - user: name: kuzbass300 id: kuzbass300 score: 40 - user: name: Alij_77 flair: activity.lichess-berserk id: alij_77 score: 37 - user: name: AmazMe id: amazme score: 35 - user: name: Kirill_Lebedev id: kirill_lebedev score: 16 - user: name: Rocketcares id: rocketcares score: 13 - user: name: Maestro7438 id: maestro7438 score: 12 - user: name: mrKori flair: smileys.ghost id: mrkori score: 6 - user: name: Leforty flair: symbols.wavy-dash id: leforty score: 6 - user: name: KARAMELKA2025 id: karamelka2025 score: 2 - user: name: Yoozhik id: yoozhik score: 0 - user: name: CornersNNK id: cornersnnk score: 0 - rank: 42 id: miami-chess-fan-club score: 163 players: - user: name: ODIN1971 flair: nature.high-voltage id: odin1971 score: 43 - user: name: MF-RafaelFantastico id: mf-rafaelfantastico score: 24 - user: name: NL2004 id: nl2004 score: 24 - user: name: Arnoldozavr flair: smileys.disguised-face id: arnoldozavr score: 22 - user: name: Billy_ch id: billy_ch score: 16 - user: name: MikhailPerekalin id: mikhailperekalin score: 12 - user: name: awrus id: awrus score: 11 - user: name: Kolamdewa id: kolamdewa score: 7 - user: name: BombaLeila title: WFM flair: nature.fire id: bombaleila score: 4 - user: name: enics35 flair: travel-places.airplane id: enics35 score: 0 - user: name: CAHKT_PETERBURG-2431 flair: activity.soccer-ball id: cahkt_peterburg-2431 score: 0 - rank: 43 id: caballo-negro-chess-club score: 158 players: - user: name: Eulises777 id: eulises777 score: 31 - user: name: El_gallo_negro flair: food-drink.clinking-beer-mugs id: el_gallo_negro score: 29 - user: name: osuaza id: osuaza score: 24 - user: name: RamonInzunza id: ramoninzunza score: 17 - user: name: Aji19 id: aji19 score: 14 - user: name: TheBatmam id: thebatmam score: 10 - user: name: AntoineB100 id: antoineb100 score: 9 - user: name: Sergioabarca79 id: sergioabarca79 score: 6 - user: name: leonidaespartano id: leonidaespartano score: 4 - user: name: alep666 id: alep666 score: 4 - user: name: Romhormoze1389 id: romhormoze1389 score: 4 - user: name: tubitox28 id: tubitox28 score: 2 - user: name: FIGO2O2O id: figo2o2o score: 2 - user: name: CAPEDIpantaleon id: capedipantaleon score: 2 - user: name: GERAmini title: NM id: geramini score: 0 - user: name: tomasbelis id: tomasbelis score: 0 - user: name: Yunquell123 id: yunquell123 score: 0 - rank: 44 id: EAtFBeZ8 score: 153 players: - user: name: SergofanchiK id: sergofanchik score: 26 - user: name: DmitryK1 title: FM flair: smileys.grinning-cat id: dmitryk1 score: 24 - user: name: Rodion2203 flair: people.call-me-hand-light-skin-tone patron: true patronColor: 1 id: rodion2203 score: 20 - user: name: AndreyAkhmetov flair: activity.lichess-berserk id: andreyakhmetov score: 19 - user: name: pushkarevsfamily id: pushkarevsfamily score: 16 - user: name: zurerr flair: objects.hammer-and-wrench id: zurerr score: 16 - user: name: doberman_333 title: FM id: doberman_333 score: 13 - user: name: Vasiliy1963 id: vasiliy1963 score: 10 - user: name: Gennadiy6364312 id: gennadiy6364312 score: 7 - user: name: de-daw flair: activity.spade-suit id: de-daw score: 2 - user: name: ilusha7 flair: travel-places.oncoming-automobile id: ilusha7 score: 0 - user: name: Kuzhanov-Timur id: kuzhanov-timur score: 0 - rank: 45 id: ucJIztS4 score: 137 players: - user: name: Galij id: galij score: 37 - user: name: Nevpopad flair: activity.puzzle-piece id: nevpopad score: 31 - user: name: vladymyr1657 id: vladymyr1657 score: 25 - user: name: kan19552807 id: kan19552807 score: 23 - user: name: DenisBenDavid id: denisbendavid score: 11 - user: name: Stoik64 id: stoik64 score: 10 - user: name: belay-berezka id: belay-berezka score: 0 - rank: 46 id: katowice-chess-club-online score: 129 players: - user: name: Kokon-25 flair: nature.spider-web id: kokon-25 score: 29 - user: name: Mari0413 flair: activity.chess-pawn id: mari0413 score: 26 - user: name: maly2016 flair: smileys.angry-face-with-horns id: maly2016 score: 25 - user: name: HowToMovePieces id: howtomovepieces score: 16 - user: name: PawLew flair: activity.trophy id: pawlew score: 14 - user: name: Artur_O flair: nature.herb id: artur_o score: 9 - user: name: Leonidsam flair: travel-places.kick-scooter id: leonidsam score: 8 - user: name: kubak5 id: kubak5 score: 2 - user: name: czasnaszachy title: FM flair: nature.t-rex id: czasnaszachy score: 0 - user: name: Wojcieslaw2405 flair: smileys.cowboy-hat-face patron: true patronColor: 2 id: wojcieslaw2405 score: 0 - rank: 47 id: lckb-strong-collaboration score: 127 players: - user: name: Yusiin_LCKB id: yusiin_lckb score: 50 - user: name: AN_LCKB id: an_lckb score: 36 - user: name: Ruby_KCI flair: objects.crossed-swords id: ruby_kci score: 18 - user: name: JAGOvanhouten_LCKB id: jagovanhouten_lckb score: 15 - user: name: cobacobaah_LCKB id: cobacobaah_lckb score: 5 - user: name: J4YYU5_LCKB id: j4yyu5_lckb score: 3 - user: name: Sunda_dagoen id: sunda_dagoen score: 0 - rank: 48 id: '-2015' score: 124 players: - user: name: matuxa405 flair: activity.xmas-lichess-horsey id: matuxa405 score: 37 - user: name: Nikita_T-800 flair: nature.eagle id: nikita_t-800 score: 19 - user: name: Mark-2013ru flair: smileys.smiling-face-with-horns-blob id: mark-2013ru score: 16 - user: name: SergiusX flair: smileys.smiling-face-with-sunglasses id: sergiusx score: 10 - user: name: jhjkjjkjjhjhhG flair: smileys.grinning-squinting-face-blob id: jhjkjjkjjhjhhg score: 10 - user: name: NiCOlAy_KuZMin-2013 flair: nature.herb id: nicolay_kuzmin-2013 score: 8 - user: name: KarimVagapov flair: activity.lichess-horsey patron: true patronColor: 2 id: karimvagapov score: 6 - user: name: PerfectMove_007 flair: nature.herb id: perfectmove_007 score: 5 - user: name: Anna_Sid flair: symbols.heart-on-fire id: anna_sid score: 4 - user: name: Chessplayer_77 id: chessplayer_77 score: 3 - user: name: MooNArtik flair: activity.chess id: moonartik score: 2 - user: name: Borisov_ignat flair: symbols.customs id: borisov_ignat score: 2 - user: name: MIster204 flair: nature.frog id: mister204 score: 2 - user: name: VelociRraptorr flair: activity.jack-o-lantern patron: true patronColor: 6 id: velocirraptorr score: 0 - user: name: Girl_chesster2022 flair: people.call-me-hand-light-skin-tone id: girl_chesster2022 score: 0 - user: name: DanForeveR flair: nature.waxing-crescent-moon id: danforever score: 0 - user: name: RaimondM flair: activity.crystal-ball id: raimondm score: 0 - user: name: Alexandr_59 flair: activity.lichess-ultrabullet id: alexandr_59 score: 0 - user: name: Matuxa2011 flair: nature.sheaf-of-rice id: matuxa2011 score: 0 - user: name: Chess2398 flair: people.troll id: chess2398 score: 0 - rank: 49 id: blue-moon-diamond score: 124 players: - user: name: hope313 flair: people.hand-with-fingers-splayed-light-skin-tone id: hope313 score: 35 - user: name: Skakvaks id: skakvaks score: 32 - user: name: hayaan2015 flair: nature.fire id: hayaan2015 score: 20 - user: name: rimoreno58 flair: nature.guide-dog id: rimoreno58 score: 14 - user: name: etelSzachista id: etelszachista score: 11 - user: name: Biyiyo id: biyiyo score: 6 - user: name: cessajo id: cessajo score: 4 - user: name: Mahmoud_AbdelRazek12 flair: nature.bat id: mahmoud_abdelrazek12 score: 2 - rank: 50 id: rostelecom-2022 score: 123 players: - user: name: Alexey_Demyanenko id: alexey_demyanenko score: 37 - user: name: eng-nn id: eng-nn score: 34 - user: name: Ledentsova id: ledentsova score: 26 - user: name: gorenburgov id: gorenburgov score: 8 - user: name: sergo_astr id: sergo_astr score: 8 - user: name: Galeev-marat0804223 id: galeev-marat0804223 score: 6 - user: name: kapandrey id: kapandrey score: 4 - user: name: Renewer2 flair: smileys.hugging-face id: renewer2 score: 0 - rank: 51 id: darkonteams score: 118 players: - user: name: Bakso_tahu flair: objects.crossed-swords id: bakso_tahu score: 45 - user: name: Blimeyf1 flair: people.left-facing-fist id: blimeyf1 score: 43 - user: name: Greg230416 flair: smileys.alien id: greg230416 score: 19 - user: name: Abde_llah id: abde_llah score: 6 - user: name: sblovechess flair: smileys.rolling-on-the-floor-laughing id: sblovechess score: 5 - user: name: DarkOnCrack flair: nature.glowing-star patron: true patronColor: 6 id: darkoncrack score: 0 - rank: 52 id: druzhba score: 116 players: - user: name: Kovinkin id: kovinkin score: 31 - user: name: sandro1971 id: sandro1971 score: 24 - user: name: advokat1962 id: advokat1962 score: 21 - user: name: AlexShapovalov id: alexshapovalov score: 19 - user: name: Bulkozavr id: bulkozavr score: 14 - user: name: pasha25061987 id: pasha25061987 score: 7 - rank: 53 id: 4WJHSeyU score: 113 players: - user: name: CoachAnton title: CM flair: people.man-teacher id: coachanton score: 41 - user: name: f7er6h id: f7er6h score: 40 - user: name: ValeryPetrov id: valerypetrov score: 16 - user: name: GusiXXX flair: nature.goose id: gusixxx score: 6 - user: name: NECK_REG_VR_PCL id: neck_reg_vr_pcl score: 6 - user: name: bigbishopb8 flair: activity.diamond-suit id: bigbishopb8 score: 4 - user: name: Stepan_atac flair: symbols.top-arrow id: stepan_atac score: 0 - rank: 54 id: rosstat-chess score: 108 players: - user: name: Akop_15 id: akop_15 score: 33 - user: name: VVKuznetsov_78 id: vvkuznetsov_78 score: 21 - user: name: GaliaGazizullina1986 id: galiagazizullina1986 score: 18 - user: name: AmirhanMals id: amirhanmals score: 14 - user: name: Andrey395 id: andrey395 score: 11 - user: name: elena_pnfl id: elena_pnfl score: 7 - user: name: Igrok-85 id: igrok-85 score: 4 - rank: 55 id: chessnetwork score: 106 players: - user: name: Detskiy_sad-GORILLA id: detskiy_sad-gorilla score: 35 - user: name: Gondolin id: gondolin score: 30 - user: name: Steiger id: steiger score: 21 - user: name: Warrio9 id: warrio9 score: 12 - user: name: Bauernfreunde flair: smileys.smiling-face-with-sunglasses id: bauernfreunde score: 6 - user: name: aliasghargh36 flair: smileys.thinking-face id: aliasghargh36 score: 2 - user: name: SmurFinnn flair: activity.lichess-horsey id: smurfinnn score: 0 - user: name: jpdmayo1986 patron: true patronColor: 10 id: jpdmayo1986 score: 0 - user: name: raktdas id: raktdas score: 0 - rank: 56 id: ktOAeIod score: 102 players: - user: name: SimLock id: simlock score: 40 - user: name: Alexei126 flair: activity.trophy id: alexei126 score: 25 - user: name: VVS_Donskoy id: vvs_donskoy score: 21 - user: name: drunkard58 id: drunkard58 score: 16 - rank: 57 id: the-bad-batch score: 101 players: - user: name: MisterQ60 id: misterq60 score: 41 - user: name: Richie57er id: richie57er score: 34 - user: name: Nobodyxp id: nobodyxp score: 26 - user: name: qech patron: true patronColor: 8 id: qech score: 0 - rank: 58 id: gmspideribarra score: 100 players: - user: name: Infinitywar29 id: infinitywar29 score: 40 - user: name: JuanPabloRumbo id: juanpablorumbo score: 26 - user: name: juancho1703river flair: smileys.ghost id: juancho1703river score: 14 - user: name: macagil id: macagil score: 11 - user: name: dasfach flair: smileys.smiling-face-with-sunglasses-blob id: dasfach score: 4 - user: name: ChurrisDeuz flair: symbols.infinity id: churrisdeuz score: 3 - user: name: vovan_2501 id: vovan_2501 score: 2 - user: name: mathiasfranco173 flair: smileys.cat-with-tears-of-joy id: mathiasfranco173 score: 0 - user: name: Nicarao3 id: nicarao3 score: 0 - user: name: Esimkhan2000 id: esimkhan2000 score: 0 - rank: 59 id: crypto-chess score: 97 players: - user: name: garry_kasparov7 flair: nature.eagle id: garry_kasparov7 score: 37 - user: name: rustik-novichok id: rustik-novichok score: 36 - user: name: And17rey id: and17rey score: 16 - user: name: Rehaahun id: rehaahun score: 4 - user: name: westcampos flair: smileys.disguised-face id: westcampos score: 4 - user: name: dvb7830 id: dvb7830 score: 0 - user: name: chess_checkers_cap id: chess_checkers_cap score: 0 - user: name: Cash1233 id: cash1233 score: 0 - user: name: Viktor1244 flair: nature.lobster id: viktor1244 score: 0 - rank: 60 id: irina_baraeva_club score: 95 players: - user: name: abulfaz71 flair: objects.crossed-swords id: abulfaz71 score: 26 - user: name: kenan_beyleqanli id: kenan_beyleqanli score: 23 - user: name: EvgeniyMB id: evgeniymb score: 20 - user: name: I_DOSVIDOS id: i_dosvidos score: 18 - user: name: Laeta_Artemis id: laeta_artemis score: 6 - user: name: OVsevolod flair: nature.four-leaf-clover id: ovsevolod score: 2 - rank: 61 id: im-eric-rosen-fan-club score: 87 players: - user: name: AnrilFurin flair: activity.chess-pawn id: anrilfurin score: 31 - user: name: Leejunyik0204 id: leejunyik0204 score: 15 - user: name: MystikosLogariasmos id: mystikoslogariasmos score: 13 - user: name: ShivenVij flair: smileys.cold-face id: shivenvij score: 11 - user: name: der-die-das-wieso-w id: der-die-das-wieso-w score: 6 - user: name: marbart id: marbart score: 4 - user: name: ajzuorif_azerila id: ajzuorif_azerila score: 3 - user: name: shaby94 id: shaby94 score: 2 - user: name: erick_311 id: erick_311 score: 2 - user: name: Jaafarissa333 id: jaafarissa333 score: 0 - rank: 62 id: torrevieja score: 85 players: - user: name: MARKBRAVEWARRIOR2022 id: markbravewarrior2022 score: 43 - user: name: Alfonsodelareal flair: symbols.infinity id: alfonsodelareal score: 22 - user: name: Covadonga06 id: covadonga06 score: 20 - rank: 63 id: gm-mircica--friends score: 82 players: - user: name: luckynrone id: luckynrone score: 26 - user: name: fanradu77 id: fanradu77 score: 25 - user: name: Plejku id: plejku score: 22 - user: name: Mendez_ab flair: activity.lichess-bullet id: mendez_ab score: 9 - user: name: mircica title: GM id: mircica score: 0 - user: name: matmniak flair: people.mage-light-skin-tone id: matmniak score: 0 - rank: 64 id: team-colombia-chess score: 79 players: - user: name: leobenitez id: leobenitez score: 35 - user: name: alirio1000 id: alirio1000 score: 23 - user: name: Felipealfonso id: felipealfonso score: 10 - user: name: dynam1c_lashawn flair: smileys.smiling-face-with-sunglasses id: dynam1c_lashawn score: 6 - user: name: thebet id: thebet score: 3 - user: name: frabonca13 id: frabonca13 score: 2 - user: name: PyjamaParty flair: nature.parrot id: pyjamaparty score: 0 - user: name: Blitz-Practice flair: symbols.collision id: blitz-practice score: 0 - rank: 65 id: rochade-europa-schachzeitung score: 78 players: - user: name: old_donkey id: old_donkey score: 55 - user: name: JancoGj id: jancogj score: 21 - user: name: RINKE_HEIKO id: rinke_heiko score: 2 - user: name: jeffforever title: FM flair: activity.lichess-horsey patron: true patronColor: 6 id: jeffforever score: 0 - user: name: DogBrainSally id: dogbrainsally score: 0 - rank: 66 id: cda-gc-maspalomas-internacional score: 76 players: - user: name: Veseris0 id: veseris0 score: 38 - user: name: javipe2022 id: javipe2022 score: 32 - user: name: Maspa24 id: maspa24 score: 6 - user: name: manf2019 id: manf2019 score: 0 - user: name: Dragon_asado id: dragon_asado score: 0 - rank: 67 id: smart-hess score: 72 players: - user: name: ArtBumiger id: artbumiger score: 31 - user: name: Smv-k id: smv-k score: 12 - user: name: Dan_Iyar id: dan_iyar score: 9 - user: name: TAKTIKA_BOGa flair: nature.turtle id: taktika_boga score: 8 - user: name: AntonovichA id: antonovicha score: 5 - user: name: pik-pok flair: nature.duck id: pik-pok score: 3 - user: name: E-Sannikov flair: travel-places.moai id: e-sannikov score: 2 - user: name: IvanDmitrievich flair: food-drink.lime id: ivandmitrievich score: 2 - user: name: chess-is-a-live id: chess-is-a-live score: 0 - user: name: Sergei-Rodchenkov title: IM flair: nature.turtle id: sergei-rodchenkov score: 0 - user: name: leBedev2011NiKiTA flair: smileys.rolling-on-the-floor-laughing id: lebedev2011nikita score: 0 - rank: 68 id: chess-blasters-2 score: 72 players: - user: name: playerchess2019 id: playerchess2019 score: 20 - user: name: akshath_07 id: akshath_07 score: 10 - user: name: alcalaino id: alcalaino score: 10 - user: name: ievlev id: ievlev score: 10 - user: name: Islom585 id: islom585 score: 6 - user: name: DhanushDhanya flair: smileys.angry-face-with-horns id: dhanushdhanya score: 5 - user: name: MOLLINTAMBUNAN flair: objects.crossed-swords id: mollintambunan score: 4 - user: name: zero1395 flair: people.palms-up-together-medium-skin-tone id: zero1395 score: 4 - user: name: Sandygm flair: symbols.triangular-flag id: sandygm score: 3 - rank: 69 id: colegas-de-kike score: 72 players: - user: name: tka3 title: FM id: tka3 score: 32 - user: name: sutucale id: sutucale score: 12 - user: name: On1ba flair: people.genie id: on1ba score: 8 - user: name: Ramoneti2264 id: ramoneti2264 score: 8 - user: name: ZB_Sali id: zb_sali score: 6 - user: name: MercantileCircle flair: nature.milky-way id: mercantilecircle score: 3 - user: name: ZB_G flair: symbols.linux-tux-penguin id: zb_g score: 2 - user: name: ajedrezconzeta flair: objects.hammer-and-wrench patron: true patronColor: 10 id: ajedrezconzeta score: 1 - user: name: Alvar6 id: alvar6 score: 0 - rank: 70 id: '--chessmaster' score: 72 players: - user: name: Andrei_Fil id: andrei_fil score: 21 - user: name: Kharaman id: kharaman score: 20 - user: name: JRGea id: jrgea score: 16 - user: name: unicorniotdf id: unicorniotdf score: 15 - user: name: Dmitryivanovichkursk id: dmitryivanovichkursk score: 0 - rank: 71 id: lichess-discord-bundesliga-team score: 69 players: - user: name: alexeiB2009 flair: nature.cat id: alexeib2009 score: 23 - user: name: jezzat flair: activity.lichess-hogger patron: true patronColor: 10 id: jezzat score: 22 - user: name: renas_6262 id: renas_6262 score: 14 - user: name: chessplays12 id: chessplays12 score: 5 - user: name: vampire_dragon id: vampire_dragon score: 3 - user: name: cormacobear flair: nature.polar-bear patron: true patronColor: 10 id: cormacobear score: 2 - user: name: YoniLavo flair: objects.headphone patron: true patronColor: 6 id: yonilavo score: 0 - user: name: air-man flair: activity.xmas-lichess-horsey id: air-man score: 0 - user: name: ShinodaII id: shinodaii score: 0 - user: name: TPL74 id: tpl74 score: 0 - user: name: EXEternal flair: activity.magic-wand id: exeternal score: 0 - rank: 72 id: UksYUI6K score: 69 players: - user: name: Nikolay_Tupitsyn flair: activity.chess id: nikolay_tupitsyn score: 25 - user: name: bikych flair: smileys.disguised-face patron: true patronColor: 1 id: bikych score: 22 - user: name: Marat1310 id: marat1310 score: 17 - user: name: Mandarin-2014 id: mandarin-2014 score: 3 - user: name: LevTolmachev id: levtolmachev score: 2 - rank: 73 id: arab-world-team score: 67 players: - user: name: Santhosh_dawn id: santhosh_dawn score: 20 - user: name: assisted11 flair: smileys.smiling-face-with-halo id: assisted11 score: 19 - user: name: Olympus4 id: olympus4 score: 10 - user: name: vinnik_oleksandr id: vinnik_oleksandr score: 9 - user: name: ALOMPAK-AGOGO flair: travel-places.statue-of-liberty id: alompak-agogo score: 6 - user: name: DarkHorse2019 flair: smileys.ghost id: darkhorse2019 score: 3 - user: name: IbraaheemAahilIqbal flair: activity.lichess-berserk id: ibraaheemaahiliqbal score: 0 - user: name: Twinbanana_KTCT flair: nature.shooting-star id: twinbanana_ktct score: 0 - user: name: Yasinahmed000_1 id: yasinahmed000_1 score: 0 - rank: 74 id: passed-almogavers score: 62 players: - user: name: marcaf flair: nature.mouse-face id: marcaf score: 18 - user: name: SashaAvet flair: travel-places.automobile id: sashaavet score: 16 - user: name: moslem70 id: moslem70 score: 14 - user: name: ChessMasterOneline12 flair: smileys.speak-no-evil-monkey id: chessmasteroneline12 score: 10 - user: name: Nebojsa1985 id: nebojsa1985 score: 4 - rank: 75 id: sergeyvoronchess-new score: 56 players: - user: name: Faryma flair: activity.chess-pawn id: faryma score: 19 - user: name: IliyaGhaderi flair: nature.lizard id: iliyaghaderi score: 17 - user: name: Miki_friend_sandi id: miki_friend_sandi score: 8 - user: name: dev_5005 id: dev_5005 score: 7 - user: name: aakrit09 flair: activity.xmas-lichess-horsey id: aakrit09 score: 5 - user: name: nineMi id: ninemi score: 0 - user: name: dedavova1968 flair: activity.direct-hit id: dedavova1968 score: 0 - rank: 76 id: sk-zmaj score: 56 players: - user: name: sahborca id: sahborca score: 32 - user: name: ljupko1966 id: ljupko1966 score: 24 - user: name: MarklarMarklar title: FM flair: nature.dragon-face patron: true patronColor: 10 id: marklarmarklar score: 0 - user: name: BobbySer flair: nature.shark id: bobbyser score: 0 - rank: 77 id: introvertchess score: 54 players: - user: name: FlamingIbuse id: flamingibuse score: 22 - user: name: Artyomushkaia id: artyomushkaia score: 16 - user: name: Anti-Lizard-89 flair: nature.lizard id: anti-lizard-89 score: 6 - user: name: ahmetasaf2222 id: ahmetasaf2222 score: 4 - user: name: Gilberto_Mat id: gilberto_mat score: 4 - user: name: GameApollo id: gameapollo score: 2 - user: name: GameKing_365 flair: activity.lichess-blitz id: gameking_365 score: 0 - user: name: Artur1to_Italiano flair: smileys.alien id: artur1to_italiano score: 0 - rank: 78 id: trainingslager score: 53 players: - user: name: Rossolimo65 flair: activity.chess-pawn patron: true patronColor: 3 id: rossolimo65 score: 33 - user: name: donnerheik flair: objects.crossed-swords id: donnerheik score: 14 - user: name: diopatzer id: diopatzer score: 4 - user: name: Julia_2025 flair: food-drink.watermelon id: julia_2025 score: 2 - user: name: seagulls-III id: seagulls-iii score: 0 - user: name: DWA_Weinbrand id: dwa_weinbrand score: 0 - rank: 79 id: tAOTYPkg score: 48 players: - user: name: Ibrahim71 flair: symbols.heart-with-arrow id: ibrahim71 score: 31 - user: name: Hussam-Jbara id: hussam-jbara score: 17 - user: name: abdo61 id: abdo61 score: 0 - rank: 80 id: horsey score: 46 players: - user: name: oberschlumpf title: NM flair: nature.dove patron: true patronColor: 10 id: oberschlumpf score: 16 - user: name: DSE3009 flair: nature.seal id: dse3009 score: 13 - user: name: Drunken_Drongo flair: food-drink.broccoli patron: true patronColor: 10 id: drunken_drongo score: 8 - user: name: BigDog2008 flair: smileys.distorted-face id: bigdog2008 score: 5 - user: name: Akashrathi flair: smileys.alien-monster id: akashrathi score: 4 - rank: 81 id: international-legends score: 46 players: - user: name: Rador id: rador score: 29 - user: name: Mohsen_Dj id: mohsen_dj score: 17 - user: name: khfdshkk flair: activity.chess-pawn id: khfdshkk score: 0 - user: name: EliteV id: elitev score: 0 - user: name: josecervantes747 flair: activity.xmas-lichess-horsey id: josecervantes747 score: 0 - rank: 82 id: indian-power score: 44 players: - user: name: Iamsandip flair: symbols.collision id: iamsandip score: 33 - user: name: gimmeyourhorsey flair: nature.horse-face id: gimmeyourhorsey score: 6 - user: name: DarkPhoenix11 flair: nature.phoenix-bird id: darkphoenix11 score: 3 - user: name: NiranjaniNisal id: niranjaninisal score: 2 - rank: 83 id: railway-workers score: 42 players: - user: name: AVSvezhentsev id: avsvezhentsev score: 22 - user: name: Oleg_30-11 id: oleg_30-11 score: 12 - user: name: Zebulon999 id: zebulon999 score: 4 - user: name: mo9marinka id: mo9marinka score: 4 - rank: 84 id: the-excellencies score: 42 players: - user: name: Hex1000 id: hex1000 score: 33 - user: name: shagnik flair: nature.sunflower patron: true patronColor: 9 id: shagnik score: 9 - rank: 85 id: vna290908 score: 41 players: - user: name: SlavaBogy777 id: slavabogy777 score: 17 - user: name: TeguhS id: teguhs score: 15 - user: name: Diego678 flair: smileys.slightly-smiling-face id: diego678 score: 9 - user: name: VNA290908 flair: smileys.slightly-smiling-face id: vna290908 score: 0 - user: name: VoroninNikita flair: nature.evergreen-tree id: voroninnikita score: 0 - user: name: Kostya20111102 flair: nature.crescent-moon id: kostya20111102 score: 0 - user: name: EsiriToneh id: esiritoneh score: 0 - rank: 86 id: BTt0Eh1a score: 41 players: - user: name: Nerubatskiy_Kirill flair: travel-places.bullet-train id: nerubatskiy_kirill score: 23 - user: name: Daniil1007 flair: travel-places.bicycle id: daniil1007 score: 16 - user: name: bsm16 flair: symbols.cross-mark id: bsm16 score: 2 - user: name: Platonstein flair: people.brain id: platonstein score: 0 - user: name: Ivazina flair: smileys.alien id: ivazina score: 0 - user: name: David_Chess2014 flair: symbols.move-brilliant id: david_chess2014 score: 0 - user: name: Fedor_game_chess flair: symbols.white-star id: fedor_game_chess score: 0 - rank: 87 id: taiz-stars-chess score: 39 players: - user: name: Werderaner flair: smileys.face-savoring-food id: werderaner score: 13 - user: name: Luzardo1Braga2Ramos3 id: luzardo1braga2ramos3 score: 8 - user: name: antrenatul75 id: antrenatul75 score: 6 - user: name: amgad777 id: amgad777 score: 6 - user: name: Spitfire_hunter id: spitfire_hunter score: 4 - user: name: AbdoAhmedSh id: abdoahmedsh score: 2 - user: name: MqRmI flair: symbols.puzzle-storm id: mqrmi score: 0 - user: name: mehdizadeh1337 id: mehdizadeh1337 score: 0 - rank: 88 id: epnkeNQ3 score: 38 players: - user: name: Witcher_Gerald_Rivia flair: nature.wolf patron: true patronColor: 4 id: witcher_gerald_rivia score: 16 - user: name: Sergiev-Posad flair: activity.sparkles id: sergiev-posad score: 4 - user: name: kost2403 flair: symbols.dizzy id: kost2403 score: 4 - user: name: kuhni30 flair: symbols.eight-pointed-star id: kuhni30 score: 2 - user: name: yuriy970 flair: symbols.dizzy id: yuriy970 score: 2 - user: name: Vera46 flair: symbols.collision id: vera46 score: 2 - user: name: wowa4024 flair: activity.1st-place-medal id: wowa4024 score: 2 - user: name: drelkor77 id: drelkor77 score: 2 - user: name: yriy70 flair: objects.bell id: yriy70 score: 2 - user: name: Sveta1970 flair: activity.sparkles id: sveta1970 score: 1 - user: name: witaliy02 flair: activity.1st-place-medal id: witaliy02 score: 1 - user: name: Sergey_Chelyshev2011 flair: people.detective-medium-light-skin-tone id: sergey_chelyshev2011 score: 0 - user: name: DTH_nguyenbaoduy id: dth_nguyenbaoduy score: 0 - rank: 89 id: sant-quirze-del-valles score: 38 players: - user: name: Promesa id: promesa score: 24 - user: name: zodiac5 id: zodiac5 score: 14 - user: name: Delemedeii id: delemedeii score: 0 - rank: 90 id: fide-checkmate-coronavirus score: 36 players: - user: name: Trapelus001 id: trapelus001 score: 31 - user: name: DMD07 id: dmd07 score: 3 - user: name: MP31_UY flair: activity.chess-pawn id: mp31_uy score: 2 - user: name: anirudh2013 id: anirudh2013 score: 0 - user: name: Chop-A-Fela id: chop-a-fela score: 0 - user: name: PURPLEHONESTGNU id: purplehonestgnu score: 0 - rank: 91 id: xadrez-entre-amigos-br score: 36 players: - user: name: windsonmama25 id: windsonmama25 score: 22 - user: name: Leineschaf id: leineschaf score: 14 - rank: 92 id: syeda-faiza-elite-chess-club score: 34 players: - user: name: DPZ2014 id: dpz2014 score: 16 - user: name: MJ1425 flair: smileys.face-savoring-food id: mj1425 score: 7 - user: name: master_rpp id: master_rpp score: 5 - user: name: sordo_Ponce91081 flair: people.deaf-man-light-skin-tone id: sordo_ponce91081 score: 4 - user: name: NUSKNVP1992 id: nusknvp1992 score: 2 - user: name: Szymoneeek13 id: szymoneeek13 score: 0 - user: name: Syeda_Faiza flair: nature.maple-leaf id: syeda_faiza score: 0 - user: name: RGNair id: rgnair score: 0 - user: name: SDawud flair: nature.gorilla id: sdawud score: 0 - user: name: rohammoa flair: smileys.skull-and-crossbones id: rohammoa score: 0 - user: name: canege_bayrakci flair: activity.lichess-blitz id: canege_bayrakci score: 0 - rank: 93 id: ruschess-team score: 34 players: - user: name: Semson1 id: semson1 score: 18 - user: name: igorcool flair: activity.lichess-variant-atomic id: igorcool score: 11 - user: name: Old_General id: old_general score: 5 - user: name: AlvarDev id: alvardev score: 0 - rank: 94 id: english-chess-players score: 32 players: - user: name: Brockleybrains flair: travel-places.airplane id: brockleybrains score: 20 - user: name: Rambo_Ramsey id: rambo_ramsey score: 6 - user: name: jennson id: jennson score: 4 - user: name: DavidWilson1980 id: davidwilson1980 score: 2 - user: name: STM10 id: stm10 score: 0 - user: name: khswampy id: khswampy score: 0 - user: name: English_Chess patron: true patronColor: 7 id: english_chess score: 0 - rank: 95 id: levitov-chess score: 32 players: - user: name: GorM08 id: gorm08 score: 16 - user: name: Poligrafpoligrafych title: IM id: poligrafpoligrafych score: 14 - user: name: PeakyRook id: peakyrook score: 2 - rank: 96 id: mib-aliennation score: 32 players: - user: name: danarviant flair: smileys.alien id: danarviant score: 24 - user: name: DEDI_COMRAS_LCB id: dedi_comras_lcb score: 8 - rank: 97 id: chees-club score: 31 players: - user: name: taoufikbeatsyou id: taoufikbeatsyou score: 27 - user: name: D_A_N_I_Y_A_R flair: nature.rubber-duck id: d_a_n_i_y_a_r score: 4 - user: name: Flagorubik228 flair: nature.dolphin id: flagorubik228 score: 0 - rank: 98 id: '--elite-chess-players-union--' score: 30 players: - user: name: BatLqn4o id: batlqn4o score: 12 - user: name: Sanjeevshaurya1526 id: sanjeevshaurya1526 score: 11 - user: name: shravya11 flair: symbols.move-brilliant id: shravya11 score: 7 - user: name: CyberShredder flair: symbols.linux-tux-penguin id: cybershredder score: 0 - user: name: PraketPandit flair: nature.comet id: praketpandit score: 0 - user: name: cagan2018 flair: objects.crown id: cagan2018 score: 0 - rank: 99 id: fide-titled-players-only score: 30 players: - user: name: abhigyan_a_b flair: symbols.mending-heart id: abhigyan_a_b score: 24 - user: name: AIM_chessplayer id: aim_chessplayer score: 6 - user: name: abhigyanmallick2012 flair: people.dna id: abhigyanmallick2012 score: 0 - rank: 100 id: online-world-chess-lovers score: 28 players: - user: name: NimzoIndian55 id: nimzoindian55 score: 12 - user: name: Matermind4216 id: matermind4216 score: 8 - user: name: PrasadVanjale id: prasadvanjale score: 4 - user: name: BandariAbhijith13 id: bandariabhijith13 score: 2 - user: name: Luca661 flair: nature.horse id: luca661 score: 2 - user: name: yuvrajmagnusgoats id: yuvrajmagnusgoats score: 0 - user: name: jenish1609 flair: objects.crown id: jenish1609 score: 0 - user: name: Mikayilux flair: smileys.winking-face-with-tongue id: mikayilux score: 0 - user: name: finchrulez flair: smileys.partying-face id: finchrulez score: 0 - user: name: SAkhadijahHH id: sakhadijahhh score: 0 - rank: 101 id: chess-champions-never-give-up score: 28 players: - user: name: GambitTum id: gambittum score: 26 - user: name: Alpercino87 id: alpercino87 score: 2 - rank: 102 id: club-virsan score: 26 players: - user: name: z52 id: z52 score: 21 - user: name: Aguirre2019 id: aguirre2019 score: 5 - user: name: mauriciovirsan flair: travel-places.helicopter id: mauriciovirsan score: 0 - user: name: ajesparta19 id: ajesparta19 score: 0 - rank: 103 id: city-chess score: 25 players: - user: name: bahtiyor1980 id: bahtiyor1980 score: 25 - user: name: l812e3kun id: l812e3kun score: 0 - rank: 104 id: bergens-schakklub score: 23 players: - user: name: ivann07k id: ivann07k score: 20 - user: name: halsau id: halsau score: 3 - user: name: BadAsMe title: IM id: badasme score: 0 - rank: 105 id: gorinko_fan_team score: 22 players: - user: name: MAMAAA flair: smileys.sneezing-face id: mamaaa score: 22 - rank: 106 id: the-raptors score: 21 players: - user: name: tah1234 id: tah1234 score: 21 - user: name: Ouf4425 flair: smileys.shushing-face id: ouf4425 score: 0 - user: name: yChessNotNow flair: people.santa-claus-light-skin-tone id: ychessnotnow score: 0 - rank: 107 id: chess-fools score: 20 players: - user: name: LenChessPro flair: activity.lichess-berserk id: lenchesspro score: 10 - user: name: LeonChessPro flair: activity.lichess-variant-atomic id: leonchesspro score: 8 - user: name: GabChessPro id: gabchesspro score: 2 - rank: 108 id: chess-tournament-kz score: 20 players: - user: name: madeinKZ-1991 id: madeinkz-1991 score: 18 - user: name: Dinara1209 id: dinara1209 score: 2 - user: name: Daniyal9024 id: daniyal9024 score: 0 - rank: 109 id: power-chess-federation score: 20 players: - user: name: Nersisyan_Garnik title: CM id: nersisyan_garnik score: 20 - user: name: Umidjon_Aliqulov flair: activity.lichess-berserk id: umidjon_aliqulov score: 0 - rank: 110 id: agadmators-team score: 18 players: - user: name: younameit flair: objects.flashlight id: younameit score: 8 - user: name: SAB1994MB id: sab1994mb score: 8 - user: name: Dagdatheclt id: dagdatheclt score: 2 - user: name: alexonsar flair: smileys.alien-monster id: alexonsar score: 0 - rank: 111 id: schack-08 score: 17 players: - user: name: hemulet patron: true patronColor: 8 id: hemulet score: 15 - user: name: KB91 flair: symbols.move-blunder id: kb91 score: 2 - user: name: Plaskmatt id: plaskmatt score: 0 - user: name: Rustan flair: symbols.gnu-logo patron: true patronColor: 10 id: rustan score: 0 - rank: 112 id: indicheck-_hu score: 17 players: - user: name: Tklormat7 id: tklormat7 score: 15 - user: name: SMiik2 flair: activity.lichess-rapid id: smiik2 score: 2 - user: name: Checkmate_Drifters flair: objects.computer-mouse id: checkmate_drifters score: 0 - user: name: ChessVariantMaster flair: activity.lichess-berserk id: chessvariantmaster score: 0 - rank: 113 id: v1kMVGKO score: 17 players: - user: name: Aleks0804 id: aleks0804 score: 14 - user: name: Solips id: solips score: 3 - rank: 114 id: dark-horse score: 16 players: - user: name: KameHameHaa007 flair: nature.fire id: kamehamehaa007 score: 16 - user: name: Alien_11 id: alien_11 score: 0 - user: name: Allfine24 id: allfine24 score: 0 - user: name: alaearrabbat flair: people.man-beard id: alaearrabbat score: 0 - rank: 115 id: cVvIP4JI score: 16 players: - user: name: Yushchtnko id: yushchtnko score: 16 - user: name: Aleksei_ChupikoV flair: people.call-me-hand id: aleksei_chupikov score: 0 - rank: 116 id: the-best-teammates score: 15 players: - user: name: Mlry6 id: mlry6 score: 11 - user: name: inivit id: inivit score: 4 - rank: 117 id: uzbchess score: 12 players: - user: name: GreatChessPlayer2009 id: greatchessplayer2009 score: 6 - user: name: muqaddam151151 id: muqaddam151151 score: 6 - user: name: qodirxonubaydullaev6 id: qodirxonubaydullaev6 score: 0 - rank: 118 id: harry-potters-07-team score: 12 players: - user: name: Dumbledore_F flair: smileys.grinning-face-with-big-eyes id: dumbledore_f score: 12 - user: name: CHESSBOY2025 flair: nature.new-moon id: chessboy2025 score: 0 - user: name: aZime003 id: azime003 score: 0 - rank: 119 id: the-harry-potter-fan-club score: 11 players: - user: name: Big_Good_Wolf id: big_good_wolf score: 6 - user: name: www_www01 flair: activity.chess-pawn id: www_www01 score: 4 - user: name: Kivanc_320 id: kivanc_320 score: 1 - user: name: Rafa_2306 flair: food-drink.coconut id: rafa_2306 score: 0 - rank: 120 id: magic-champions score: 11 players: - user: name: Sasha0 flair: symbols.gnu-logo id: sasha0 score: 11 - rank: 121 id: AwBNMJHZ score: 10 players: - user: name: WeMustProtectTheKing id: wemustprotecttheking score: 10 - user: name: antiMAGNUSS flair: people.index-pointing-up-light-skin-tone id: antimagnuss score: 0 - user: name: BlAcKcAt888 flair: smileys.smirking-face id: blackcat888 score: 0 - rank: 122 id: tarantoscacchi score: 8 players: - user: name: gigitroso flair: objects.crown id: gigitroso score: 4 - user: name: tecnochess id: tecnochess score: 4 - rank: 123 id: naq-nouvelle-aquitaine score: 8 players: - user: name: Betcomcpiey flair: travel-places.wooden-ship id: betcomcpiey score: 8 - rank: 124 id: offical-gm-magnuscarlsen-fan-club score: 7 players: - user: name: New_Life_07 id: new_life_07 score: 4 - user: name: olimpicos flair: smileys.clown-face id: olimpicos score: 3 - rank: 125 id: chess-ille-et-vilaine35 score: 6 players: - user: name: Akshaj13 id: akshaj13 score: 6 - user: name: astroy-jo flair: activity.lichess-blitz patron: true patronColor: 1 id: astroy-jo score: 0 - user: name: switcheur flair: activity.lichess-variant-three-check id: switcheur score: 0 - rank: 126 id: study-group-one score: 6 players: - user: name: Z919 id: z919 score: 6 - user: name: End_Game_Flame flair: smileys.face-with-crossed-out-eyes-blob id: end_game_flame score: 0 - rank: 127 id: djS4IDqL score: 6 players: - user: name: Alex1965111 id: alex1965111 score: 6 - rank: 128 id: el-peon-electrico score: 6 players: - user: name: LuisAlce patron: true patronColor: 9 id: luisalce score: 6 - rank: 129 id: grand-master-ninja score: 4 players: - user: name: Gojo11 flair: activity.chess-pawn id: gojo11 score: 2 - user: name: EmaniJoshua id: emanijoshua score: 2 - user: name: StMichael1 id: stmichael1 score: 0 - user: name: GokuIsBest1 flair: nature.high-voltage id: gokuisbest1 score: 0 - user: name: CHESS_LEGEND_PRO flair: travel-places.automobile id: chess_legend_pro score: 0 - user: name: ChessClassic_555 flair: activity.lichess-berserk patron: true patronColor: 5 id: chessclassic_555 score: 0 - user: name: Ashvashan flair: activity.1st-place-medal id: ashvashan score: 0 - user: name: IWILLZERK flair: activity.lichess-berserk id: iwillzerk score: 0 - user: name: didiWilliam flair: nature.whale id: didiwilliam score: 0 - user: name: Nikitosik1708 flair: activity.shogi-bigsby patron: true patronColor: 3 id: nikitosik1708 score: 0 - user: name: So_Amazing flair: activity.lichess-berserk id: so_amazing score: 0 - user: name: Stamatis3 flair: people.ninja-medium-skin-tone id: stamatis3 score: 0 - user: name: LaKmindi flair: objects.headphone id: lakmindi score: 0 - user: name: whaleTee flair: activity.lichess-berserk id: whaletee score: 0 - user: name: mrkn2011 flair: activity.lichess-blitz patron: true patronColor: 3 id: mrkn2011 score: 0 - user: name: rabia-a flair: nature.butterfly id: rabia-a score: 0 - rank: 130 id: chessstarsz-group score: 4 players: - user: name: zeinabtaei id: zeinabtaei score: 4 - user: name: AriMarcopoulos id: arimarcopoulos score: 0 - user: name: TAHAVIP flair: travel-places.building-construction id: tahavip score: 0 - user: name: Reali id: reali score: 0 - user: name: Hamidhamid360 id: hamidhamid360 score: 0 - user: name: Behrooooooz id: behrooooooz score: 0 - user: name: sajjad_figo id: sajjad_figo score: 0 - user: name: Al1Shayanfar id: al1shayanfar score: 0 - rank: 131 id: bengal-tiger score: 4 players: - user: name: Wadera33 flair: symbols.puzzle-racer id: wadera33 score: 2 - user: name: Manomay2012 id: manomay2012 score: 2 - user: name: Seidenschnabel1 id: seidenschnabel1 score: 0 - rank: 132 id: indian-global-chess-club score: 4 players: - user: name: Gocha778 id: gocha778 score: 4 - user: name: Aayushman2014 flair: objects.crown id: aayushman2014 score: 0 - user: name: sraychaudhury88 id: sraychaudhury88 score: 0 - rank: 133 id: national-chess-blasters score: 4 players: - user: name: Gandalf_911 id: gandalf_911 score: 2 - user: name: Rus-777 id: rus-777 score: 2 - user: name: ahana_2016 id: ahana_2016 score: 0 - rank: 134 id: elite-outlaws-2000 score: 4 players: - user: name: Joshforthewin flair: objects.crossed-swords id: joshforthewin score: 4 - user: name: xtc15 flair: nature.shooting-star id: xtc15 score: 0 - rank: 135 id: bmf-2 score: 4 players: - user: name: CapOuPasCap2 flair: activity.martial-arts-uniform id: capoupascap2 score: 4 - user: name: elpapadelospollitos1 flair: nature.milky-way id: elpapadelospollitos1 score: 0 - rank: 136 id: alien-gambit-free-for-all score: 4 players: - user: name: ahmed442005 flair: activity.chess-pawn id: ahmed442005 score: 4 - rank: 137 id: superchessvalera score: 3 players: - user: name: Danilka_2016 flair: smileys.angry-face-with-horns id: danilka_2016 score: 3 - user: name: Valera2025 flair: symbols.python-logo id: valera2025 score: 0 - rank: 138 id: global-chess-federation score: 2 players: - user: name: Dressz flair: smileys.exploding-head id: dressz score: 2 - user: name: LeyendMaestro id: leyendmaestro score: 0 - user: name: ThiagoMarcel2025 flair: activity.lichess-bullet id: thiagomarcel2025 score: 0 - user: name: Santiago-Coronel flair: symbols.move-brilliant id: santiago-coronel score: 0 - user: name: ThiagoChessClub10 flair: nature.crocodile id: thiagochessclub10 score: 0 - user: name: tuberculosistubo id: tuberculosistubo score: 0 - rank: 139 id: rapid-80 score: 2 players: - user: name: Andraska flair: activity.lichess-ultrabullet id: andraska score: 2 - user: name: kombinator02 flair: people.flexed-biceps id: kombinator02 score: 0 - user: name: Shach_i_mat17 flair: activity.chess id: shach_i_mat17 score: 0 - user: name: Dimatarasov22012014 id: dimatarasov22012014 score: 0 - rank: 140 id: four-pawns score: 2 players: - user: name: Kobe71 flair: objects.bar-chart id: kobe71 score: 2 - user: name: Ogro11 flair: symbols.python-logo id: ogro11 score: 0 - rank: 141 id: stormax-champions score: 2 players: - user: name: Dameviolette580 flair: smileys.face-blowing-a-kiss-blob id: dameviolette580 score: 2 - user: name: Thunder_Stormax flair: symbols.puzzle-storm id: thunder_stormax score: 0 - rank: 142 id: story-writers-team score: 2 players: - user: name: WildWizard flair: nature.baby-chick patron: true patronColor: 4 id: wildwizard score: 2 - user: name: srinikamathur id: srinikamathur score: 0 - rank: 143 id: lichtdesdunkeln score: 2 players: - user: name: lichtdesdunkeln flair: nature.sun id: lichtdesdunkeln score: 2 - rank: 144 id: aravs-ultimate-team score: 2 players: - user: name: LittleChessFriend flair: people.ninja-dark-skin-tone id: littlechessfriend score: 2 - rank: 145 id: edmonio--friends score: 2 players: - user: name: ajanashia3 id: ajanashia3 score: 2 - rank: 146 id: award-champions score: 2 players: - user: name: vrushu flair: activity.lichess-ultrabullet id: vrushu score: 2 - rank: 147 id: tyyymin score: 0 players: - user: name: shahmatist15000 flair: symbols.zzz id: shahmatist15000 score: 0 - user: name: rudra_111 flair: smileys.smiling-face-with-halo id: rudra_111 score: 0 - user: name: learningchess6 flair: nature.shooting-star id: learningchess6 score: 0 - user: name: MIKROBIK199 flair: smileys.woozy-face id: mikrobik199 score: 0 - user: name: Smailllll flair: objects.rescue-workers-helmet id: smailllll score: 0 - rank: 148 id: chess-hummer score: 0 players: - user: name: i_Am_An_Unknown_Play flair: nature.shark id: i_am_an_unknown_play score: 0 - user: name: kkaleks flair: objects.hammer id: kkaleks score: 0 - user: name: akguru flair: objects.crown id: akguru score: 0 - rank: 149 id: ar4asd1s-team score: 0 players: - user: name: VaArAvKrIsHnNa flair: nature.wing id: vaaravkrishnna score: 0 - user: name: Ar4Asd1_Chess flair: smileys.alien id: ar4asd1_chess score: 0 - user: name: kumuDan flair: people.ninja id: kumudan score: 0 - user: name: Black_Esi id: black_esi score: 0 - rank: 150 id: berserking_kings score: 0 players: - user: name: vjc06 flair: activity.crystal-ball patron: true patronColor: 5 id: vjc06 score: 0 - user: name: Ihavenousername20 flair: people.backhand-index-pointing-up-dark-skin-tone id: ihavenousername20 score: 0 - user: name: StefanoCarpio flair: activity.lichess-bullet id: stefanocarpio score: 0 - rank: 151 id: muhtesem score: 0 players: - user: name: metehan26 flair: smileys.clown-face id: metehan26 score: 0 - user: name: OnUr5213 flair: activity.lichess-classical id: onur5213 score: 0 - user: name: Onur4423 flair: symbols.move-good id: onur4423 score: 0 - rank: 152 id: greece-chess score: 0 players: - user: name: Mystery_chessgame flair: activity.lichess-blitz id: mystery_chessgame score: 0 - user: name: PumucklGerman flair: activity.trophy patron: true patronColor: 1 id: pumucklgerman score: 0 - rank: 153 id: gametime score: 0 players: - user: name: EnormousZebra id: enormouszebra score: 0 - user: name: TraveledKnight flair: symbols.linux-tux-penguin id: traveledknight score: 0 - rank: 154 id: QqTfWXXR score: 0 players: - user: name: Hanter-2011 flair: smileys.cold-face id: hanter-2011 score: 0 - user: name: BUS_MAGNUS_1 flair: nature.fire id: bus_magnus_1 score: 0 - rank: 155 id: '-world-chess-lovers-' score: 0 players: - user: name: Vinit_Fischer321 flair: people.prince-light-skin-tone id: vinit_fischer321 score: 0 - user: name: code_98 flair: activity.lichess-variant-atomic id: code_98 score: 0 - rank: 156 id: checkmate-society score: 0 players: - user: name: Danilovich45 flair: symbols.puzzle-storm id: danilovich45 score: 0 - user: name: AdhilLikesSoup flair: objects.money-with-wings id: adhillikessoup score: 0 - rank: 157 id: terrific-titans score: 0 players: - user: name: Adithyaedayillam flair: nature.glowing-star id: adithyaedayillam score: 0 - user: name: writersblock19 id: writersblock19 score: 0 - rank: 158 id: LDLQw0zg score: 0 players: - user: name: IgorMizinov title: FM flair: objects.graduation-cap id: igormizinov score: 0 - rank: 159 id: falconf7-club score: 0 players: - user: name: falconf7 flair: objects.crossed-swords patron: true patronColor: 5 id: falconf7 score: 0 - rank: 160 id: artek-2-0 score: 0 players: - user: name: Gleb-888 flair: nature.goose id: gleb-888 score: 0 - rank: 161 id: 9wZXpVmn score: 0 players: - user: name: anotoliy_karpov flair: nature.hedgehog id: anotoliy_karpov score: 0 - rank: 162 id: 6d-chesseract score: 0 players: - user: name: penguinburgerking flair: symbols.linux-tux-penguin id: penguinburgerking score: 0 - rank: 163 id: super-monster-knights score: 0 players: - user: name: Fritz404 flair: activity.lichess-berserk id: fritz404 score: 0 - rank: 164 id: XncGRlEr score: 0 players: - user: name: vlobov flair: activity.lichess-berserk id: vlobov score: 0 - rank: 165 id: learn-chess-and-play-for-fun score: 0 players: - user: name: Vram_Sargisyan11 flair: smileys.ghost id: vram_sargisyan11 score: 0 - rank: 166 id: gikopianogikopia--roham_13912011-carlsen_magnus3-friends score: 0 players: - user: name: Gikopiano flair: smileys.alien-monster id: gikopiano score: 0 - rank: 167 id: mir-sultan-chess-academy score: 0 players: - user: name: itxSMG flair: objects.gem-stone id: itxsmg score: 0 - rank: 168 id: thoufeesid score: 0 players: - user: name: shadow1122 flair: symbols.move-interesting id: shadow1122 score: 0 - rank: 169 id: '------chess-is-for-those-who-love-it' score: 0 players: - user: name: Mr_Gri17 flair: smileys.distorted-face id: mr_gri17 score: 0 - rank: 170 id: the-royal-empire score: 0 players: - user: name: OLLiEparker flair: food-drink.banana id: ollieparker score: 0 - rank: 171 id: vNjIUaQm score: 0 players: - user: name: GerzoK_0105 flair: symbols.black-flag id: gerzok_0105 score: 0 - rank: 172 id: gkr_gabriel--friends score: 0 players: - user: name: GKR_gabriel flair: nature.comet id: gkr_gabriel score: 0 - rank: 173 id: think score: 0 players: - user: name: cumulus200 id: cumulus200 score: 0 - rank: 174 id: neighbor-of-magnus-carlsen-fan-club score: 0 players: [] - rank: 175 id: knights-of-the-gambit score: 0 players: [] - rank: 176 id: daily-tournaments-swiss-and-arena score: 0 players: [] - rank: 177 id: SZhfGcEe score: 0 players: [] - rank: 178 id: ikasbidea-ipi-ikastola score: 0 players: [] - rank: 179 id: abeer-loves-chess score: 0 players: [] - rank: 180 id: no-war--only-peace score: 0 players: [] - rank: 181 id: fairchess_on_youtube score: 0 players: [] - rank: 182 id: 3aGbUZNh score: 0 players: [] - rank: 183 id: chessnode score: 0 players: [] - rank: 184 id: the-chess-wizards score: 0 players: [] - rank: 185 id: 64-kings-army score: 0 players: [] - rank: 186 id: tdIrKKIl score: 0 players: [] - rank: 187 id: iloilo-philippines-friendly-chess-club score: 0 players: [] - rank: 188 id: kivi-chess score: 0 players: [] - rank: 189 id: chessy-chess score: 0 players: [] - rank: 190 id: kumudan-123 score: 0 players: [] arenas-getTournamentsCreatedByUser.json: value: id: LojvlQOo createdBy: natebrady23 system: arena minutes: 60 clock: limit: 300 increment: 3 rated: false fullName: Return of the BBB No. 140 Arena nbPlayers: 12 variant: key: standard short: Std name: Standard startsAt: 1762914600000 finishesAt: 1762918200000 status: 30 perf: key: blitz name: Blitz position: 1 icon: ) teamMember: bradys-blunder-buddies winner: name: Mennonite flair: objects.guitar id: mennonite arenas-getTournamentsPlayedByUser.json: value: tournament: id: CktEA0PO createdBy: lichess system: arena minutes: 57 clock: limit: 300 increment: 0 rated: true fullName: Hourly Blitz Arena nbPlayers: 407 variant: key: standard short: Std name: Standard startsAt: 1775124015000 finishesAt: 1775127435000 status: 30 perf: key: blitz name: Blitz position: 1 icon: ) minRatedGames: nb: 15 schedule: freq: hourly speed: blitz player: games: 1 score: 2 rank: 191 teams-getTeamSwissTournaments.json: value: id: GWAM5JK9 createdBy: lichess startsAt: '2026-05-18T23:30:00Z' name: Rapid Increment clock: limit: 420 increment: 2 variant: standard round: 0 nbRounds: 7 nbPlayers: 0 nbOngoing: 0 status: created nextRound: at: '2026-05-18T23:30:00Z' in: 334377 verdicts: list: - condition: ≥ 8 rated Rapid games verdict: ok - condition: Play your games verdict: ok accepted: true rated: true broadcasts-getOfficialBroadcasts.json: value: tour: id: gJm0i5k1 name: Knight Invitational slug: knight-invitational info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational/gJm0i5k1 tier: 5 dates: - 1778812603116 rounds: - id: 2Ywx30MD name: Round 1 slug: round-1 createdAt: 1778812602924 rated: false ongoing: true startsAt: 1778816202858 url: https://lichess.org/broadcast/knight-invitational/round-1/2Ywx30MD - id: bJEvCanZ name: Round 2 slug: round-2 createdAt: 1778812603074 rated: false ongoing: true startsAt: 1778819802858 url: https://lichess.org/broadcast/knight-invitational/round-2/bJEvCanZ - id: cxolzwOn name: Round 3 slug: round-3 createdAt: 1778812603095 rated: false ongoing: true startsAt: 1778823402858 url: https://lichess.org/broadcast/knight-invitational/round-3/cxolzwOn - id: 0JjIup0K name: Final Round slug: final-round createdAt: 1778812603116 rated: false ongoing: true startsAt: 1778812603116 url: https://lichess.org/broadcast/knight-invitational/final-round/0JjIup0K defaultRoundId: 2Ywx30MD broadcasts-getPaginatedToBroadcastPreviews.json: value: active: - tour: id: gJm0i5k1 name: Knight Invitational slug: knight-invitational info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational/gJm0i5k1 tier: 5 dates: - 1778812603116 round: id: 2Ywx30MD name: Round 1 slug: round-1 createdAt: 1778812602924 rated: false ongoing: true startsAt: 1778816202858 url: https://lichess.org/broadcast/knight-invitational/round-1/2Ywx30MD upcoming: [] past: currentPage: 1 maxPerPage: 24 currentPageResults: [] previousPage: null nextPage: null broadcasts-getBroadcastsCreatedByUser.json: value: currentPage: 1 maxPerPage: 24 currentPageResults: - tour: id: iQ7zCznG name: Bobby's Tournament slug: bobbys-tournament info: format: 5-round Swiss location: Chess Club createdAt: 1778812603531 url: https://lichess.org/broadcast/bobbys-tournament/iQ7zCznG communityOwner: name: Bobby id: bobby previousPage: null nextPage: null nbResults: 1 nbPages: 1 broadcasts-searchBroadcasts.json: value: currentPage: 1 maxPerPage: 24 currentPageResults: - tour: id: gJm0i5k1 name: Knight Invitational slug: knight-invitational info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational/gJm0i5k1 tier: 5 dates: - 1778812603116 round: id: 0JjIup0K name: Final Round slug: final-round createdAt: 1778812603116 rated: false ongoing: true startsAt: 1778812603116 url: https://lichess.org/broadcast/knight-invitational/final-round/0JjIup0K previousPage: null nextPage: null broadcasts-createBroadcastTournament.json: value: tour: id: gJm0i5k1 name: Knight Invitational slug: knight-invitational info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational/gJm0i5k1 tier: 5 rounds: [] broadcasts-getBroadcastTournament.json: value: tour: id: gJm0i5k1 name: Knight Invitational slug: knight-invitational info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational/gJm0i5k1 tier: 5 dates: - 1778812603116 rounds: - id: 2Ywx30MD name: Round 1 slug: round-1 createdAt: 1778812602924 rated: false ongoing: true startsAt: 1778816202858 url: https://lichess.org/broadcast/knight-invitational/round-1/2Ywx30MD - id: bJEvCanZ name: Round 2 slug: round-2 createdAt: 1778812603074 rated: false ongoing: true startsAt: 1778819802858 url: https://lichess.org/broadcast/knight-invitational/round-2/bJEvCanZ - id: cxolzwOn name: Round 3 slug: round-3 createdAt: 1778812603095 rated: false ongoing: true startsAt: 1778823402858 url: https://lichess.org/broadcast/knight-invitational/round-3/cxolzwOn - id: 0JjIup0K name: Final Round slug: final-round createdAt: 1778812603116 rated: false ongoing: true startsAt: 1778812603116 url: https://lichess.org/broadcast/knight-invitational/final-round/0JjIup0K defaultRoundId: 2Ywx30MD photos: {} broadcasts-getPlayersOfBroadcastTournament.json: value: - name: Player 1 fideId: 123 played: 0 - name: Player 2 fideId: 456 played: 0 - name: Player 3 played: 0 - name: Player 4 played: 0 broadcasts-getPlayer.json: value: name: Player 1 fideId: 123 played: 0 games: - round: 0JjIup0K id: uHRiHXFM opponent: name: Player 2 fideId: 456 color: white fideTC: standard ongoing: true broadcasts-updateBroadcastTournament.json: value: ok: true broadcasts-createBroadcastRound.json: value: round: id: 0JjIup0K name: Final Round slug: final-round createdAt: 1778812603116 rated: false ongoing: true startsAt: 1778812603116 url: https://lichess.org/broadcast/knight-invitational/final-round/0JjIup0K tour: id: gJm0i5k1 name: Knight Invitational slug: knight-invitational info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational/gJm0i5k1 tier: 5 dates: - 1778816202858 study: writeable: true features: chat: true computer: true explorer: true broadcasts-getBroadcastRound.json: value: round: id: 0JjIup0K name: Final Round slug: final-round createdAt: 1778812603116 rated: false ongoing: true startsAt: 1778812603116 url: https://lichess.org/broadcast/knight-invitational-2/final-round/0JjIup0K tour: id: gJm0i5k1 name: Knight Invitational 2 slug: knight-invitational-2 info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational-2/gJm0i5k1 dates: - 1778812603116 communityOwner: name: Admin id: admin study: writeable: false features: chat: true computer: true explorer: true games: - id: uHRiHXFM name: Player 1 - Player 2 fen: rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2 players: - name: Player 1 fideId: 123 - name: Player 2 fideId: 456 lastMove: e7e5 thinkTime: 0 status: '*' - id: ZiN3hBIO name: Player 3 - Player 4 fen: rnbqkbnr/ppp1pppp/8/3p4/3P4/8/PPP1PPPP/RNBQKBNR w KQkq - 0 2 players: - name: Player 3 - name: Player 4 lastMove: d7d5 thinkTime: 0 status: '*' photos: {} isSubscribed: false broadcasts-getBroadcastRoundWithCustomScoring.json: value: round: id: ZpRw34eP name: Round 9 | Armageddon slug: round-9--armageddon createdAt: 1747829403418 rated: false finishedAt: 1749146624615 finished: true startsAt: 1749142800000 customScoring: white: win: 0.5 draw: 0 black: win: 0.5 draw: 0.5 url: https://lichess.org/broadcast/norway-chess-2025--open/round-9--armageddon/ZpRw34eP tour: id: PcsMbQ9J name: Norway Chess 2025 | Open slug: norway-chess-2025--open info: format: 6-player double round-robin tc: 120 min + 10 sec / move starting 41 fideTC: standard location: Stavanger, Norway timeZone: Europe/Oslo players: Carlsen, Gukesh, Caruana, Nakamura website: https://norwaychess.no/en/ standings: https://stats.norwaychess.no/2025/standings createdAt: 1747826541812 url: https://lichess.org/broadcast/norway-chess-2025--open/PcsMbQ9J tier: 5 dates: - 1748271600000 - 1749229200000 image: https://image.lichess1.org/display?fmt=webp&h=400&op=thumbnail&path=relay:PcsMbQ9J:QeUfDaHh.webp&w=800&sig=4d7317641091543a721d77baafff804fb15bf107 description: "**Points**\r\n\r\n- Win in the classical game: 3 points\r\n- Loss in the classical game: 0 points\r\n- Draw in the classical game & win Armageddon: 1½ points\r\n- Draw in the classical game & loss Armageddon: 1 point\r\n\r\n\r\n**Armageddon**\r\n\r\n- Time control: White has 10 minutes, Black has 7 minutes\r\n- Colors: The player with white will continue with white in Armageddon" study: writeable: false features: chat: true computer: true explorer: true games: - id: Zc8WTto3 name: Nakamura, Hikaru - Erigaisi Arjun fen: 1nR5/1P1n1pp1/6kp/4P3/6P1/7P/5PK1/8 b - - 0 48 players: - name: Nakamura, Hikaru title: GM rating: 2804 fideId: 2016192 fed: USA clock: 19700 - name: Erigaisi Arjun title: GM rating: 2782 fideId: 35009192 fed: IND clock: 10000 lastMove: g3g4 status: 1-0 photos: '1503014': small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=v6JPXmWyYhTI.webp&w=100&sig=78e9187109f632629c22b5e5b6997976e06a1cf9 medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=v6JPXmWyYhTI.webp&w=500&sig=4b2b5199cfc1d9ff87810d7c10af8a74fe85256e credit: Brigham Aldrich '2016192': small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=DKk7D4U9ivZb.webp&w=100&sig=44d30eb428b70d1058ceec0333fa227c1da60581 medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=DKk7D4U9ivZb.webp&w=500&sig=5e2c2edb1347cfa053951ea481886c21e0c4f676 credit: Andreas Kontokanis, CC BY-SA 2.0 , via Wikimedia Commons '2020009': small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=Hif5ohoGiHPZ.webp&w=100&sig=13ea5db011e7e45a97ec1a4164a355ef6b1db8f9 medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=Hif5ohoGiHPZ.webp&w=500&sig=fa71f0594833a61290626f11ab67459349a29f3c credit: Brigham Aldrich '8603405': small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=rDGOWW82iYK9.webp&w=100&sig=7c8ece3893b331835185347a890831ee07a1489e medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=rDGOWW82iYK9.webp&w=500&sig=dbae7080a8bd3ce8b153a2c7a24429f107dabf1c credit: Frans Peeters, CC BY-SA 2.0 , via Wikimedia Commons '35009192': small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=ZtNkAl1_0MHT.webp&w=100&sig=8a2122f91eab6c3f0528bce8ea5854fd561bbcde medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=ZtNkAl1_0MHT.webp&w=500&sig=f2faf575e19147ee8b1d2b573f1fd2e18fab88e7 credit: Brigham Aldrich '46616543': small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=km_a_02cL0cP.webp&w=100&sig=6427d1a5397f5396ab5246125aae60a672ac5e4a medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=km_a_02cL0cP.webp&w=500&sig=a12e9409dfb43c0e6e2eb40f29908a55ee455770 credit: Frans Peeters, CC BY-SA 2.0 , via Wikimedia Commons group: id: I7IIijJO slug: norway-chess-2025 name: Norway Chess 2025 tours: - id: PcsMbQ9J name: Open active: false live: false - id: lrKI0bSz name: Women active: false live: false broadcasts-updateBroadcastRound.json: value: round: id: 0JjIup0K name: Final Round 2 slug: final-round-2 createdAt: 1778812603116 rated: false ongoing: true startsAt: 1778812603116 url: https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K tour: id: gJm0i5k1 name: Knight Invitational 2 slug: knight-invitational-2 info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational-2/gJm0i5k1 dates: - 1778812603116 communityOwner: name: Admin id: admin study: writeable: true features: chat: true computer: true explorer: true games: - id: uHRiHXFM name: Player 1 - Player 2 fen: rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2 players: - name: Player 1 fideId: 123 - name: Player 2 fideId: 456 lastMove: e7e5 thinkTime: 0 status: '*' - id: ZiN3hBIO name: Player 3 - Player 4 fen: rnbqkbnr/ppp1pppp/8/3p4/3P4/8/PPP1PPPP/RNBQKBNR w KQkq - 0 2 players: - name: Player 3 - name: Player 4 lastMove: d7d5 thinkTime: 0 status: '*' photos: {} isSubscribed: false broadcasts-resetBroadcastRound.json: value: ok: true broadcasts-pushPgnToBroadcastRound.json: value: games: - tags: White: Player 1 WhiteFideId: '123' Black: Player 2 BlackFideId: '456' Result: '*' Event: Knight Invitational moves: 2 - tags: White: Player 3 Black: Player 4 Result: '*' Event: Knight Invitational moves: 2 broadcasts-streamOngoingBroadcastRoundAsPgn.pgn: value: | [Event "Knight Invitational"] [Site "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/uHRiHXFM"] [Date "2026.05.15"] [White "Player 1"] [Black "Player 2"] [Result "*"] [WhiteFideId "123"] [BlackFideId "456"] [Variant "Standard"] [ECO "C20"] [Opening "King's Pawn Game"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/uHRiHXFM"] 1. e4 e5 * [Event "Knight Invitational"] [Site "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/ZiN3hBIO"] [Date "2026.05.15"] [White "Player 3"] [Black "Player 4"] [Result "*"] [Variant "Standard"] [ECO "D00"] [Opening "Queen's Pawn Game"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/ZiN3hBIO"] 1. d4 d5 * broadcasts-exportOneRoundAsPgn.pgn: value: | [Event "Knight Invitational"] [Site "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/uHRiHXFM"] [Date "2026.05.15"] [White "Player 1"] [Black "Player 2"] [Result "*"] [WhiteFideId "123"] [BlackFideId "456"] [Variant "Standard"] [ECO "C20"] [Opening "King's Pawn Game"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/uHRiHXFM"] 1. e4 e5 * [Event "Knight Invitational"] [Site "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/ZiN3hBIO"] [Date "2026.05.15"] [White "Player 3"] [Black "Player 4"] [Result "*"] [Variant "Standard"] [ECO "D00"] [Opening "Queen's Pawn Game"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/ZiN3hBIO"] 1. d4 d5 * broadcasts-exportAllRoundsAsPgn.pgn: value: | [Event "Round 1: Chapter 1"] [Site "https://lichess.org/broadcast/knight-invitational-2/round-1/2Ywx30MD/NemhNt04"] [Date "2026.05.15"] [Result "*"] [Variant "Standard"] [ECO "?"] [Opening "?"] [UTCDate "2026.05.15"] [UTCTime "02:36:42"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/round-1/2Ywx30MD"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/round-1/2Ywx30MD/NemhNt04"] * [Event "Round 2: Chapter 1"] [Site "https://lichess.org/broadcast/knight-invitational-2/round-2/bJEvCanZ/5JK4PVm6"] [Date "2026.05.15"] [Result "*"] [Variant "Standard"] [ECO "?"] [Opening "?"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/round-2/bJEvCanZ"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/round-2/bJEvCanZ/5JK4PVm6"] * [Event "Round 3: Chapter 1"] [Site "https://lichess.org/broadcast/knight-invitational-2/round-3/cxolzwOn/T3ClNdwy"] [Date "2026.05.15"] [Result "*"] [Variant "Standard"] [ECO "?"] [Opening "?"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/round-3/cxolzwOn"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/round-3/cxolzwOn/T3ClNdwy"] * [Event "Knight Invitational"] [Site "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/uHRiHXFM"] [Date "2026.05.15"] [White "Player 1"] [Black "Player 2"] [Result "*"] [WhiteFideId "123"] [BlackFideId "456"] [Variant "Standard"] [ECO "C20"] [Opening "King's Pawn Game"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/uHRiHXFM"] 1. e4 e5 * [Event "Knight Invitational"] [Site "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/ZiN3hBIO"] [Date "2026.05.15"] [White "Player 3"] [Black "Player 4"] [Result "*"] [Variant "Standard"] [ECO "D00"] [Opening "Queen's Pawn Game"] [UTCDate "2026.05.15"] [UTCTime "02:36:43"] [BroadcastName "Knight Invitational 2"] [BroadcastURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K"] [GameURL "https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K/ZiN3hBIO"] 1. d4 d5 * broadcasts-getYourBroadcastRounds.json: value: round: id: 0JjIup0K name: Final Round 2 slug: final-round-2 createdAt: 1778812603116 rated: false ongoing: true startsAt: 1778812603116 url: https://lichess.org/broadcast/knight-invitational-2/final-round-2/0JjIup0K tour: id: gJm0i5k1 name: Knight Invitational 2 slug: knight-invitational-2 info: {} createdAt: 1778812602837 url: https://lichess.org/broadcast/knight-invitational-2/gJm0i5k1 dates: - 1778812603116 communityOwner: name: Admin id: admin study: writeable: true features: chat: true computer: true explorer: true fide-getFidePlayer.json: value: id: 35009192 name: Erigaisi Arjun federation: IND year: 2003 title: GM standard: 2751 rapid: 2741 blitz: 2776 gender: M photo: small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=ZtNkAl1_0MHT.webp&w=100&sig=8a2122f91eab6c3f0528bce8ea5854fd561bbcde medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=ZtNkAl1_0MHT.webp&w=500&sig=f2faf575e19147ee8b1d2b573f1fd2e18fab88e7 credit: Brigham Aldrich fide-getFidePlayer-nullYear.json: value: id: 8700761 name: Hampus, Sorensen federation: ZAM year: null fide-getFidePlayerRatings.json: value: blitz: [] rapid: - 2015081568 - 2022091568 - 2022101620 - 2024021620 - 2024031772 - 2025121772 standard: - 2015021577 - 2015071577 - 2015081679 - 2015111679 - 2015121616 - 2016071616 - 2016081618 - 2016101618 - 2016111685 - 2017031685 - 2017041692 - 2017061692 - 2017071698 - 2017081698 - 2017091720 - 2024021720 - 2024031832 - 2025121832 fide-searchFidePlayers.json: value: - id: 35009192 name: Erigaisi Arjun federation: IND year: 2003 title: GM standard: 2751 rapid: 2741 blitz: 2776 gender: M photo: small: https://image.lichess1.org/display?fmt=webp&h=100&op=thumbnail&path=ZtNkAl1_0MHT.webp&w=100&sig=8a2122f91eab6c3f0528bce8ea5854fd561bbcde medium: https://image.lichess1.org/display?fmt=webp&h=500&op=thumbnail&path=ZtNkAl1_0MHT.webp&w=500&sig=f2faf575e19147ee8b1d2b573f1fd2e18fab88e7 credit: Brigham Aldrich - id: 35009060 name: Erigaisi Keerthana federation: IND year: 2002 gender: F simuls-getCurrentSimuls.json: value: pending: [] created: [] started: - id: XTZ0U0Z3 host: name: RohaRaj id: roharaj rating: 1174 provisional: false gameId: 7FRF62Up online: true name: RohaRaj fullName: RohaRaj simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: true isFinished: false text: '' nbApplicants: 0 nbPairings: 2 estimatedStartAt: 1778810586192 startedAt: 1778810586192 - id: MxZmjIcy host: name: sloppydogg title: IM id: sloppydogg rating: 2585 provisional: false gameId: fT2zPh6M online: true name: IM sloppydogg fullName: IM sloppydogg simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: true isFinished: false text: "Feel free to watch the stream while playing in the simul! :)\r\n\r\nhttps://www.twitch.tv/jludwig" nbApplicants: 0 nbPairings: 31 estimatedStartAt: 1778810189052 startedAt: 1778810189052 - id: ELUkHWFk host: name: StevenRamirez_UNTELS id: stevenramirez_untels rating: 2215 provisional: true gameId: Ey6my7Ij name: Silmultanea Gambito Steven fullName: Silmultanea Gambito Steven simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: true isFinished: false text: Gambito de Dama nbApplicants: 0 nbPairings: 3 estimatedStartAt: 1778809653537 startedAt: 1778809653537 finished: - id: zHvA9Fiy host: name: coachraven title: GM flair: nature.black-bird patron: true patronColor: 3 id: coachraven rating: 2089 provisional: true name: Caro Kann fullName: Caro Kann simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 15 estimatedStartAt: 1778805680207 startedAt: 1778805680207 finishedAt: 1778809853487 - id: PYaq1hb0 host: name: GMshooter96 title: IM flair: nature.crocodile id: gmshooter96 rating: 2517 provisional: true name: IM GMshooter96 fullName: IM GMshooter96 simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 2 estimatedStartAt: 1778808607419 startedAt: 1778808607419 finishedAt: 1778809604812 - id: eplNIpsi host: name: lanchester1 title: GM id: lanchester1 rating: 2598 provisional: false name: GM Golizadeh fullName: GM Golizadeh simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "Hello Everyone!\r\nWellcome to our Simul Exhibition!\r\n\r\n\r\none Request From all of you:\r\nplease follow us on our youtube channel before joing the simul.\r\nyour support is highly matter for us!\r\nhelp us to growth\r\n\r\nyoutube Channel: https://youtube.com/@kingprincesschess?si=uAYMq2hIxsq8HTnW" nbApplicants: 0 nbPairings: 7 estimatedStartAt: 1778801638585 startedAt: 1778801638585 finishedAt: 1778802566261 - id: m8b3e1wn host: name: AlvinAlcala title: NM flair: activity.trophy patron: true patronColor: 6 id: alvinalcala rating: 2540 provisional: true online: true name: NM AlvinAlcala fullName: NM AlvinAlcala simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 2 estimatedStartAt: 1778796906197 startedAt: 1778796906197 finishedAt: 1778797221350 - id: qEuh3zZh host: name: Mischuk_D title: IM id: mischuk_d rating: 2609 provisional: true name: MischukD fullName: MischukD simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "10 boards\r\nMy profile as a coach is - lichess.org/coach/Mischuk_D" nbApplicants: 0 nbPairings: 11 estimatedStartAt: 1778787525679 startedAt: 1778787525679 finishedAt: 1778789537744 - id: PjRuxC4a host: name: SLOM title: NM flair: nature.phoenix-bird id: slom rating: 2365 provisional: true name: Titled Players With Q and A fullName: Titled Players With Q and A simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "I am going to host a Q and A on my stream while I play against you guys in the simul. PLEASE join my stream and ask any questions that you have!\r\n\r\nI will be having titled player gests that will help me answer your questions!\r\n\r\nWe will start when we have 15-20 players!\r\n\r\nTo ask questions join the stream link down below to have us see your questions, both during and after the games:\r\n\r\nhttps://www.youtube.com/watch?v=QfaHy77_gwE" nbApplicants: 0 nbPairings: 22 estimatedStartAt: 1778776058108 startedAt: 1778776058108 finishedAt: 1778781437360 - id: 2gEc4pPy host: name: AndrCherr title: FM id: andrcherr rating: 2609 provisional: true name: Секреты при атаке - 1 fullName: Секреты при атаке - 1 simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 2 estimatedStartAt: 1778779922611 startedAt: 1778779922611 finishedAt: 1778781322893 - id: njPlb4E6 host: name: Lance5500 title: LM patron: true patronColor: 10 id: lance5500 rating: 2569 provisional: false online: true name: Coach LM Lance5500 fullName: Coach LM Lance5500 simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "Chess coach: https://lichess.org/coach/Lance5500\r\nStudents reviews: https://lichess.org/forum/team-lance5500-chess-coach\r\nTemporary large discounts for the lessons packages \r\nFor lessons and other solid chess inquiries: direct message\r\n\r\nChampion: 11х Marathons, 13x Yearly, 9x Shields. Most trophies holder: 40x Marathon. \r\nPeak lichess ratings: 3052 bullet, 2801 blitz, 2815 rapid, 2622 classical\r\nhttps://lichess.thijs.com/rankings/all/marathon/list_players_trophies.html\r\nhttps://lichess.thijs.com/rankings/all/marathon/list_players_points.html\r\nCourses by @Kingscrusher-YouTube: https://kingscrusher.tv/chesscourses" nbApplicants: 0 nbPairings: 6 estimatedStartAt: 1778780828562 startedAt: 1778780828562 finishedAt: 1778781292565 - id: lGYMPUDC host: name: Zhigalko_Andrey title: GM patron: true patronColor: 10 id: zhigalko_andrey rating: 1500 provisional: true name: GM Zhigalko Andrey fullName: GM Zhigalko Andrey simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 22 estimatedStartAt: 1778773062345 startedAt: 1778773062345 finishedAt: 1778775165410 - id: l2flGovG host: name: Lance5500 title: LM patron: true patronColor: 10 id: lance5500 rating: 2569 provisional: false online: true name: Coach LM Lance5500 fullName: Coach LM Lance5500 simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "Chess coach: https://lichess.org/coach/Lance5500\r\nStudents reviews: https://lichess.org/forum/team-lance5500-chess-coach\r\nTemporary large discounts for the lessons packages \r\nFor lessons and other solid chess inquiries: direct message\r\n\r\nChampion: 11х Marathons, 13x Yearly, 9x Shields. Most trophies holder: 40x Marathon. \r\nPeak lichess ratings: 3052 bullet, 2801 blitz, 2815 rapid, 2622 classical\r\nhttps://lichess.thijs.com/rankings/all/marathon/list_players_trophies.html\r\nhttps://lichess.thijs.com/rankings/all/marathon/list_players_points.html\r\nCourses by @Kingscrusher-YouTube: https://kingscrusher.tv/chesscourses" nbApplicants: 0 nbPairings: 20 estimatedStartAt: 1778772647134 startedAt: 1778772647134 finishedAt: 1778773790997 - id: eoAq6MtS host: name: Lance5500 title: LM patron: true patronColor: 10 id: lance5500 rating: 2569 provisional: false online: true name: Coach LM Lance5500 fullName: Coach LM Lance5500 simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "Chess coach: https://lichess.org/coach/Lance5500\r\nStudents reviews: https://lichess.org/forum/team-lance5500-chess-coach\r\nTemporary large discounts for the lessons packages \r\nFor lessons and other solid chess inquiries: direct message\r\n\r\nChampion: 11х Marathons, 13x Yearly, 9x Shields. Most trophies holder: 40x Marathon. \r\nPeak lichess ratings: 3052 bullet, 2801 blitz, 2815 rapid, 2622 classical\r\nhttps://lichess.thijs.com/rankings/all/marathon/list_players_trophies.html\r\nhttps://lichess.thijs.com/rankings/all/marathon/list_players_points.html\r\nCourses by @Kingscrusher-YouTube: https://kingscrusher.tv/chesscourses" nbApplicants: 0 nbPairings: 31 estimatedStartAt: 1778766268947 startedAt: 1778766268947 finishedAt: 1778768486350 - id: DrShld56 host: name: Zhigalko_Andrey title: GM patron: true patronColor: 10 id: zhigalko_andrey rating: 1500 provisional: true name: GM Zhigalko Andrey fullName: GM Zhigalko Andrey simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 20 estimatedStartAt: 1778764942036 startedAt: 1778764942036 finishedAt: 1778766902703 - id: 9GQx4afl host: name: Zhigalko_Andrey title: GM patron: true patronColor: 10 id: zhigalko_andrey rating: 1500 provisional: true name: GM Zhigalko Andrey fullName: GM Zhigalko Andrey simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 20 estimatedStartAt: 1778757533100 startedAt: 1778757533100 finishedAt: 1778759675099 - id: 2TnfPIHp host: name: Zhigalko_Andrey title: GM patron: true patronColor: 10 id: zhigalko_andrey rating: 1500 provisional: true name: GM Zhigalko Andrey fullName: GM Zhigalko Andrey simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 24 estimatedStartAt: 1778754680156 startedAt: 1778754680156 finishedAt: 1778757005773 - id: D0iXVniy host: name: Fighterman91 title: GM id: fighterman91 rating: 1500 provisional: true name: GM Fighterman91 fullName: GM Fighterman91 simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "Hey everyone!\r\n\r\nToday I’m taking on an exciting challenge\r\nI’ll be playing a 10-player simultaneous chess match! ️\r\n\r\nThink you can beat me? This is your chance\r\n\r\nAll the games will be uploaded on my YouTube channel with full analysis and commentary,\r\nso you can learn from your mistakes and improve your level.\r\n\r\nwww.youtube.com/@GMPouria\r\n\r\nMake sure to subscribe to the channel\r\nTurn on notifications so you don’t miss the videos\r\n\r\nLet’s see who can put up the best fight" nbApplicants: 0 nbPairings: 10 estimatedStartAt: 1778751147287 startedAt: 1778751147287 finishedAt: 1778753544695 - id: mUYiyykS host: name: Fighterman91 title: GM id: fighterman91 rating: 1500 provisional: true name: GM Fighterman91 fullName: GM Fighterman91 simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "Hey everyone!\r\n\r\nToday I’m taking on an exciting challenge \r\nI’ll be playing a 10-player simultaneous chess match! ️\r\n\r\nThink you can beat me? This is your chance \r\n\r\n All the games will be uploaded on my YouTube channel with full analysis and commentary,\r\nso you can learn from your mistakes and improve your level.\r\n\r\nhttps://www.youtube.com/@GMPouria\r\n\r\n Make sure to subscribe to the channel\r\n Turn on notifications so you don’t miss the videos\r\n\r\nLet’s see who can put up the best fight" nbApplicants: 0 nbPairings: 4 estimatedStartAt: 1778749896527 startedAt: 1778749896527 finishedAt: 1778749987067 - id: EwCKTCPr host: name: Mischuk_D title: IM id: mischuk_d rating: 2609 provisional: true name: MischukD fullName: MischukD simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "10 boards\r\nMy profile as a coach is - lichess.org/coach/Mischuk_D" nbApplicants: 0 nbPairings: 10 estimatedStartAt: 1778746557064 startedAt: 1778746557064 finishedAt: 1778748857431 - id: 43o7A1bX host: name: Zhigalko_Andrey title: GM patron: true patronColor: 10 id: zhigalko_andrey rating: 1500 provisional: true name: GM Zhigalko Andrey fullName: GM Zhigalko Andrey simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 15 estimatedStartAt: 1778742288136 startedAt: 1778742288136 finishedAt: 1778744511442 - id: HsWQnJIn host: name: sloppydogg title: IM id: sloppydogg rating: 2585 provisional: false online: true name: IM sloppydogg fullName: IM sloppydogg simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: "Feel free to watch the stream while playing in the simul!!!\r\n\r\nhttps://www.twitch.tv/jludwig" nbApplicants: 0 nbPairings: 30 estimatedStartAt: 1778723706149 startedAt: 1778723706149 finishedAt: 1778728771027 - id: 0MrjJWPB host: name: MillerDominguez title: FM flair: nature.horse id: millerdominguez rating: 1264 provisional: false name: profe jaqueton fullName: profe jaqueton simul variants: - key: standard icon:  name: Standard isCreated: false isRunning: false isFinished: true text: '' nbApplicants: 0 nbPairings: 8 estimatedStartAt: 1778711278867 startedAt: 1778711278867 finishedAt: 1778712862386 teams-getSingleTeam.json: value: id: lichess-swiss name: Lichess Swiss description: The official Lichess Swiss team. We organize regular swiss tournaments for all to join. open: true leader: name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess nbMembers: 702757 flair: food-drink.cheese-wedge leaders: - name: thibault flair: nature.seedling patron: true patronColor: 10 id: thibault - name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess joined: false requested: false teams-getPopularTeams.json: value: currentPage: 1 maxPerPage: 15 currentPageResults: - id: lichess-swiss name: Lichess Swiss description: The official Lichess Swiss team. We organize regular swiss tournaments for all to join. open: true leader: name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess nbMembers: 702757 flair: food-drink.cheese-wedge leaders: - name: thibault flair: nature.seedling patron: true patronColor: 10 id: thibault - name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess - id: zhigalko_sergei-fan-club name: Zhigalko_Sergei & Friends description: "### Добро пожаловать!\r\n\r\nOfficial Club of the Belarusian International Grandmaster\r\nZhigalko Sergei \r\n\r\nОфициальный клуб белорусского международного гроссмейстера \r\nЖигалко Сергея Александровича \r\n\r\n**YOUTUBE КАНАЛ:**\r\nhttps://www.youtube.com/c/SergeiZhigalkoChess\r\n\r\n**ОФИЦИАЛЬНЫЙ САЙТ:**\r\nhttps://zhigalko-sergei.com/\r\n\r\n**Про наш КЛУБ:**\r\nОдин из сильнейших клубов на Lichess!\r\nМного титульных шахматистов!\r\nНевероятно дружеская атмосфера!\r\nЦеним и уважаем каждого члена клуба!\r\n\r\n**WE ARE CHAMPIONS!! МЫ - ЧЕМПИОНЫ!!**\r\nStreamers Battle ([1](https://lichess.org/tournament/jvl0QupJ), [2](https://lichess.org/tournament/QBP2rB6P), [3](https://lichess.org/tournament/SrsgOeVU), [4](https://lichess.org/tournament/eLmQqxYp), [5](https://lichess.org/tournament/aug22str), [6](https://lichess.org/tournament/sep22str), [7](https://lichess.org/tournament/nov22str), [8](https://lichess.org/tournament/feb23str), [9](https://lichess.org/tournament/apr23str), [10](https://lichess.org/tournament/may23str), [11](https://lichess.org/tournament/jun23str), [12](https://lichess.org/tournament/jul23str), [13](https://lichess.org/tournament/sep23str), [14](https://lichess.org/tournament/oct23str)) \r\nLichess Mega ([1](https://lichess.org/tournament/323recdF), [2](https://lichess.org/tournament/952cWgJU), [3](https://lichess.org/tournament/QH2iifj5), [4](https://lichess.org/tournament/KCe4znVp), [5](https://lichess.org/tournament/wS1QTjV9), [6](https://lichess.org/tournament/oJ5QU5Jn), [7](https://lichess.org/tournament/IMapVfbK), [8](https://lichess.org/tournament/TJUognMG), [9](https://lichess.org/tournament/q7ylg3Xg), [10](https://lichess.org/tournament/8fPDiXem), [11](https://lichess.org/tournament/wa0hE8zz), [12](https://lichess.org/tournament/O38mTryX), [13](https://lichess.org/tournament/qxTG2W1L), [14](https://lichess.org/tournament/HsuY0nrH), [15](https://lichess.org/tournament/qTT1ZCvr), [16](https://lichess.org/tournament/uz7rBb8W), [17](https://lichess.org/tournament/AhHStbDN), [18](https://lichess.org/tournament/0Wtg1HEM), [19](https://lichess.org/tournament/R9qCNO9y), [20](https://lichess.org/tournament/zajHUySm), [21](https://lichess.org/tournament/3rIv4ZRF), [22](https://lichess.org/tournament/Ajqo8PcO), [23](https://lichess.org/tournament/LHCX7nK2), [24](https://lichess.org/tournament/orKmy9DG), [25](https://lichess.org/tournament/bgEbXjXs), [26](https://lichess.org/tournament/WvLWf69r), [27](https://lichess.org/tournament/BJ3w8DS2)\r\n\r\n**Преимущества для членов клуба \"Zhigalko_Sergei & Friends\":**\r\nУчастие в ТУРНИРАХ клуба.\r\nУчастие в СЕАНСАХ одновременной игры с гроссмейстером Сергеем Жигалко.\r\nУчастие за нашу дружную команду в командных БИТВАХ.\r\nЗдесь публикуются АНОНСЫ будущих СТРИМОВ гроссмейстера Сергея Жигалко.\r\nИ многое другое! \r\n\r\n#### Гроссмейстер Сергей Жигалко - Кто Такой? :)\r\n\r\n**Максимальные рейтинги FIDE Сергея Жигалко за карьеру:**\r\n 2696 - в классику\r\n 2701 - в блиц\r\n 2752 - в рапид\r\n\r\n**Максимальные рейтинги на Lichess:**\r\n3037 - в рапид\r\n2919 - в блиц\r\n3338 - в пулю\r\n\r\n**Достижения Сергея Жигалко:**\r\nЧемпион Европы по блицу (2017)\r\nЧемпион Мира и Европы до 14 лет (2003)\r\nЧемпион Европы до 18 лет (2006)\r\nВице-Чемпион Мира среди юниоров (2009)\r\n\r\n**На данный момент Жигалко Сергей:**\r\nПрофессиональный шахматный тренер.\r\nАктивный шахматный стример на Youtube.\r\nОдин из сильнейших игроков на Lichess.\r\n\r\n**SITE:** https://zhigalko-sergei.com/\r\n**YOUTUBE:** https://www.youtube.com/c/SergeiZhigalkoChess\r\n**TWITCH:** https://www.twitch.tv/chess_zhigalko_sergei\r\n**INSTAGRAM:** https://www.instagram.com/zhigalko_sergei/\r\n**DONATION ALERTS:** https://www.donationalerts.com/r/zhigalko_sergei\r\n**LICHESS:** https://lichess.org/@/Zhigalko_Sergei\r\n**CHESS.COM:** https://www.chess.com/member/zhigalko_sergei\r\n\r\nПочётный основатель клуба:\r\n@SergeyVoronChess \r\n\r\n**50K MEMBERS**\r\n17.01.2023\r\n\r\n**Дорогие Друзья! Вступайте в Наш Клуб! Вместе - Мы большая СИЛА!!**" open: true leader: name: Zhigalko_Sergei title: GM patron: true patronColor: 10 id: zhigalko_sergei nbMembers: 76170 leaders: - name: Zhigalko_Sergei title: GM patron: true patronColor: 10 id: zhigalko_sergei - name: Chess_Blondinka title: WFM patron: true patronColor: 10 id: chess_blondinka - name: SergeyVoronChess flair: nature.phoenix-bird id: sergeyvoronchess - id: crestbook-chess-club name: Crestbook Chess Club description: "Клуб мг Сергея Шипова \"Crestbook\"\r\nCrestbook club by GM Sergei Shipov\r\n\r\nПо всем вопросам пишите/contacts: https://lichess.org/@/Challenger_Spy\r\n\r\nYoutube - https://www.youtube.com/user/crestbook\r\n\r\nСтримеры клуба / Club streamers:\r\nГроссмейстер Сергей Шипов / GM Sergei Shipov https://lichess.org/@/Crest64\r\nКМС Дмитрий Филимонов / CM Dmitry Filimonov https://lichess.org/@/Challenger_Spy" open: false leader: name: Challenger_Spy patron: true patronColor: 10 id: challenger_spy nbMembers: 44851 leaders: - name: Challenger_Spy patron: true patronColor: 10 id: challenger_spy - name: Crestbook-club id: crestbook-club - name: SU-1704 id: su-1704 - id: fide-checkmate-coronavirus name: FIDE Checkmate Coronavirus description: "FIDE Checkmate Coronavirus tournaments on Lichess ran non-stop for 30 days or 720 hours. \r\n\r\nTournaments were aimed at all chess players, regardless of age, country, or level of play. 1500 special prizes, were distributed among winners of a random draw (raffle). Inspired by the Olympic Creed, we give a winning chance to everyone and reward involvement and participation. The major prize was 64 one-week invitations to the 2021 Chess Olympiad in Moscow!\r\n\r\n To check if you are on the list of winners, have a look here: https://results.checkmatecoronavirus.com/tournaments/prizes\r\n Saw your name among the winners? Don't forget to claim the prize! Please contact us before June 30th 2020 by sending an email to\r\nprizes@checkmatecoronavirus.com with the following data:\r\n• player’s nickname\r\n• player’s real name\r\n• player’s email address\r\n• player’s home address (only for players who won Checkmate Coronavirus Souvenirs)\r\n\r\nAll the details - https://www.checkmatecoronavirus.com" open: true leader: name: FIDE id: fide nbMembers: 38271 leaders: - name: FIDE id: fide - name: cinemakro flair: objects.film-projector id: cinemakro - name: akispara flair: nature.hippopotamus id: akispara - name: lexydim title: WGM flair: nature.blossom id: lexydim - name: mprevenios id: mprevenios - name: leonid_elkin id: leonid_elkin - name: AnastasisTzoumpas title: FM id: anastasistzoumpas - id: online-world-chess-lovers name: Online World Chess Lovers description: "**Top 5Th Team In World**\r\n![](https://i.imgur.com/5fHM5fn.jpg)\r\n-\r\nhttps://chat.whatsapp.com/BojpMPX0uZS5JaYVp023sy?mode=gi_t \r\n-\r\n![](https://i.imgur.com/2R1xWvI.jpeg)\r\n**GP Chess Promotion**\r\n@gouravprithyani\r\nhttps://wa.me/918871232674\r\n-\r\n**1 K USD Cash Prize Battle** (Free)\r\n\r\n\"**Now,Prizes are Fixed**\"\r\n*\"No Matter of Team Rank,* !!️\r\nPlay For **Online World Chess Lovers** (Top 5th team in world)\r\n_________\r\n\"Prize Distribution\"\r\n(1USD = 90 Rs)\r\n\r\n**Fixed Prizes**(Even we come last,Then also) + **Special Benefit**\r\n\r\n**1)100 USD** (Just Wow)\r\n2)70 USD\r\n3)50 USD\r\n4)30 USD\r\n5)20 USD\r\n6)10 USD\r\n7)10 USD\r\n8)10 USD\r\n9)10 USD\r\n10)10 USD\r\n\r\n**Join Team Link-**\r\nhttps://lichess.org/team/online-world-chess-lovers\r\n\r\n**Join Battle link-**\r\nhttps://lichess.org/tournament/CMQ26May\r\n\r\n**Why To Join \"Online World Chess Lovers\" Team in Team Battle**\r\n_\r\n1)**Top 5Th Team In world Having 35,400+ Members From World Wide**\r\n\r\n2)Top 5 Players of Our Team Will get **entry in 600 USD (51,600INR+) Cash Fund Online Tournment.**\r\n\r\n3)All 2600-2900+ Blitz Lichess Rated Players who will join for owcl and play for owcl without any Deal,will get **Free promotion by \"GP Chess Promotion https://wa.me/918871232674\" Which has World Wide Reach**.( Promotion of website/ Classes/Social Chess Media/it will be useful For Getting Students/Good Views on website)\r\n\r\n4)Top 5 Players of Our team Will get Chessmood Course 99 USD(8900Rs)\r\n\r\n5)Payout by Upi/Paypal/Crypto.\r\n\r\n6)Contact team leader after the tournament for prize.\r\n\r\n6)All countries Players are most Welcome.\r\n\r\n7)For fixed Prize,Contact @gouravprithyani\r\n\r\n**Join Group For Updates-**\r\nhttps://chat.whatsapp.com/BojpMPX0uZS5JaYVp023sy?mode=gi_t\r\n\r\n **Share with Your Friends,Invite Your friends,Help us to win this battle** !!️\r\n\r\n**Join Battle Now-** https://lichess.org/tournament/CMQ26May\r\n-\r\n\r\n*ANICHESS TEAM BATTLE I Team Battle*\r\nPrize Pool: **$700 USD (excluding bonus rewards)**\r\n\r\nTournament Details:\r\nDate: *16 May 2026* (Saturday)\r\nTime: *8:30 PM IST*\r\nFormat:3+2\r\n\r\n*Team Link-*\r\nhttps://lichess.org/team/online-world-chess-lovers\r\n\r\n**Battle link-**\r\nhttps://lichess.org/tournament/eQiOIvDu\r\n\r\n**Prize Structure**\r\nIf the team gets 1ST Rank\r\n1-15) 10 USD=150 USD Total\r\n\r\nIf the team gets 2ND rank \r\n1-15) 8$=120 USD total\r\n\r\nIf the team gets 3RD rank\r\n1-15) 7$=105 USD total\r\n\r\nIf the team gets 4TH Rank\r\n1-15) 6$=90 USD Total\r\n\r\nIf the team gets 5TH Rank\r\n1-15) 5$=75 USD total\r\n\r\n*Above Prizes will be given in Anichess Wallet By Organizer Directly,See Battle description for more Details*\r\n\r\nAnd\r\n**Below Are The Prizes Given by Main leader of Owcl Team In \"Upi Only\"**\r\n**Prizes For Owcl Players only**\r\n\r\n**\"If we come 1st\"**\r\n\"300 Rs\" To *Top 15*\r\n\r\n**\"If we come 2nd\"**\r\n\"200 Rs\" To *Top 15*\r\n\r\n**If 3 or Outside,Even Last**\r\n\"30 Rs\" to *top 10* \r\n\r\nAnd\r\n\r\n**1st rank Player of Owcl will Get Chessmood Course worth 99 USD ( No matter of team Rank)**\r\n\r\n**Join for OWCL Now-**\r\nhttps://lichess.org/tournament/eQiOIvDu\r\n-\r\n**Join Our Special Team** https://lichess.org/team/chess-city-team\r\n**Happy Lichess Day\"** (20 June)\r\nhttps://lichess.org/swiss/8JrQVE0f\r\n1)Patron\r\n________________________________________\r\n**[Daily Cash Tmt Qualifiers](https://lichess.org/team/online-world-chess-lovers/tournaments)** -Join in advance\r\n**Pre Join in swiss/ team battle will be appreciated**\r\n-\r\n**Mega Cash Tournament**\r\nhttps://lichess.org/swiss/BaS6PZVe\r\n-\r\n**GP Cash Prize Team Battle**\r\nhttps://lichess.org/tournament/1i4RIHjI\r\n-\r\n**Daily Team Battles**\r\nhttps://lichess.org/team/chess-city-team/tournaments\r\n-\r\nWe frequently Conduct Free Cash Prize Tournaments,Daily So Many Practice Tournaments.\r\n\r\nIf you want to sponsor any cash events on your birthday,Special Events.Inform us.\r\n\r\n**If you want to support us.You can Use below Details.Don't forget to mention the note**\r\nPaypal- https://www.paypal.me/GouravPrithyani\r\nUpi- gouravprithyani@okhdfcbank\r\n-" open: true leader: name: Yogesh02005 id: yogesh02005 nbMembers: 35478 flair: activity.mirror-ball leaders: - name: Gouravprithyani flair: activity.lichess-mohawk id: gouravprithyani - name: stambul65 id: stambul65 - name: black_knight22 title: IM flair: smileys.alien id: black_knight22 - name: argentum123 patron: true patronColor: 1 id: argentum123 - name: ElardV02 flair: activity.military-medal id: elardv02 - id: bengal-tiger name: Bengal tiger description: "Dear reader,\r\nOn a daily basis we organize 7 online chess tournaments. Based on Swiss form.\r\nTournaments are further time & types :-\r\n8:00 am IST= 2:30 am GMT (7 min+2 sec) 7 rounds\r\n11:00 am IST = 5:30 am GMT (10min+0 sec) 7 rounds\r\n2:00 pm IST=8:30 am GMT (7 min +2 sec) 7 rounds\r\n5:00 pm IST = 11:30 am GMT (5 min+2 sec) 7 rounds\r\n8:00 pm IST =2:30 pm GMT (3 min +2 sec) 7 rounds\r\n10:30 pm IST =5:00 pm GMT (1 min+1 sec) 11 rounds\r\n11:30 pm IST =6:00pm GMT (15 min+5 sec) 5 rounds\r\nThe participation is and will continue beyond any national or geographical border. This team was established in India on 19/04/2020. You are just a click away from your contribution to the game you love, the chess.\r\n------------x-----------" open: true leader: name: Bipulb id: bipulb nbMembers: 33199 leaders: - name: Bipulb id: bipulb - name: Punamb id: punamb - name: Biruda id: biruda - name: DAMODARKUMAR flair: activity.chess-pawn id: damodarkumar - id: satranc-dunyam-youtube name: Satranç Dünyam Youtube description: "![white_logo_color_background.jpg](https://image.lichess1.org/display?fmt=webp&h=0&op=resize&path=POtYP_HEYG5a.jpg&w=768&sig=5464e11dcabb5bfae558a535dbba798c7dd89f05)\r\n## **Türkiye'nin En Büyük Satranç Ailesine Hoş Geldiniz!**\r\n\r\n## **[Satranç Dünyam Youtube](https://www.youtube.com/c/satrancdunyam?sub_confirmation=1)**\r\n\r\n## **[satrancdunyam.com](https://satrancdunyam.com/)**" open: false leader: name: YasinEmrah title: FM flair: symbols.play-button patron: true patronColor: 8 id: yasinemrah nbMembers: 32727 flair: symbols.play-button leaders: - name: YasinEmrah title: FM flair: symbols.play-button patron: true patronColor: 8 id: yasinemrah - name: CanliSatranc flair: objects.nazar-amulet id: canlisatranc - id: masthanaiah-chess-world name: MASTHANAIAH CHESS WORLD description: "#https://imgur.com/sFC62gN\r\n\r\n*MASTHANAIAH CHESS WORLD FIDE RATING RAPID OPEN CHESS TMT 2022-July 9 & 10*\r\n\r\n*️ Reg P.Masthan babu+91 9848147889 G pay/ P pay*\r\n\r\n*2022 JULY NELLORE, AP, *\r\nhttps://chess-results.com/tnr653095.aspx?lan=1&flag=30&turdet=YES&zeilen=99999\r\n\r\n*️2022 March NELLORE ,AP*\r\nhttps://chess-results.com/tnr617014.aspx?lan=1&turdet=YES&zeilen=99999\r\n\r\n*️2021 HYDERABAD, TEL*\r\nhttp://chess-results.com/tnr557180.aspx?lan=1&zeilen=99999\r\n\r\n*️ 2020 NELLORE, AP*\r\nhttps://chess-results.com/tnr514572.aspx?lan=1&zeilen=9999\r\n\r\n https://www.chess.com/club/masthanaiah3 April18 \r\n\r\n https://lichess.org/swiss/70Lytw5z October 2\r\n\r\n https://lichess.org/swiss/Zb6YA3XO October 25\r\n\r\n https://lichess.org/tournament/XivJOMfi Nov14" open: true leader: name: mcw2011 id: mcw2011 nbMembers: 30222 leaders: - name: mcw2011 id: mcw2011 - name: somnadh78 id: somnadh78 - id: pawn-stars-2 name: pawn stars 2 description: "![Pawnstars2logo](https://i.imgur.com/2EYYg6w.jpg)\r\n\r\nWelcome to the Biggest Indian and the Top-5 Team of lichess! \r\nThis Club was formed on 7th August 2020 and the main leader of this team is [Bhavisha0101](https://lichess.org/@/Bhavisha0101) Contact him for any queries or suggestions regarding the team, we also accept paid promotion and sponsorships for tournaments, contact him for the same.\r\n\r\nWe Are #5 among all **[Lichess Teams](https://lichess.org/team/all)**\r\n\r\nThe team has **150+ Titled members!**\r\n\r\n**Our Major Team battles/Chessathons**\r\n**[Jaysheel's Birthday Swiss](https://lichess.org/swiss/ADKFm9Tw)**\r\n\r\n**Hall Of Fame**\r\n[Best Swiss](https://lichess.org/swiss/OTe9lPik)\r\n[Best Arena](https://lichess.org/tournament/HBcZbxBO)\r\n[Best Team Battle](https://lichess.org/tournament/RRkR5bZ2)\r\n\r\nDo join our Elite Team (only 2100+ allowed)\r\n[https://lichess.org/team/pawn-stars-2-elites-2100](https://lichess.org/team/pawn-stars-2-elites-2100)\r\n\r\nDo join our Friendly Club\r\n[https://lichess.org/team/pawns-hurricane-2]( https://lichess.org/team/pawns-hurricane-2 )\r\n\r\nDescription Maintained by [Bhavisha0101](https://lichess.org/@/Bhavisha0101)\r\n\r\nTeam owners/leaders-\r\n\r\n[Bhavisha0101](https://lichess.org/@/Bhavisha0101)\r\n[Jaysheelchess2009](https://lichess.org/@/Jaysheelchess2009)\r\n\r\nLocation- **India**, But all Nations are Welcome!" open: true leader: name: Unknown_Warrior11 id: unknown_warrior11 nbMembers: 30134 leaders: - name: Bhavisha0101 id: bhavisha0101 - name: Jaysheelchess2009 id: jaysheelchess2009 - id: the-house-discord-server name: The House Discord Server description: "![House logo](https://i.postimg.cc/FR9bXyJd/23-House-Logox6-small.png)\r\n\r\n##\r\n\r\nWe are the **House**, a Lichess team for chess and variant players. We’ve won 134 Bundesliga events and five straight season titles since 2020. With 20,000+ members from amateurs to GMs, we value fair play and sportsmanship. Our tournament schedule consists of Bundesliga excitement complemented by multiple variant team battles throughout the week.\r\n\r\nAre you seeking a team that offers both competitive play and a welcoming environment? Look no further than our community. We compete in Lichess Bundesliga tournaments every Thursday and Sunday against top-tier opponents. But the excitement doesn't stop there: our team also engages in variant team tournaments, offering a variety of chess experiences to suit your preferences.\r\n\r\nExplore our unique Puzzle Packs, a collection of puzzles selected from team's Bundesliga games. The latest edition is waiting you [here](https://lichess.org/study/YSwTDVB6) and our full archive is accessible [here](https://lichess.org/study/by/TheHouseDiscord/newest).\r\n\r\n***\r\n\r\n# **Team News & Updates**\r\n- Jan 1: Happy New year! Read about our [journey of 2024 in the forum](https://lichess.org/forum/team-the-house-discord-server/year-of-2024).\r\n\r\n- Sep 22: Things are heating up in the **House Multi-Variant Championship 2025**. Who’s making the Final Four? Follow along on the [forum](https://lichess.org/forum/team-the-house-discord-server/hmvc-2025-pairings-and-results?page=1).\r\n\r\n- Oct 12: Back-to-back **Bundesliga** victories! Props to @satunnainen, @caternion, and @markamp for carrying the team [tonight](https://lichess.org/tournament/vIZ1HsYG).\r\n\r\nCheck out our [upcoming team tournaments](https://lichess.org/team/the-house-discord-server/tournaments).\r\n\r\n***\r\n\r\n# **Lichess Bundesliga**\r\n\r\nThe House joined the [Lichess Bundesliga](https://lichess.org/@/lichess/blog/announcing-the-lichess-bundesliga/X4da-RAA) in [April 2020](https://lichess.org/tournament/oGeaCHx7). After winning the inaugural season, we achieved three consecutive championships by 2022, claimed our fourth title in 2023, and we triumped again in 2024. Five titles in a row! Now we aim for a sixth. Whether you’re a strong player or a newcomer seeking a community with a legacy, The House awaits.\r\n\r\nBundesliga tournaments occur twice weekly, on **Thursdays** and **Sundays**, starting at 18:00 UTC. They offer a valuable opportunity to face formidable opponents and stregthen our team spirit.\r\n\r\nCheck out the results: [all-time scores](https://rochadeeuropa.de/ewige-q-bundesliga-tabelle/), current [season 2025](https://rochadeeuropa.de/lichess-2025/), and relive our victories in [season 2024](https://rochadeeuropa.de/lichess-2024/), [season 2023](https://rochadeeuropa.de/lichess-2023), [season 2022](https://rochadeeuropa.de/lichess-2022), [season 2021](https://rochadeeuropa.de/lichess-2021), and [season 2020](https://rochadeeuropa.de/lichess-2020). The journey isn’t over – join us as we aim for even greater heights!\r\n\r\n***\r\n\r\n# **Discord**\r\n\r\nWe have a Discord server – a chat platform for chess and variants. It's a great place to discuss chess, learn a new variant or deepen your knowledge on your favourite variants! We host group calls during team tournaments, play bughouse on voice chat, explore other games, and more.\r\n\r\nJoin us there! https://discord.gg/RhWgzcC\r\n\r\n***\r\n\r\n# **Contact**\r\n\r\nGot a question? Want to learn more about The House? Reach out to @TheHouseDiscord. Are you a team tournament organizer? While our chess schedule is packed with Lichess Bundesliga commitments, please contact @TheFinnisher for joining your variant team tournaments." open: true leader: name: TheHouseDiscord id: thehousediscord nbMembers: 29006 leaders: - name: TheHouseDiscord id: thehousediscord - name: TheFinnisher patron: true patronColor: 10 id: thefinnisher - name: gsvc title: GM flair: symbols.question-mark id: gsvc - name: calcu_later title: FM id: calcu_later - id: lichess-chess960 name: Lichess Chess960 description: "![](https://i.imgur.com/BH4KzL2.gif)\r\n\r\n**Welcome to the official Lichess Chess960 Team!**\r\n\r\nWe are the home of [Chess960](https://lichess.org/variant/chess960) fans across Lichess. Join the team for tournaments and other community-driven Chess960 events. Everyone is welcome to join!\r\n\r\n[VOTE here](https://forms.gle/iwdeyZwLTzkVar64A) for the time control you would like to see more for Chess960 Tournaments\r\n\r\n#### Weekly Chess960 Team Battle every Saturday, 11:00 UTC\r\n\r\n***\r\n\r\n**Resources:**\r\n\r\n• [Detailed Guide to Chess960](https://lichess.org/@/visualdennis/blog/my-ultimate-guide-to-chess960/de25UOqM) with history, strategy and opening tips as well as further resources. \r\n\r\n• [Table of all 960 starting positions](https://chess960.net/wp-content/uploads/2018/02/chess960-starting-positions.pdf) (PDF)\r\n\r\n• [Chess960 Generator](https://farley-gpt.github.io/Chess960-Generator/)\r\n\r\n• [Castling Rules](https://lichess.org/study/7LaW0hAX)\r\n\r\n***\r\n\r\n**Tournaments Schedule:**\r\n\r\n|**Time**|**Day**|**Event**|**Time Control**|\r\n|---|---|---|---|\r\n|Hourly|Every day|Hourly Chess960|Various|\r\n|18:00 UTC|Wednesdays| Weekly Chess960 SuperBlitz Arena|3+0|\r\n|11:00 UTC|Saturdays| Weekly Chess960 SuperBlitz Team Battle|3+0|\r\n|15:00 UTC|Sunday| Weekly Chess960 Blitz Team Battle|3+2|\r\n\r\n+ The Lichess Chess960 Titled Arenas twice every 6 months. \r\n\r\n+ The Hourly Tournaments\r\n\r\nLinks to these regular tournaments can be found [below](https://lichess.org/team/lichess-chess960/tournaments)\r\n\r\nAdditionally, if you are fan of team battles, you can find [Daily Chess960 Team Battles](https://lichess.org/team/fischer-random-chess-center/tournaments) hosted by [Fischer Random Chess Center](https://lichess.org/team/fischer-random-chess-center)\r\n\r\nChess 960 league with 20+20: https://www.lichess4545.com/chess960/ \r\nChess960 Ladders: https://lichessladders.com/ \r\n\r\n***\r\n\r\n**Community:**\r\n\r\n• [Share and discuss your games here](https://lichess.org/forum/team-lichess-chess960/share-your-cool-chess960-games-here-for-discussion-or-analysis)\r\n\r\n• [Feel free to create a topic in the forum](https://lichess.org/forum/team-lichess-chess960) if you have questions, want to give feedback, or make suggestion for tournament ideas, events, format or any kind of thing. \r\n\r\n• [Lichess Arena Ranking](https://lichess.thijs.com/rankings/chess960/monthly/list_players_trophies.html)\r\n\r\n• Chess960 versions for other variants, such as Crazyhouse960 and Atomic960 can be played on [Pychess](https://www.pychess.org/tournament/J0JLXYFy). Every 2nd Monday of the month, Crazyhouse960 Shield takes place [here](https://www.pychess.org/tournament/J0JLXYFy) \r\n\r\n• Chess960 Puzzles: https://www.960dojo.com/tactics \r\n\r\n***\r\n\r\n**Lichess official variant teams**\r\n\r\n[Lichess Chess960](https://lichess.org/team/lichess-chess960) • [Lichess King of the Hill](https://lichess.org/team/lichess-king-of-the-hill) • [Lichess Three-check](https://lichess.org/team/lichess-three-check) • [Lichess Antichess](https://lichess.org/team/lichess-antichess) • [Lichess Atomic](https://lichess.org/team/lichess-atomic) • [Lichess Horde](https://lichess.org/team/lichess-horde) • [Lichess Racing Kings](https://lichess.org/team/lichess-racing-kings) • [Lichess Crazyhouse](https://lichess.org/team/lichess-crazyhouse)" open: true leader: name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess nbMembers: 27462 flair: activity.lichess-variant-960 leaders: - name: visualdennis title: NM flair: activity.lichess-blitz patron: true patronColor: 9 id: visualdennis - name: TeamChess960 id: teamchess960 - name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess - id: im-eric-rosen-fan-club name: IM Eric Rosen Fan Club description: Hey all! By popular request, I've created this fan club in which my friends, followers, and subscribers can engage in chess discussion. open: true leader: name: EricRosen title: IM flair: travel-places.ambulance patron: true patronColor: 10 id: ericrosen nbMembers: 26675 leaders: - name: EricRosen title: IM flair: travel-places.ambulance patron: true patronColor: 10 id: ericrosen - id: agadmators-team name: agadmator's Team description: Hello everyone! Lets play some chess games! open: true leader: name: agadmator patron: true patronColor: 10 id: agadmator nbMembers: 23686 leaders: - name: agadmator patron: true patronColor: 10 id: agadmator - id: livechess name: LiveChess description: '![](https://imgur.com/pCM2YmC.png)' open: true leader: name: Witaj_I_Am_Light flair: nature.high-voltage id: witaj_i_am_light nbMembers: 22024 flair: activity.sparkles leaders: - name: S7nR153 flair: travel-places.desert-island id: s7nr153 - name: RegistraciaProfila flair: objects.telephone id: registraciaprofila - name: Lyubomir-39 flair: travel-places.sunset id: lyubomir-39 - id: lichess-antichess name: Lichess Antichess description: "Join the team for regular tournaments and other community-driven events. Everyone is welcome to join!\r\n\r\n## Upcoming events\nDay|Date|Time, [UTC](https://savvytime.com/converter/utc)|Event\n---|---|---|---\nFriday|May 15|19:00|[Weekly Arena](https://lichess.org/tournament/V6u8TCNN)\nSaturday|May 16|16:00|[Team Battle](https://lichess.org/tournament/yQkkr4Xn)\nSunday|May 17|15:00|[Patron wings Arena](https://lichess.org/tournament/2fychJs4)\nSunday|May 17|16:00|[U2000 Arena](https://lichess.org/tournament/Ne8UdI2Z)\nThursday|May 21|16:00|[Shield Arena](https://lichess.org/tournament/j5fF833F)\nFriday|May 29|19:00|[Monthly Arena](https://lichess.org/tournament/21Ihagyj)\nSat+Sun|Jun 6–7||[Amsterdam OTB](https://lichess.org/team/iaf-antichess-world-championship-team)\n\nReigning champs: @Tetiksh1Agrawal (ACWC), @Lmaoooooooooooooooo (Shield), [Antichessmasters](https://lichess.org/team/antichessmasters) (Team Battle), @joshicat (U2000).\n## Learning Material\r\n**Studies**: [Basics](/study/4XBZbCFY) • [Tactics](/study/WLrT4U2E) • [Endgames](/study/VFsD8X5H) • [3v1 Endgames](/study/k5DATDVV) • [Openings](/study/vXxLrBTY)\r\n**Intro videos**: [How to play antichess: Part 1](https://youtu.be/5KLVSxAfQ9M), [Part 2](https://youtu.be/n2Mw6E8WabQ) • [Rules & brief history](https://youtu.be/fm7FLblKFv0)\r\n**Book**: [The Ultimate Guide to Antichess](http://perpetualcheck.com/antichess)\r\n**Puzzles**: [Various](/study/5GrkXfA0) • [Themed](/study/lJfYzKtd) • [Endgame](/study/YuktqKg2) • [Midgame](/study/jKyrZTxS) • [Chess Variants Training](https://chessvariants.training/Puzzle/Antichess)\r\n**Ranked puzzles**: [1](/study/yqP1uKPO) • [2](/study/ZJJrwtTo) • [3](/study/yTnMHbGY) • [4](/study/7LbMHGFk) • [5](/study/BV5fZcXK) • [6](/study/gdiGuDJs)\r\n\r\n---\r\n**Papers** (PDF): [1.e3 wins for White](http://magma.maths.usyd.edu.au/~watkins/LOSING_CHESS/LCsolved.pdf) • [3-man pawnless endings](http://www.jsbeasley.co.uk/vchess/losing3man.pdf) • [Survey: Endgames ](http://www.jsbeasley.co.uk/vchess/losingendlit.pdf)\r\n**Openings theory**: [Proof](https://magma.maths.usyd.edu.au/~watkins/LOSING_CHESS) • [Solutions](https://antichess.onrender.com/) • [Nilatac's opening book](https://catalin.francu.com/nilatac/book.php)\r\n**Video content**: [Firebatprime](https://www.youtube.com/channel/UCVWt6kOPS_HvKkADhYs8L_g) • [YourselfAntichess](https://www.youtube.com/channel/UCIfjM1orOwnkrQoYt1NVSCQ) • [Antichess Lore](https://www.youtube.com/channel/UCwO6d9Rtzt3LweUVhGJHAuw) • [TUGR](https://www.youtube.com/channel/UCdkPoOjHeiHyzX-KXhlZfUA) • [KidCh3ss](https://www.youtube.com/channel/UCeF5D5HDj5bKvfUzGZ1g9Hw)\r\n**Bots**: @anti-bot • @VariantsBot\r\n**Other**: [Guide](/@/firebatprime/blog/-/L7OCljZF) • [ACWC results](http://perpetualcheck.com/antichess/lichess.php) • [ACWC team](/team/antichess-wc) • [Academy](/team/antichess-academy) • [Openings](http://perpetualcheck.com/antichess/openings.php) • [Chess variants](http://www.jsbeasley.co.uk/cvariants.htm)\r\n\r\n## Other Lichess Variant Teams\r\n[Chess960](/team/lichess-chess960) • [King of the Hill](/team/lichess-king-of-the-hill) • [Three-check](/team/lichess-three-check) • [Atomic](/team/lichess-atomic) • [Horde](/team/lichess-horde) • [Racing Kings](/team/lichess-racing-kings) • [Crazyhouse](/team/lichess-crazyhouse)" open: true leader: name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess nbMembers: 21060 flair: activity.lichess-variant-antichess leaders: - name: tolius flair: nature.frog patron: true patronColor: 10 id: tolius - name: TheUnknownGuyReborn flair: smileys.face-with-spiral-eyes patron: true patronColor: 5 id: theunknownguyreborn - name: Lichess flair: activity.lichess patron: true patronColor: 10 id: lichess previousPage: null nextPage: 2 nbResults: 500000 nbPages: 33334 teams-teamsOfPlayer.json: value: - id: chesster-speaks-for-itself name: Chesster Speaks For Itself description: International Pillow Fight Day Breaks World Record open: false leader: name: Rudra id: rudra nbMembers: 17 flair: symbols.digit-nine leaders: - name: Rudra id: rudra - id: ignorance-is-blitz name: Ignorance is Blitz description: Smart Umbrella Tells You When It's Going to Rain open: false leader: name: Dae id: dae nbMembers: 18 leaders: - name: Dae id: dae - id: ive-seen-this-1b4 name: I've seen this 1.b4 description: Cat Café Introduces Yoga Classes with Feline Instructors open: true leader: name: Monica flair: people.man-supervillain-medium-dark-skin-tone patron: true patronColor: 1 id: monica nbMembers: 17 flair: objects.three-thirty leaders: - name: Monica flair: people.man-supervillain-medium-dark-skin-tone patron: true patronColor: 1 id: monica - id: lichess-swiss name: Lichess Swiss description: World's Largest Rubber Duck to Visit Coastal Cities open: true leader: name: Elizabeth id: elizabeth nbMembers: 64 flair: food-drink.cheese-wedge leaders: [] - id: on-topalov-the-world name: On Topalov The World description: Scientists Discover Laughing Gas Emitted by Goats – Hilarity Ensues open: true leader: name: Akeem id: akeem nbMembers: 17 flair: symbols.python-logo leaders: - name: Akeem id: akeem - id: qe2-kxe2 name: Qe2+ Kxe2 description: Scientists Develop Anti-Gravity Shoes for Effortless Walking open: true leader: name: Vera flair: nature.full-moon-face id: vera nbMembers: 18 leaders: - name: Vera flair: nature.full-moon-face id: vera - name: Benjamin id: benjamin - id: sacsacoops name: Sac-sac-oops description: Giant Inflatable Unicorn Parade Takes Over Downtown open: true leader: name: Suresh flair: people.pilot-dark-skin-tone id: suresh nbMembers: 17 leaders: - name: Suresh flair: people.pilot-dark-skin-tone id: suresh - name: Gabriela flair: objects.yen-banknote id: gabriela - id: stockfishing-for-compliments name: Stockfishing for compliments description: World's First Talking Parrot Runs for Mayor – Campaign Soars open: true leader: name: Gabriela flair: objects.yen-banknote id: gabriela nbMembers: 17 leaders: - name: Gabriela flair: objects.yen-banknote id: gabriela - id: this-team-name-has-been-purchased-by-chesscom name: '[This team name has been purchased by chess.com]' description: Town Celebrates Annual 'Ugly Sweater' Parade open: true leader: name: Fatima flair: people.man-facepalming-dark-skin-tone id: fatima nbMembers: 16 leaders: - name: Fatima flair: people.man-facepalming-dark-skin-tone id: fatima - id: thor-love-and-blunder name: Thor - Love and Blunder description: AI Robot Breakdances Its Way into the Guinness World Records open: false leader: name: Vera flair: nature.full-moon-face id: vera nbMembers: 17 flair: people.palm-up-hand-light-skin-tone leaders: - name: Vera flair: nature.full-moon-face id: vera - id: two-bishops-two-steeds-two-wellhidden-beads name: Two bishops, two steeds, two well-hidden beads description: Local Bakery Creates Giant Cupcake for Charity open: false leader: name: Patricia patron: true patronColor: 1 id: patricia nbMembers: 18 leaders: - name: Lola title: CM id: lola - name: Patricia patron: true patronColor: 1 id: patricia - id: will-withdraw-after-round-3 name: Will Withdraw After Round 3 description: Dancing Robots Entertain Crowds at City Square open: true leader: name: Hui patron: true patronColor: 1 id: hui nbMembers: 17 flair: travel-places.earth-blue leaders: - name: Li flair: activity.kite id: li - name: Ana title: WCM flair: smileys.downcast-face-with-sweat id: ana - name: Hui patron: true patronColor: 1 id: hui - id: withdrawing-like-a-champion name: (With)Drawing like a champion description: Local Library Introduces Silent Disco Book Club open: true leader: name: Ekaterina title: NM flair: people.person-in-steamy-room id: ekaterina nbMembers: 19 flair: people.man-facepalming-medium-dark-skin-tone leaders: - name: Ekaterina title: NM flair: people.person-in-steamy-room id: ekaterina - name: Xioyan id: xioyan teams-searchTeams.json: value: currentPage: 1 maxPerPage: 15 currentPageResults: - id: coders name: Coders description: If you want to join the team, prove (briefly) that you can code in the request message! open: false leader: name: thibault flair: nature.seedling patron: true patronColor: 10 id: thibault nbMembers: 481 flair: objects.hammer-and-wrench leaders: - name: thibault flair: nature.seedling patron: true patronColor: 10 id: thibault - id: f5-coders name: f5 coders description: "Equipo de coders de factoria f5.\r\nRompemos el código y los tableros." open: false leader: name: RogerAiguas id: rogeraiguas nbMembers: 16 leaders: - name: RogerAiguas id: rogeraiguas - name: ABPNET id: abpnet - id: rising-coders name: Rising coders description: We're the rising coders we make bugs and fix them yeah!! open: false leader: name: GovinD_2017 flair: people.man-scientist id: govind_2017 nbMembers: 13 flair: objects.laptop leaders: - name: GovinD_2017 flair: people.man-scientist id: govind_2017 - name: Drymajorgem flair: activity.jack-o-lantern id: drymajorgem - name: DevIsTheBest flair: smileys.astonished-face-blob id: devisthebest - name: GatoChess89 flair: smileys.grinning-cat-with-smiling-eyes id: gatochess89 - name: vilmaratheesh12 flair: travel-places.airplane id: vilmaratheesh12 - id: bot-developing-team name: Bot Developing Team description: "Here we develop bots For our bot developing team.\r\nJoin this team if you have question to ask in the forum. Leaders will respond in at least 7 days.\r\nAnd to be apply as a bot developer, you must be a coder, a developer can be asked by private message with @MrAllVariant. And you might need the [FAQ](https://lichess.org/forum/team-bot-developing-team/faq) , Wanted to be a [developer](https://lichess.org/@/Zkwong1877)? Contact [here](https://lichess.org/inbox/Zkwong1877)!\r\n![text](https://media.giphy.com/media/e4tOcMeLeG2rlCeSuW/giphy.gif)" open: true leader: name: Zkwong1877 flair: nature.fire id: zkwong1877 nbMembers: 6 leaders: [] - id: coders-community name: Coders Community description: "Seja bem-vindo ao time da Coders Community: https://discord.gg/qydeyntwye\r\n\r\n**Para entrar, informe seu username do Discord!**" open: false leader: name: intermezo flair: smileys.disguised-face patron: true patronColor: 1 id: intermezo nbMembers: 5 leaders: - name: intermezo flair: smileys.disguised-face patron: true patronColor: 1 id: intermezo - id: afternoon-coders name: Afternoon Coders description: Hello there we are the afternoon coders open: false leader: name: GabMons123456789 id: gabmons123456789 nbMembers: 4 leaders: - name: GabMons123456789 id: gabmons123456789 - id: coders-gambit name: coder's gambit description: A chess team started by RRT members of Infinera. All friends and family welcome. We plan to have weekly arena for playing. open: true leader: name: e8pawn id: e8pawn nbMembers: 4 leaders: - name: e8pawn id: e8pawn - id: codere name: Codere description: "Cordere equipo \r\nTorneo de hoy Sabado 16 10 hs https://lichess.org/tournament/m8kOBnG8 ." open: false leader: name: eugeealegre flair: nature.cherry-blossom id: eugeealegre nbMembers: 4 leaders: - name: eugeealegre flair: nature.cherry-blossom id: eugeealegre - name: elplot id: elplot - id: statmattarmy name: statmattarmy description: A place where some of the greatest coders go open: true leader: name: statmatt id: statmatt nbMembers: 4 leaders: - name: statmatt id: statmatt - id: coders-and-co name: Coders and co. description: "## Coders and co., **the** team for coding!\r\n\r\nCurrently active!\r\nThis is a team, fully focused on coding, sharing ideas and projects! If you know anything about coding, you're allowed to join, though:\r\n\r\n**when joining, DO give a little proof you actually know something abt code!**" open: false leader: name: GCVM flair: objects.books id: gcvm nbMembers: 3 flair: smileys.alien-monster leaders: - name: GCVM flair: objects.books id: gcvm - id: hang-coder name: Hang coder description: skibidi toilet co cot truyen dinh cao vl open: false leader: name: Duc1234xxx1 id: duc1234xxx1 nbMembers: 2 leaders: - name: Duc1234xxx1 id: duc1234xxx1 - id: cool-coders name: Cool Coders description: "Hi all! This team is for all computer programmers and coders.\r\nWe can code [here](https://studio.code.org)" open: true leader: name: Jay1210 flair: activity.chess id: jay1210 nbMembers: 2 leaders: - name: vishnu_rainbow id: vishnu_rainbow - id: coder-knight-team name: Coder Knight Team description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi cursus diam in nibh molestie, id feugiat lorem cursus. Etiam finibus tellus purus, nec volutpat augue aliquet sed. Phasellus ornare tincidunt velit, id feugiat augue aliquam vitae. Integer blandit aliquam sem, a posuere purus posuere a. Nam congue dolor magna, non dictum elit eleifend ac. Nam mattis nisl vel molestie condimentum. Duis bibendum ipsum ut mauris vestibulum viverra. Praesent lobortis neque at elementum lacinia. open: true leader: name: CoderKnight64 id: coderknight64 nbMembers: 2 leaders: - name: CoderKnight64 id: coderknight64 - id: coders-club name: 💻Coders Club💻 description: "Team Creater - ⏩⏩ @SiyahGiyenGencYT 🔥🔥\r\n\r\n------------✮✮------------\r\n💥FOR ANY PROBLEMS ..\r\nFORUM .. https://lichess.org/forum/team-coders-club\r\n✮✮✮✮✮✮✮✮✮✮✮✮\r\nLICHESS ID .. @SiyahGiyenGencYT\r\n------------✮✮------------\r\n💥TOURNAMENTS\r\nLINK .. https://lichess.org/team/coders-club/tournaments\r\n------------✮✮------------\r\n💥OUR TEAM SCORE\r\n\r\n------------✮✮----------\r\n💥 Coder WARRIORS💥\r\n\r\n-----------✮✮----------\r\n🔰: BOTC Select WorldCup 2020\r\n- ↪ Free Entry\r\n- ✔ Standard Initial Position\r\n- ✔ 1️⃣ Min\r\n- ✔ 🔟 Min\r\n- ✔ 3️⃣ Minute\r\n- ✔ Tournament's Time : Undefined\r\n- ❌ ♨️ Allowed Berserk\r\n- ✔ Arena Streak\r\n- ✔ Team Battle\r\n- ✔ 🎁 Prized\r\n------------✮✮----------\r\n🌈🌈OUR SPONSERS: @ATCThyKe\r\nPRIZES ARE..\r\n🥇 3 PDFs + 10$ \r\n🥈 2 PDFs + 5$\r\n🥉 1 PDFs \r\n🎁 LUCKY PRIZES 6,14 ,20,28\r\n🎁 PRIZES BY @ATChyKe 🎁\r\nTHANK YOU..🎇✨🎁\r\n------------✮✮------------\r\n🙏Thank you 🙏.\r\nKonum: 🌎WORLD 🌎" open: false leader: name: SiyahGiyenGencYT id: siyahgiyengencyt nbMembers: 1 leaders: - name: SiyahGiyenGencYT id: siyahgiyengencyt - id: the-coders-team name: The coders team description: Like scratch or python or mac and chess then join the coders team we do king of the hill chess930 and many more with a personality for fun coding and chess join the coders team! meet you on the battlefield! open: false leader: name: the010100110master id: the010100110master nbMembers: 1 leaders: - name: the010100110master id: the010100110master previousPage: null nextPage: 2 nbResults: 18 nbPages: 2 arenas-getTeamArenaTournaments.json: value: id: LojvlQOo createdBy: natebrady23 system: arena minutes: 60 clock: limit: 300 increment: 3 rated: false fullName: Return of the BBB No. 140 Arena nbPlayers: 12 variant: key: standard short: Std name: Standard startsAt: 1762914600000 finishesAt: 1762918200000 status: 30 perf: key: blitz name: Blitz position: 1 icon: ) teamMember: bradys-blunder-buddies winner: name: Mennonite flair: objects.guitar id: mennonite users-getLiveStreamers.json: value: - name: lefonghua title: FM id: lefonghua stream: service: twitch status: Analyzing Viewers Games! | !analyze !rapid !plus | lichess.org lang: en streamer: name: Lefong Hua headline: FM Lefong Hua. Professional chess coach from Montreal, Canada. twitch: https://www.twitch.tv/lefonghua image: https://image.lichess1.org/display?fmt=webp&h=350&op=thumbnail&path=lefonghua:streamer:lefonghua:Vr5ViPnv.jpg&w=350&sig=4dec7bb87631c83eb93b427fc24e4726582e6af0 - name: sabinafoisor title: WGM id: sabinafoisor stream: service: twitch status: Commentary on US Chess this weekend | lichess.org lang: en streamer: name: Sabina Foisor headline: WGM Sabina Foisor description: "Hello everyone,\r\n\r\nMy name is Sabina Foisor and I am a WGM representing the United States. I was born in Romania to a chess family and learned to play chess at 4 years old. At around 5 and a half y.o I have competed in my first open tournament. Despite not having won any games, I have made up my mind to make a career out of chess, though there were many moments when I struggled. In 1997, I won the European Championship for Girls under 8 years old. In my teens I have won multiple national girls youth championships. In the European scene I triumphed winning medals in Classical, Blitz, Rapid and Solving Problems competitions. At the age of 16 I became a WIM and at 18 I received the title of WGM. I consider the year 2007 to have been the peak of my chess career sharing 5th place at the European Individual Women’s Chess Championship from which I qualified for the Women’s World Chess Championship. That same year I was ranked in the top 10 Junior Girls in the World. In 2008 I received a chess scholarship at UMBC and decided to put chess on pause to focus on my studies. I graduated in 2012 with an BA in Modern Languages and Linguistics and in 2014 I received my Masters Degree in Intercultural Communication, specializing in intercultural training. In the begging of 2009 I started representing the United States and proudly participated in 5 Chess Olympiads and 4 Women’s World Team Championships. My biggest achievement was winning US Women’s Chess Championship in 2017.\r\n\r\nI started my streaming in March 2020. I hope you enjoy my channel and stream! I am taking challenges from viewers and subscribers and happy to take on different chess variants. \r\n\r\nTwitter: https://twitter.com/SabinaFoisor\r\nFacebook: https://www.facebook.com/SabinaFoisor/\r\nInstagram: https://www.instagram.com/sabinafoisor/\r\nTwitch: https://www.twitch.tv/sabinafoisor" twitch: https://www.twitch.tv/sabinafoisor youtube: https://www.youtube.com/channel/UC2hjYBYRdE2ynHqfQpo_gow/live image: https://image.lichess1.org/display?fmt=webp&h=350&op=thumbnail&path=sabinafoisor:streamer:sabinafoisor:JpKJW8ke.jpg&w=350&sig=fcefac30465d2a3db65e123dd45393bd2dc03494 - name: sloppydogg title: IM id: sloppydogg stream: service: twitch status: 'Lichess Simul Record Attempt #10 lichess.org' lang: en streamer: name: John Ludwig headline: Watch and learn chess from an International Master! :) description: 'Thank you so much for checking my stream out! It will be a great mix of entertaining play, teaching moments, and all other things great with chess! The more you engage, the better! I will play whatever openings you recommend, or even specific ideas you would like to see! ' twitch: https://www.twitch.tv/jludwig image: https://image.lichess1.org/display?fmt=webp&h=350&op=thumbnail&path=psrd6rY4J8tr.webp&w=350&sig=7959c8fdc44570537eefe98bc450d81022fe13f3 - name: chessoptics patron: true patronColor: 1 id: chessoptics stream: service: twitch status: '|Chess is the lens life is the view| Variety Music |Lichess.org {Training with the chessbook app}' lang: en streamer: name: chessoptics headline: This is a place to enjoy chess and learn. description: If you Love Chess then come watch me play and enjoy. leave some comments and lets talk about chess. twitch: https://www.twitch.tv/chessoptics image: https://image.lichess1.org/display?fmt=webp&h=350&op=thumbnail&path=vPkudbELA3pE.webp&w=350&sig=4240861f841d02a38742f5a5f9f2d40ce89315ec - name: account4BD flair: people.troll patron: true patronColor: 4 id: account4bd stream: service: twitch status: Fred Again... X Chess Again Best NightTime recipe !! | Dailys Fastest Echecs Arènes's Fully Zerked Only on @Lichess.org lang: en streamer: name: account4BD headline: hey chess addicts twitch: https://www.twitch.tv/chess_punk image: https://image.lichess1.org/display?fmt=webp&h=350&op=thumbnail&path=streamer:account4bd:fUQxz0qi.webp&w=350&sig=a3c17df24c8be4a4016e0029b730680e5db4fb5c users-getCrosstable.json: value: users: drnykterstein: 753.5 rebeccaharris: 459.5 nbGames: 1213 users-autocompleteUsernames-list.json: value: - bobby users-autocompleteUsernames-object.json: value: result: - name: Bobby id: bobby users-getNotesForUser.json: value: - from: name: Bobby id: bobby to: name: Mary flair: people.open-hands-medium-light-skin-tone id: mary text: this is a private note date: 1778812629766 users-addNoteForUser.json: value: ok: true relations-getMyFollowing.json: value: id: angel username: Angel perfs: bullet: games: 69 rating: 2223 rd: 47 prog: -40 blitz: games: 571 rating: 2204 rd: 76 prog: 51 rapid: games: 279 rating: 2245 rd: 46 prog: -3 classical: games: 36 rating: 2366 rd: 49 prog: -43 correspondence: games: 329 rating: 2248 rd: 114 prog: -18 prov: true chess960: games: 65 rating: 2199 rd: 45 prog: 2 kingOfTheHill: games: 2917 rating: 2306 rd: 64 prog: -12 threeCheck: games: 136 rating: 2311 rd: 45 prog: -3 antichess: games: 190 rating: 2255 rd: 79 prog: 4 atomic: games: 544 rating: 2424 rd: 100 prog: 42 horde: games: 50 rating: 2345 rd: 55 prog: 52 crazyhouse: games: 1717 rating: 2286 rd: 111 prog: 5 prov: true puzzle: games: 485 rating: 2338 rd: 58 prog: -6 title: CM flair: people.person-in-motorized-wheelchair-facing-right-medium-light-skin-tone patron: true patronColor: 1 createdAt: 1774542084429 seenAt: 1777308613557 playTime: total: 15563 tv: 0 url: https://lichess.org/@/Angel relations-followPlayer.json: value: ok: true relations-unfollowPlayer.json: value: ok: true relations-blockPlayer.json: value: ok: true relations-unblockPlayer.json: value: ok: true stream-gameStart.json: value: type: gameStart game: fullId: xAVd6eJykuzM gameId: xAVd6eJy fen: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 color: white lastMove: '' source: friend status: id: 20 name: started variant: key: standard name: Standard speed: blitz perf: blitz rated: true hasMoved: false opponent: id: aaron username: Aaron rating: 797 isMyTurn: true secondsLeft: 300 rating: 692 compat: bot: false board: true id: xAVd6eJy stream-gameStart-ai.json: value: type: gameStart game: fullId: Vyp0MJIgjhQr gameId: Vyp0MJIg fen: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 color: black lastMove: '' source: ai status: id: 20 name: started variant: key: standard name: Standard speed: correspondence perf: correspondence rated: false hasMoved: false opponent: id: null username: Stockfish level 1 ai: 1 isMyTurn: false rating: 2245 compat: bot: false board: true id: Vyp0MJIg stream-gameFinish.json: value: type: gameFinish game: fullId: xAVd6eJykuzM gameId: xAVd6eJy fen: rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq - 0 2 color: white lastMove: e7e5 source: friend status: id: 31 name: resign variant: key: standard name: Standard speed: blitz perf: blitz rated: true hasMoved: true opponent: id: aaron username: Aaron rating: 797 ratingDiff: 6 isMyTurn: false secondsLeft: 300 winner: black rating: 692 ratingDiff: -9 compat: bot: false board: true id: xAVd6eJy stream-gameFinish-ai.json: value: type: gameFinish game: fullId: Vyp0MJIgjhQr gameId: Vyp0MJIg fen: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 color: black lastMove: '' source: ai status: id: 25 name: aborted variant: key: standard name: Standard speed: correspondence perf: correspondence rated: false hasMoved: false opponent: id: null username: Stockfish level 1 ai: 1 isMyTurn: false rating: 2245 compat: bot: false board: true id: Vyp0MJIg stream-challenge.json: value: type: challenge challenge: id: sxqxgMtR url: https://lichess.org/sxqxgMtR status: created challenger: name: Adriana flair: activity.1st-place-medal id: adriana rating: 599 destUser: name: Gabriela flair: objects.yen-banknote id: gabriela rating: 1569 online: true variant: key: standard name: Standard short: Std rated: false speed: correspondence timeControl: type: unlimited color: random finalColor: white perf: icon:  name: Correspondence compat: bot: false board: true stream-challengeDeclined.json: value: type: challengeDeclined challenge: id: sxqxgMtR url: https://lichess.org/sxqxgMtR status: declined challenger: name: Adriana flair: activity.1st-place-medal id: adriana rating: 599 destUser: name: Gabriela flair: objects.yen-banknote id: gabriela rating: 1569 online: true variant: key: standard name: Standard short: Std rated: false speed: correspondence timeControl: type: unlimited color: random finalColor: white perf: icon:  name: Correspondence declineReason: I'm not accepting challenges at the moment. declineReasonKey: generic stream-challengeCanceled.json: value: type: challengeCanceled challenge: id: Ocf0maqB url: https://lichess.org/Ocf0maqB status: canceled challenger: name: Elena title: WNM flair: people.man-vampire patron: true patronColor: 1 id: elena rating: 2240 destUser: name: Diego id: diego rating: 2056 provisional: true online: true variant: key: standard name: Standard short: Std rated: false speed: correspondence timeControl: type: unlimited color: random finalColor: white perf: icon:  name: Correspondence bot-getOnlineBots.json: value: id: variantsbot username: VariantsBot perfs: bullet: games: 2 rating: 2212 rd: 500 prog: 0 prov: true blitz: games: 0 rating: 1500 rd: 500 prog: 0 prov: true rapid: games: 0 rating: 1500 rd: 500 prog: 0 prov: true classical: games: 0 rating: 1500 rd: 500 prog: 0 prov: true correspondence: games: 0 rating: 1500 rd: 500 prog: 0 prov: true chess960: games: 65 rating: 2180 rd: 229 prog: -11 prov: true kingOfTheHill: games: 579 rating: 2579 rd: 176 prog: -1 prov: true threeCheck: games: 2110 rating: 2759 rd: 171 prog: -5 prov: true antichess: games: 6982 rating: 3021 rd: 169 prog: 0 prov: true atomic: games: 3666 rating: 2714 rd: 167 prog: -19 prov: true horde: games: 1019 rating: 3019 rd: 170 prog: 2 prov: true racingKings: games: 3173 rating: 2703 rd: 164 prog: -8 prov: true crazyhouse: games: 1058 rating: 2754 rd: 177 prog: 1 prov: true title: BOT createdAt: 1597330896288 profile: bio: 'Fairy-Stockfish for variants, on an AMD Threadripper. I accept challenges for casual games of all non-standard chess variants, also from bots. Accepted time controls: minimum 1 + 0, maximum 15 + 10. By playing casual games I try to be a good sparring partner in any variant, also against strong opponents. Tool to create opening books for any Lichess chess variant: github.com/lichapibot/cbuild.' seenAt: 1778812219623 playTime: total: 18093325 tv: 3862 human: 20182743 challenges-listYourChallenges.json: value: in: - id: 0y3rsNn7 url: https://lichess.org/0y3rsNn7 status: created challenger: name: Bobby id: bobby rating: 1804 destUser: name: Mary flair: people.open-hands-medium-light-skin-tone id: mary rating: 1083 variant: key: standard name: Standard short: Std rated: false speed: correspondence timeControl: type: unlimited color: random finalColor: black perf: icon:  name: Correspondence direction: in out: [] challenges-createChallenge.json: value: id: 0y3rsNn7 url: https://lichess.org/0y3rsNn7 status: created challenger: name: Bobby id: bobby rating: 1804 destUser: name: Mary flair: people.open-hands-medium-light-skin-tone id: mary rating: 1083 variant: key: standard name: Standard short: Std rated: false speed: correspondence timeControl: type: unlimited color: random finalColor: black perf: icon:  name: Correspondence direction: out challenges-showOneChallenge.json: value: id: 0y3rsNn7 url: https://lichess.org/0y3rsNn7 status: created challenger: name: Bobby id: bobby rating: 1804 destUser: name: Mary flair: people.open-hands-medium-light-skin-tone id: mary rating: 1083 variant: key: standard name: Standard short: Std rated: false speed: correspondence timeControl: type: unlimited color: random finalColor: black perf: icon:  name: Correspondence direction: in challenges-acceptChallenge.json: value: ok: true challenges-declineChallenge.json: value: ok: true challenges-cancelChallenge.json: value: ok: true challenges-challengeAi.json: value: id: bJmjyqRp variant: key: standard name: Standard short: Std speed: correspondence perf: correspondence rated: false source: ai createdAt: 1778812610240 fen: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 turns: 0 status: id: 20 name: started player: white fullId: bJmjyqRpVbRl challenges-openEndedChallenge.json: value: id: aiq0evtm url: https://lichess.org/aiq0evtm status: created challenger: null destUser: null variant: key: standard name: Standard short: Std rated: false speed: correspondence timeControl: type: unlimited color: random finalColor: white perf: icon:  name: Correspondence open: {} urlWhite: https://lichess.org/aiq0evtm?color=white urlBlack: https://lichess.org/aiq0evtm?color=black challenges-startClocks.json: value: ok: true challenges-addTimeToOpponent.json: value: ok: true challenges-adminChallengeTokens.json: value: bobby: lip_bobby_secret boris: lip_boris_secret mary: lip_mary_secret externalEngine-listExternalEngines.json: value: - id: eei_NU53ONEmZqij name: Stockfish 17 userId: bobby maxThreads: 8 maxHash: 2048 variants: - chess providerData: null clientSecret: ees_K6cAs9Fo2kblqep4 externalEngine-createExternalEngine.json: value: id: eei_NU53ONEmZqij name: Stockfish 17 userId: bobby maxThreads: 8 maxHash: 2048 variants: - chess providerData: null clientSecret: ees_K6cAs9Fo2kblqep4 externalEngine-getExternalEngine.json: value: id: eei_NU53ONEmZqij name: Stockfish 17 userId: bobby maxThreads: 8 maxHash: 2048 variants: - chess providerData: null clientSecret: ees_K6cAs9Fo2kblqep4 externalEngine-updateExternalEngine.json: value: id: eei_NU53ONEmZqij name: Stockfish 17.1 userId: bobby maxThreads: 8 maxHash: 2048 variants: - chess providerData: null clientSecret: ees_K6cAs9Fo2kblqep4 externalEngine-deleteExternalEngine.json: value: ok: true externalEngine-analyseWithExternalEngine.json: value: time: 2 depth: 1 nodes: 20 pvs: - moves: [] cp: 13 depth: 1 externalEngine-acquireAnalysisRequest.json: value: id: ygxzCoNU0wUXodLm work: sessionId: '1' threads: 1 hash: 2048 depth: 1 multiPv: 1 variant: chess initialFen: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 moves: - e2e4 - g8f6 engine: id: eei_dw2szwYp76C9 name: Stockfish 17.1 clientSecret: ees_EjQe0iSY6TGhsvCW userId: bobby maxThreads: 8 maxHash: 2048 variants: - chess providerData: null oauth-testMultipleOauthTokens-request.txt: value: | lip_jose,lip_badToken oauth-testMultipleOauthTokens.json: value: lip_jose: userId: jose scopes: preference:read,preference:write,email:read,challenge:read,challenge:write,challenge:bulk,study:read,study:write,tournament:write,racer:write,puzzle:read,puzzle:write,team:read,team:write,team:lead,follow:read,follow:write,msg:write,board:play,bot:play,engine:read,engine:write,web:mod expires: null lip_badToken: null 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' 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-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 tablebase-lookupStandard.json: value: checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 1 precise_dtz: 1 dtm: 17 dtw: null dtc: null category: win moves: - uci: h7h8q san: h8=Q+ zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: -2 precise_dtz: -2 dtm: -16 dtw: null dtc: null category: loss - uci: h7h8r san: h8=R+ zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: -2 precise_dtz: -2 dtm: -26 dtw: null dtc: null category: loss - uci: g7g8 san: Kg8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 0 precise_dtz: 0 dtm: 0 dtw: null dtc: null category: draw - uci: g7f6 san: Kf6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 1 precise_dtz: 1 dtm: 19 dtw: null dtc: null category: win - uci: g7g6 san: Kg6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 1 precise_dtz: 1 dtm: 19 dtw: null dtc: null category: win - uci: g7h6 san: Kh6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 1 precise_dtz: 1 dtm: 19 dtw: null dtc: null category: win - uci: g7h8 san: Kh8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 1 precise_dtz: 1 dtm: 19 dtw: null dtc: null category: win - uci: h7h8n san: h8=N zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 1 precise_dtz: 1 dtm: 19 dtw: null dtc: null category: win - uci: h7h8b san: h8=B zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: 1 precise_dtz: 1 dtm: 15 dtw: null dtc: null category: win tablebase-lookupAtomic.json: value: checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown moves: - uci: a6b5 san: Bxb5 zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: b4c3 san: Bxc3 zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4c3 san: Qxc3 zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4d3 san: Qxd3+ zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4e3 san: Qxe3 zeroing: true conversion: true checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e6e5 san: e5 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: f7f6 san: f6 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: g7g6 san: g6 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: f7f5 san: f5 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: g7g5 san: g5 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: h5h4 san: h4 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4d6 san: Qd6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: b4c5 san: Bc5 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: b4d6 san: Bd6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: b4e7 san: Be7 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: b4f8 san: Bf8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: g8h6 san: Nh6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: a6b7 san: Bb7 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: a6c8 san: Bc8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: a8b8 san: Rb8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: a8c8 san: Rc8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: a8d8 san: Rd8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: h8h6 san: Rh6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: h8h7 san: Rh7 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: g8e7 san: Ne7 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: b4a3 san: Ba3 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: g8f6 san: Nf6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4c4 san: Qc4 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4e4 san: Qe4 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4f4 san: Qf4 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4g4 san: Qg4 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4h4 san: Qh4 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4c5 san: Qc5 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4d5 san: Qd5 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4e5 san: Qe5 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: b4a5 san: Ba5 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: d4f6 san: Qf6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e8e7 san: Ke7 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e8d8 san: Kd8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e8f8 san: Kf8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e8c8 san: O-O-O zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown tablebase-lookupAntichess.json: value: checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown moves: - uci: f7f6 san: f6 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: h7h6 san: h6 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: f7f5 san: f5 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: h7h5 san: h5 zeroing: true conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: g8f6 san: Nf6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: g8h6 san: Nh6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e7d6 san: Kd6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e7e6 san: Ke6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e7f6 san: Kf6 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e7d7 san: Kd7 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e7d8 san: Kd8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e7e8 san: Ke8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown - uci: e7f8 san: Kf8 zeroing: false conversion: false checkmate: false stalemate: false variant_win: false variant_loss: false insufficient_material: false dtz: null precise_dtz: null dtm: null dtw: null dtc: null category: unknown parameters: AcceptPgnOrJson: in: header name: Accept description: | Specify the desired response format. Use `application/x-chess-pgn` to get the games in PGN format. Use `application/json` to get the games in JSON format. schema: type: string enum: - application/x-chess-pgn - application/json default: application/x-chess-pgn AcceptPgnOrNdjson: in: header name: Accept description: | Specify the desired response format. Use `application/x-chess-pgn` to get the games in PGN format. Use `application/x-ndjson` to get the games in ndjson format. [Read about ndjson here](#description/streaming-with-nd-json) and how you can parse it in Javascript. schema: type: string enum: - application/x-chess-pgn - application/x-ndjson default: application/x-chess-pgn PatchQuery: in: query name: patch description: Only update the provided fields, leaving others unchanged required: false schema: type: boolean example: true