Skip to main content

Get Official Broadcasts

Retrieve the list of official ongoing and recent broadcast tournaments.
curl -X GET 'https://lichess.org/api/broadcast' \
  -H 'Accept: application/x-ndjson'

Endpoint

GET https://lichess.org/api/broadcast

Query Parameters

nb
integer
default:"20"
Maximum number of broadcasts to return (max: 100)

Response

Returns a stream of broadcast tournaments in NDJSON format. Each line contains a broadcast object.
tour
object
The broadcast tournament information
round
object
The current or most recent round
group
object
Group information if the tournament belongs to a group

Get Top Broadcasts

Get paginated list of top broadcast tournaments.
curl -X GET 'https://lichess.org/api/broadcast/top?page=1' \
  -H 'Accept: application/json'

Endpoint

GET https://lichess.org/api/broadcast/top

Query Parameters

page
integer
default:"1"
Page number for pagination (max: 20)

Response

active
array
Array of currently active broadcasts, sorted by tier
past
object
Paginated list of past broadcasts

Search Broadcasts

Search for broadcast tournaments by query string.
curl -X GET 'https://lichess.org/api/broadcast/search?q=chess&page=1' \
  -H 'Accept: application/json'

Endpoint

GET https://lichess.org/api/broadcast/search

Query Parameters

q
string
required
Search query (max 100 characters)
page
integer
default:"1"
Page number for pagination (max: 20)

Response

Returns a paginated object with matching broadcasts (same structure as /top endpoint’s past property).

Get Broadcast by User

Get broadcasts created by a specific user.
curl -X GET 'https://lichess.org/api/broadcast/by/username?page=1' \
  -H 'Accept: application/json'

Endpoint

GET https://lichess.org/api/broadcast/by/{username}

Path Parameters

username
string
required
Lichess username

Query Parameters

page
integer
default:"1"
Page number for pagination (max: 20)

Response

Returns a paginated object with broadcasts created by the specified user.

Get Broadcast Tournament

Get detailed information about a specific broadcast tournament, including all rounds.
curl -X GET 'https://lichess.org/api/broadcast/{broadcastId}' \
  -H 'Accept: application/json'

Endpoint

GET https://lichess.org/api/broadcast/{broadcastId}

Path Parameters

broadcastId
string
required
The broadcast tournament ID (8 characters)

Query Parameters

html
boolean
default:"false"
Return description as HTML instead of markdown

Response

tour
object
Complete tournament information including description and settings
rounds
array
Array of all rounds in the tournament with full details
group
object
Group information if applicable
photos
object
Player photos keyed by player name
defaultRoundId
string
ID of the default round to display

Authentication

  • Public broadcasts: No authentication required
  • Private broadcasts: Requires OAuth token with study:read scope
Private broadcasts will return a 401 error if accessed without proper authentication.

Export Tournament PGN

Download all games from a broadcast tournament as PGN.
curl -X GET 'https://lichess.org/api/broadcast/{broadcastId}.pgn' \
  --output tournament.pgn

Endpoint

GET https://lichess.org/api/broadcast/{broadcastId}.pgn

Path Parameters

broadcastId
string
required
The broadcast tournament ID (8 characters)

Response

Returns PGN data for all games in the tournament as application/x-chess-pgn.
Rate limits apply. The download is streamed to handle large tournaments efficiently.

Build docs developers (and LLMs) love