Home
Providers
Lichess
Lichess
Lichess is a free, ad-free, open-source online chess server operated by a French nonprofit and powered entirely by volunteers and donations. It serves millions of games per day with live play, tournaments, puzzles, studies, broadcasts, analysis, and a public API. The server (lila), engine library (scalachess), mobile app, board UI (chessground), and distributed Stockfish analysis network (fishnet) are all open source under AGPL-3.0, MIT, and GPL-3.0 licenses. The Lichess API provides 185 documented operations across 23 functional areas including Account, Users, Games, Puzzles, Teams, Board, Bot, Challenges, Arena and Swiss Tournaments, Simuls, Studies, Broadcasts, Messaging, OAuth, FIDE, Opening Explorer, Tablebase, External Engine, and Cloud Analysis, with comprehensive ND-JSON streaming support.
Lichess publishes 23 APIs on the APIs.io network, including Account API, Analysis API, Board API, and 20 more. Tagged areas include Chess, Games, Open Source, Nonprofit, and Tournaments.
The Lichess catalog on APIs.io includes 1 event-driven AsyncAPI specification, 1 JSON-LD context, and 3 Spectral governance rulesets.
Lichess’ developer surface includes authentication, developer portal, documentation, sandbox, tooling, code examples, engineering blog, and 42 more developer resources.
23 APIs
26 Features
Chess Games Open Source Nonprofit Tournaments Puzzles Bots Streaming ND-JSON OAuth
On this page
Kin Score
APIs 23
Postman 23
Open Collections 1
Pricing Plans 1
Rate Limits 1
Features 26
Event Specs 1
Vocabularies 1
Spectral Rules 3
JSON Schema 2
Security Posture 3
Scopes 1
Agentic Access 1
Resources 49
apis.yml
53 Operational Transparency
Composite quality — 60.9/100 · strong
Contract Quality
21.2 / 25
Developer Ergonomics
11.3 / 20
Commercial Clarity
8.4 / 20
Operational Transparency
6.8 / 13
Agent readiness — 50/100 · agent ready
Machine-Readable Contract
18 / 18
Agentic Access Contract
10 / 10
MCP Server
0 / 12
Machine-Readable Auth
10 / 10
Idempotency
0 / 9
Stable Error Semantics
8 / 8
Request/Response Examples
7 / 7
Rate-Limit Signaling
7 / 7
Typed Event Surface
6 / 6
Agent Skills
0 / 5
Well-Known Catalog
0 / 4
Consent & Bot Identity
0 / 3
A2A Agent Card
0 / 8
Dry-Run / Simulate Mode
0 / 4
Individual APIs this provider publishes, each with its own machine-readable definition.
Scroll for all 23
Ready-to-run Postman collections for exercising this provider's APIs.
Scroll for all 23
Open, tool-agnostic API collections (OpenAPI-derived and Bruno).
Published pricing tiers and plan structures.
Documented rate limits and quota policies.
Notable capabilities this provider offers.
Free, ad-free, open-source online chess server operated by a French nonprofit, funded by donations
Full OpenAPI 3.1 specification with 185 operations across 23 tags published at github.com/lichess-org/api
Account, users, relations, and messaging endpoints for managing players and social graph
Games REST and ND-JSON streaming endpoints for current and historical games, including PGN export
TV channels and current best games for live broadcast and embedding
Daily puzzle, puzzle by ID, puzzle activity, and puzzle dashboard endpoints
Teams API for creating, joining, listing, and managing chess teams
Board API for playing real-time games with physical boards and third-party clients using regular accounts
Bot API for programmatic play by accounts upgraded to bot status, with streaming game state
Challenges API for issuing, accepting, declining, and listing challenges including AI and open challenges
Bulk pairings for programmatically creating many games at once
Arena and Swiss tournament APIs including create, update, terminate, join, withdraw, and result export
Simuls endpoint for current and upcoming simultaneous exhibitions
Studies API for exporting and importing study chapters in PGN
Broadcasts API for creating tournaments, rounds, and pushing PGN updates for live event coverage
FIDE endpoints exposing FIDE player and federation data
Opening Explorer with Masters database, Lichess database, and player database lookups
Tablebase endpoint for 7-piece Syzygy endgame results
External Engine API enabling user-hosted engines to power analysis on lichess.org/analysis
Cloud evaluation lookup for previously evaluated positions
OAuth 2.0 Authorization Code Flow with PKCE plus personal access tokens, long-lived (one year typical)
Newline-delimited JSON (ND-JSON) streaming for events, games, and TV feeds
Distributed Stockfish analysis network (fishnet) and open client-side Stockfish WASM builds
Public dataset exports of all rated games, puzzles, and computer evaluations at database.lichess.org
Official community SDKs in Python (berserk), Java (chariot), JavaScript/TypeScript (equine), .NET, and more
AGPL-3.0 licensed server (lila), with MIT scalachess engine library and GPL-3.0 mobile and tooling code
Scroll for all 26
AsyncAPI definitions for this provider's event-driven and streaming APIs.
JSON-LD contexts and semantic vocabularies used across these APIs.
Spectral governance rulesets for linting and validating these APIs.
Standalone JSON Schema definitions for this provider's data models.
Authentication, domain security, vulnerability disclosure, and trust-center signals.
OAuth scopes governing access to this provider's APIs.
Recommended x-agentic-access execution contracts for AI agents.
Get Started 3
Portal, sign-up, and the first successful call
Documentation 2
Reference material describing how the API behaves
Agent Surfaces 1
MCP servers, agent skills, and machine-readable catalogs
Build 23
SDKs, sample code, and the tooling you integrate with
Scroll for all 23
Access & Security 7
Authentication, authorization, and security posture
Scroll for all 7
Operate 5
Status, limits, changes, and where to get help
Commercial 5
Pricing, plans, and the legal terms of use
Company 1
The organization behind the API
Other 2
Properties that don't map to a standard resource type
Source (apis.yml)
aid: lichess
url: https://raw.githubusercontent.com/api-evangelist/lichess/refs/heads/main/apis.yml
apis:
- aid: lichess:lichess-account-api
name: Lichess Account API
description: 'Read and write account information and preferences.
<https://lichess.org/account/preferences/game-display>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Account
properties:
- type: OpenAPI
url: openapi/lichess-account-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-analysis-api
name: Lichess Analysis API
description: 'Access Lichess cloud evaluations database.
<https://lichess.org/analysis>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Analysis
properties:
- type: OpenAPI
url: openapi/lichess-analysis-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-board-api
name: Lichess Board API
description: "Play on Lichess with physical boards and third-party clients.\nWorks with normal Lichess accounts. Engine\
\ play or assistance is [forbidden](https://lichess.org/page/fair-play).\n\n### Features\n- [Stream incoming chess moves](#tag/board/GET/api/board/game/stream/{gameId})\n\
- [Play chess moves](#tag/board/POST/api/board/game/{gameId}/move/{move})\n- [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\n- [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\n- [Abort](#tag/board/POST/api/board/game/{gameId}/abort)\
\ and [resign](#tag/board/POST/api/board/game/{gameId}/resign) games\n- Compatible with normal Lichess accounts\n\n###\
\ Restrictions\n- Engine assistance, or any kind of outside help, is [forbidden](https://lichess.org/page/fair-play)\n\
- Time controls: [Rapid, Classical and Correspondence](https://lichess.org/faq#time-controls) only.\n For direct challenges,\
\ games vs AI, and bulk pairing, Blitz is also possible.\n\n### Links\n- [Announcement](https://lichess.org/blog/XlRW5REAAB8AUJJ-/welcome-lichess-boards)\n\
- [Implementation example](https://github.com/lichess-org/api-demo) and [live demo](https://lichess-org.github.io/api-demo/)\n\
- [Certabo support](https://github.com/haklein/certabo-lichess)\n- [Lichs (play from command-line)](https://github.com/Cqsi/lichs)\n\
- [Lichess discord bot](https://top.gg/bot/707287095911120968)\n- [cli-chess](https://github.com/trevorbayless/cli-chess/)\n\
- [Blunderly 3D board](https://github.com/maurimo/blunderly)\n- Yours? Please make [an issue or pull request](https://github.com/lichess-org/api)."
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Board
properties:
- type: OpenAPI
url: openapi/lichess-board-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-bot-api
name: Lichess Bot API
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)'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Bot
properties:
- type: OpenAPI
url: openapi/lichess-bot-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-broadcasts-api
name: Lichess Broadcasts API
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.'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Broadcasts
properties:
- type: OpenAPI
url: openapi/lichess-broadcasts-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-bulk-pairings-api
name: Lichess Bulk pairings API
description: 'Create many games for other players.
These endpoints are intended for tournament organisers.'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Bulk pairings
properties:
- type: OpenAPI
url: openapi/lichess-bulk-pairings-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-challenges-api
name: Lichess Challenges API
description: 'Send and receive challenges to play.
To create a lot of challenges, consider [bulk pairing](#tag/bulk-pairings/POST/api/bulk-pairing) instead.'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Challenges
properties:
- type: OpenAPI
url: openapi/lichess-challenges-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-external-engine-api
name: Lichess External engine API
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.'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- External engine
properties:
- type: OpenAPI
url: openapi/lichess-external-engine-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-fide-api
name: Lichess FIDE API
description: 'FIDE players and federations from [their public download](https://ratings.fide.com/download_lists.phtml).
<https://lichess.org/fide>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- FIDE
properties:
- type: OpenAPI
url: openapi/lichess-fide-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-games-api
name: Lichess Games API
description: 'Access games played on Lichess.
<https://lichess.org/games>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Games
properties:
- type: OpenAPI
url: openapi/lichess-games-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-messaging-api
name: Lichess Messaging API
description: 'Private messages with other players.
<https://lichess.org/inbox>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Messaging
properties:
- type: OpenAPI
url: openapi/lichess-messaging-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-oauth-api
name: Lichess OAuth API
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).'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- OAuth
properties:
- type: OpenAPI
url: openapi/lichess-oauth-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-opening-explorer-api
name: Lichess Opening Explorer API
description: 'Lookup positions from the [Lichess opening explorer](https://lichess.org/analysis#explorer).
Runs <https://github.com/lichess-org/lila-openingexplorer>.
> [!important]
> The hostname for these endpoints is `explorer.lichess.org` and not `lichess.org`.'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Opening Explorer
properties:
- type: OpenAPI
url: openapi/lichess-opening-explorer-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-puzzles-api
name: Lichess Puzzles API
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).'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Puzzles
properties:
- type: OpenAPI
url: openapi/lichess-puzzles-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-relations-api
name: Lichess Relations API
description: Access relations between users.
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Relations
properties:
- type: OpenAPI
url: openapi/lichess-relations-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-simuls-api
name: Lichess Simuls API
description: 'Access simuls played on Lichess.
<https://lichess.org/simul>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Simuls
properties:
- type: OpenAPI
url: openapi/lichess-simuls-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-studies-api
name: Lichess Studies API
description: 'Access Lichess studies.
<https://lichess.org/study>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Studies
properties:
- type: OpenAPI
url: openapi/lichess-studies-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-tablebase-api
name: Lichess Tablebase API
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`.'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Tablebase
properties:
- type: OpenAPI
url: openapi/lichess-tablebase-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-teams-api
name: Lichess Teams API
description: 'Access and manage Lichess teams and their members.
<https://lichess.org/team>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Teams
properties:
- type: OpenAPI
url: openapi/lichess-teams-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-tournaments-arena-api
name: Lichess Tournaments (Arena) API
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.'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Tournaments (Arena)
properties:
- type: OpenAPI
url: openapi/lichess-tournaments-arena-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-tournaments-swiss-api
name: Lichess Tournaments (Swiss) API
description: 'Access Swiss tournaments played on Lichess.
[Read more about Swiss tournaments.](https://lichess.org/swiss).'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Tournaments (Swiss)
properties:
- type: OpenAPI
url: openapi/lichess-tournaments-swiss-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-tv-api
name: Lichess TV API
description: 'Access Lichess TV channels and games.
<https://lichess.org/tv> & <https://lichess.org/games>'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- TV
properties:
- type: OpenAPI
url: openapi/lichess-tv-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
- aid: lichess:lichess-users-api
name: Lichess Users API
description: 'Access registered users on Lichess.
<https://lichess.org/player>
- Each user blog exposes an atom (RSS) feed, like <https://lichess.org/@/thibault/blog.atom>
- User blogs mashup feed: https://lichess.org/blog/community.atom
- User blogs mashup feed for a language: https://lichess.org/blog/community/fr.atom'
humanURL: https://lichess.org/api
baseURL: https://lichess.org
tags:
- Users
properties:
- type: OpenAPI
url: openapi/lichess-users-api-openapi.yml
- type: Documentation
url: https://lichess.org/api
- type: AsyncAPI
url: asyncapi/lichess-asyncapi.yml
- type: JSONSchema
url: json-schema/lichess-game-schema.json
- type: JSONSchema
url: json-schema/lichess-user-schema.json
- type: JSONLD
url: json-ld/lichess-context.jsonld
- type: SpectralRuleset
url: rules/lichess-rules.yml
name: Lichess
tags:
- Chess
- Games
- Open Source
- Nonprofit
- Tournaments
- Puzzles
- Bots
- Streaming
- ND-JSON
- OAuth
kind: contract
accessModel:
pricing: freemium
onboarding: self-serve
trial: false
try_now: true
public: false
label: Freemium · Self-serve signup
confidence: high
source:
- plans
- authentication
generated: '2026-07-22'
method: derived
image: https://lichess1.org/assets/logo/lichess-pad12.svg
access: 3rd-Party
common:
- type: PostmanWorkspace
url: https://www.postman.com/kinlaneapi/lichess/overview
- type: AgenticAccess
url: agentic-access/lichess-agentic-access.yml
- type: VulnerabilityDisclosure
url: security/lichess-vulnerability-disclosure.yml
- type: DomainSecurity
url: security/lichess-domain-security.yml
- type: Authentication
url: authentication/lichess-authentication.yml
- type: OAuthScopes
url: scopes/lichess-scopes.yml
- url: https://lichess.org
name: Lichess
type: Portal
- url: https://lichess.org/api
name: API Reference
type: Documentation
- url: https://lichess.org/api/ui
name: API UI
type: Sandbox
- url: https://lichess-org.github.io/api-demo/
name: API Demo
type: Sandbox
- url: https://github.com/lichess-org
name: Lichess on GitHub
type: GitHubOrganization
- url: https://github.com/lichess-org/api
name: Lichess API Documentation Repository
type: SourceCode
- url: https://github.com/lichess-org/lila
name: Lila - Lichess Server
type: SourceCode
- url: https://github.com/lichess-org/scalachess
name: scalachess Engine Library
type: SourceCode
- url: https://github.com/lichess-org/chessground
name: Chessground Board UI
type: SourceCode
- url: https://github.com/lichess-org/pgn-viewer
name: PGN Viewer
type: SourceCode
- url: https://github.com/lichess-org/mobile
name: Lichess Mobile (Flutter)
type: SourceCode
- url: https://github.com/lichess-org/berserk
name: Berserk - Python Client
type: SDKs
- url: https://github.com/tors42/chariot
name: Chariot - Java Client
type: SDKs
- url: https://github.com/devjiwonchoi/equine
name: Equine - JavaScript/TypeScript Client
type: SDKs
- url: https://github.com/Rabergsel/LichessNET
name: LichessNET - C# Client
type: SDKs
- url: https://github.com/Dblike/LichessSharp
name: LichessSharp - .NET Client
type: SDKs
- url: https://github.com/mkomon/uberserk
name: uberserk - MicroPython Client
type: SDKs
- url: https://pypi.org/project/async-lichess-sdk
name: async-lichess-sdk
type: SDKs
- url: https://github.com/lichess-bot-devs/lichess-bot
name: lichess-bot - Python Bot Reference
type: Tools
- url: https://github.com/lichess-org/fishnet
name: Fishnet - Distributed Stockfish Analysis
type: Tools
- url: https://github.com/lichess-org/external-engine
name: External Engine
type: Tools
- url: https://github.com/lichess-org/broadcaster
name: Broadcaster
type: Tools
- url: https://github.com/lichess-org/pgn-mule
name: PGN Mule
type: Tools
- url: https://github.com/lichess-org/api-ui
name: API UI Source
type: Tools
- url: https://github.com/lichess-org/api/tree/master/example
name: OAuth and API Examples
type: CodeExamples
- url: https://discord.gg/lichess
name: Lichess Discord
type: Forums
- url: https://lichess.org/forum
name: Lichess Forum
type: Forums
- url: https://database.lichess.org/
name: Lichess Database Exports
type: BulkDataDownload
- url: https://lichess.org/account/oauth/token
name: Personal Access Token
type: Authentication
- url: https://lichess.org/developers
name: Lichess Widgets
type: Documentation
- url: https://lichess.org/account/oauth/app
name: OAuth App Registration
type: Authentication
- url: https://lichess.org/page/fair-play
name: Fair Play Policy
type: TermsOfService
- url: https://lichess.org/terms-of-service
name: Terms of Service
type: TermsOfService
- url: https://lichess.org/privacy
type: PrivacyPolicy
- url: https://lichess.org/source
name: Source Code
type: SourceCode
- url: https://lichess.org/patron
name: Become a Lichess Patron
type: Donate
- url: https://status.lichess.org/
name: Lichess Status
type: StatusPage
- url: https://lichess.org/blog
type: Blog
- url: https://lichess.org/api#section/Introduction/Rate-limiting
name: Rate Limiting
type: RateLimits
- url: https://lichess.org/api#tag/OAuth
name: OAuth and PKCE
type: Authentication
- url: https://www.gnu.org/licenses/agpl-3.0.txt
name: AGPL-3.0
type: License
- url: plans/lichess-plans-pricing.yml
type: Plans
- url: rate-limits/lichess-rate-limits.yml
type: RateLimits
- type: Features
data:
- Free, ad-free, open-source online chess server operated by a French nonprofit, funded by donations
- Full OpenAPI 3.1 specification with 185 operations across 23 tags published at github.com/lichess-org/api
- Account, users, relations, and messaging endpoints for managing players and social graph
- Games REST and ND-JSON streaming endpoints for current and historical games, including PGN export
- TV channels and current best games for live broadcast and embedding
- Daily puzzle, puzzle by ID, puzzle activity, and puzzle dashboard endpoints
- Teams API for creating, joining, listing, and managing chess teams
- Board API for playing real-time games with physical boards and third-party clients using regular accounts
- Bot API for programmatic play by accounts upgraded to bot status, with streaming game state
- Challenges API for issuing, accepting, declining, and listing challenges including AI and open challenges
- Bulk pairings for programmatically creating many games at once
- Arena and Swiss tournament APIs including create, update, terminate, join, withdraw, and result export
- Simuls endpoint for current and upcoming simultaneous exhibitions
- Studies API for exporting and importing study chapters in PGN
- Broadcasts API for creating tournaments, rounds, and pushing PGN updates for live event coverage
- FIDE endpoints exposing FIDE player and federation data
- Opening Explorer with Masters database, Lichess database, and player database lookups
- Tablebase endpoint for 7-piece Syzygy endgame results
- External Engine API enabling user-hosted engines to power analysis on lichess.org/analysis
- Cloud evaluation lookup for previously evaluated positions
- OAuth 2.0 Authorization Code Flow with PKCE plus personal access tokens, long-lived (one year typical)
- Newline-delimited JSON (ND-JSON) streaming for events, games, and TV feeds
- Distributed Stockfish analysis network (fishnet) and open client-side Stockfish WASM builds
- Public dataset exports of all rated games, puzzles, and computer evaluations at database.lichess.org
- Official community SDKs in Python (berserk), Java (chariot), JavaScript/TypeScript (equine), .NET, and more
- AGPL-3.0 licensed server (lila), with MIT scalachess engine library and GPL-3.0 mobile and tooling code
sources:
- https://lichess.org/api
- https://github.com/lichess-org/api
- https://github.com/lichess-org
- https://lichess.org/about
updated: '2026-05-25'
created: '2026-05-25T00:00:00.000Z'
modified: '2026-05-25'
position: Consuming
description: Lichess is a free, ad-free, open-source online chess server operated by a French nonprofit and powered entirely
by volunteers and donations. It serves millions of games per day with live play, tournaments, puzzles, studies, broadcasts,
analysis, and a public API. The server (lila), engine library (scalachess), mobile app, board UI (chessground), and distributed
Stockfish analysis network (fishnet) are all open source under AGPL-3.0, MIT, and GPL-3.0 licenses. The Lichess API provides
185 documented operations across 23 functional areas including Account, Users, Games, Puzzles, Teams, Board, Bot, Challenges,
Arena and Swiss Tournaments, Simuls, Studies, Broadcasts, Messaging, OAuth, FIDE, Opening Explorer, Tablebase, External
Engine, and Cloud Analysis, with comprehensive ND-JSON streaming support.
maintainers:
- FN: Kin Lane
email: info@apievangelist.com
X: apievangelist
url: https://apievangelist.com
specificationVersion: '0.16'