Lichess Bot API

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)

Operations 13

GET /api/stream/event Stream incoming events #
GET /api/bot/online Get online bots #
POST /api/bot/account/upgrade Upgrade to Bot account #
GET /api/bot/game/stream/{gameId} Stream Bot game state #
POST /api/bot/game/{gameId}/move/{move} Make a Bot move #
POST /api/bot/game/{gameId}/chat Write in the chat #
GET /api/bot/game/{gameId}/chat Fetch the game chat #
POST /api/bot/game/{gameId}/abort Abort a game #
POST /api/bot/game/{gameId}/resign Resign a game #
POST /api/bot/game/{gameId}/draw/{accept} Handle draw offers #
POST /api/bot/game/{gameId}/takeback/{accept} Handle takeback offers #
POST /api/bot/game/{gameId}/claim-victory Claim victory of a game #
POST /api/bot/game/{gameId}/claim-draw Claim draw of a game #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lichess-bot-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lichess-bot-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.144
  title: Lichess.org API reference Bot API
  contact:
    name: Lichess.org API
    url: https://lichess.org/api
    email: contact@lichess.org
  x-logo:
    url: https://lichess1.org/assets/logo/lichess-pad12.svg
  license:
    name: AGPL-3.0-or-later
    url: https://www.gnu.org/licenses/agpl-3.0.txt
  description: '# Introduction

    Welcome to the reference for the Lichess API!'
servers:
- url: https://lichess.org
- url: https://lichess.dev
- url: http://localhost:{port}
  variables:
    port:
      default: '8080'
- url: http://l.org
tags:


# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lichess/refs/heads/main/openapi/lichess-bot-api-openapi.yml