[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Set up a Lichess broadcast for a live chess event

> Create a Lichess broadcast and its rounds for an over-the-board event from a PGN URL, game IDs or usernames, from Claude Code or n8n. Hosted.

Source: https://cotlet.dev/integrations/lichess-api-mcp-server/run-a-chess-broadcast

Your club championship runs for six rounds, and before each round someone has to create the broadcast round, paste the PGN source and set the start time.

Cotlet does it in your own Lichess account with list\_broadcasts, create\_broadcast and create\_broadcast\_round, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=lichess) [All Lichess tools](https://cotlet.dev/integrations/lichess-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Lichess do this on its own?

Lichess has API calls to create a broadcast tournament and each round with the same fields as the web forms (checked 17 Oct 2026), and a call to push PGN into a round. They need a token with the study:write scope, and there is no official MCP server. Lichess may make a broadcast official on request by email, which the API does not do.

## How you do it in Lichess today

1. Open lichess.org/broadcast/new, or choose Watch, Broadcasts, My broadcasts in the top bar and click the green New live broadcast button.
2. Fill the tournament form once: name, visibility (Public, Unlisted or Private), optional details such as format and location, time zone and FIDE rating category.
3. Under Features, decide whether to show players' scores and rating diffs; Lichess advises switching both off if not all games of the event are broadcast.
4. Submit, then fill the round form: the round name, where the games come from (Broadcaster App, Single PGN URL, Combine several PGN URLs, Lichess game IDs or Lichess usernames) and the start date in the tournament time zone.
5. Repeat the round form for every round, and for a LiveChessCloud source add /\[RoundNumber\] to the link.

## How to set up a Lichess broadcast for a live chess event

Prompt

```
Create a private Lichess broadcast for our club championship, add Round 1 fed from the PGN URL below, and give me the link to share.
```

1. 01  
### Reuse the tournament if it exists  
Your agent calls list\_broadcasts for your account first. If the championship already has a broadcast, it adds the next round there instead of creating a second tournament.
2. 02  
### Create the tournament once  
create\_broadcast sets name, visibility and the scores and rating-diff switches. For a Private broadcast, the agent tells you that only invited members can see it.
3. 03  
### Add the round with its source  
create\_broadcast\_round takes exactly one source type: a single PGN URL, several PGN URLs, Lichess game IDs or Lichess usernames. The agent refuses a prompt that mixes two.
4. 04  
### Check the time zone  
The round start time is read in the tournament time zone chosen on the broadcast, so the agent states which zone it assumed before it submits.
5. 05  
### Return the links  
The agent returns the broadcast and round URLs, and reminds you that Public does not mean listed on the main Broadcasts page.

### What you get back

Example data

```
Created broadcast "Riverside Chess Club Championship 2026" (Private)
Round 1 added, source: single PGN URL
Starts Sat 24 Oct 2026, 10:00 (tournament time zone)
https://lichess.org/broadcast/riverside-chess-club-championship-2026/round-1/Kf3nQ8vD
Scores and rating diffs: off
```

### Other ways to ask

- Add Rounds 2 to 6 to the championship broadcast, each starting at 10:00 on the following Saturdays.
- Create a Public broadcast for our online league with games fed from the usernames of the eight players.
- List my broadcasts and tell me which still have no round with a start date.
- Create the round from these Lichess game IDs and leave scores and rating diffs off.

## What Lichess allows, and what to know first

- A Lichess broadcast is split into a tournament and its rounds, and the tournament form applies to every round.
- Visibility is Public, Unlisted (only from the link) or Private (only users invited in the Members tab); Public does not list the broadcast on lichess.org/broadcast.
- Round sources are the Broadcaster App, a single PGN URL, several combined PGN URLs, Lichess game IDs or Lichess usernames.
- Lichess may make a broadcast official on request to its broadcast team by email, and games in official broadcasts are publicly downloadable and cannot be deleted.
- Time zone and FIDE rating category matter for the broadcast to behave as expected, and tiebreaks are wrong if not all games are broadcast.

create\_broadcast and create\_broadcast\_round ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: [Lichess: How to use Lichess Broadcasts](https://lichess.org/broadcast/help) · [Lichess API: Create a broadcast tournament](https://lichess.org/api#tag/broadcasts/POST/broadcast/new) · [Lichess API: Create a broadcast round](https://lichess.org/api#tag/broadcasts/POST/broadcast/{broadcastTournamentId}/new)

## Call create\_broadcast from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/lichess/broadcasts \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Riverside Chess Club Championship 2026","visibility":"private","description":"Six rounds, one game per round, Saturdays at 10:00.","show_scores":false,"show_rating_diffs":false}'
```

Example response

```
{
"broadcast_id": "Zp4tNc6h",
"name": "Riverside Chess Club Championship 2026",
"visibility": "private",
"url": "https://lichess.org/broadcast/riverside-chess-club-championship-2026/Zp4tNc6h",
"rounds": []
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is lichess\_write → create\_broadcast. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/lichess-api-mcp-server.md#automations)

## Lichess tools this automation uses

__Cotlet Lichess tools used to set up a Lichess broadcast for a live chess event__
| Tool | Parameters |
| ------------------------ | ------------------------------------------------------------------------ |
| list\_broadcasts | username, page |
| create\_broadcast | name, visibility, description, show\_scores, show\_rating\_diffs |
| create\_broadcast\_round | broadcast\_id, name, source, pgn\_urls, game\_ids, usernames, starts\_at |

[All 15 Lichess tools with descriptions](https://cotlet.dev/integrations/lichess-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Lichess to Cotlet?

Yes. You sign in to Lichess yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Lichess once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Lichess automations

- [Schedule a weekly Lichess Arena tournament](https://cotlet.dev/integrations/lichess-api-mcp-server/schedule-weekly-arena-tournament.md)
- [Lichess API and MCP server: every tool](https://cotlet.dev/integrations/lichess-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Lichess.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Lichess.

[Sign up free](https://cotlet.dev/app/signup?app=lichess)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
