Pricing
Pay per event
Lichess Player, Game & Tournament Scraper
Scrape Lichess player profiles, full game histories (PGN + clocks + analysis), arena and Swiss tournament listings, and per-player rating history from Lichess's open REST API. No API key required. Supports bulk username input and all game variants.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
16 hours ago
Last modified
Share
Scrape player profiles, full game histories (with PGN, clocks, and opening analysis), arena and Swiss tournament listings, and rating time-series from Lichess โ the world's largest free, open-source chess server. No API key required.
What It Does
This actor connects directly to the Lichess REST API and returns structured data across four modes:
| Mode | What You Get |
|---|---|
player | Profile data: ratings (bullet/blitz/rapid/classical/correspondence/puzzle), game counts, play time, country, patron status |
games | Full game history: PGN, moves in UCI notation, clocks, opening ECO + name, player ratings, variant, speed |
tournaments | Active arena and Swiss tournaments: clock controls, variant, player count, winner, start time |
rating_history | Rating time-series: full per-performance-category rating history as a JSON array |
Why Lichess
Lichess publishes a fully open, anonymous-accessible API with no rate-key requirement and NDJSON streaming for bulk game downloads. It is the canonical open data source for chess research โ powering cheat-detection models, opening-theory analysis, and academic chess datasets. Over 5 billion games are available.
Input
| Field | Type | Description |
|---|---|---|
mode | string (required) | player, games, tournaments, or rating_history |
usernames | string[] | One or more Lichess usernames (required for player, games, rating_history modes) |
maxItems | integer | Max records to return per username. Default: 10 |
rated | boolean | Games mode: return only rated games |
perfType | string | Games mode: filter by speed/variant (e.g. blitz, rapid, chess960) |
Example Input โ Player Profiles
{"mode":"player","usernames":["thibault","DrNykterstein","Hikaru"],"maxItems":10}
Example Input โ Game History
{"mode":"games","usernames":["DrNykterstein"],"maxItems":50,"rated":true,"perfType":"blitz"}
Example Input โ Tournaments
{"mode":"tournaments","maxItems":20}
Output
Each record has a record_type field indicating its type: player, game, tournament, or rating_history.
Player Record
{"record_type":"player","username":"DrNykterstein","title":"GM","rating_bullet":3288,"rating_blitz":3212,"rating_rapid":3001,"games_count":85000,"wins":52000,"losses":18000,"draws":15000,"country":"NO","patron":false,"verified":false}
Game Record
{"record_type":"game","game_id":"q7ZvsdUF","rated":true,"variant":"standard","speed":"blitz","status":"resign","winner":"white","white_user":"DrNykterstein","white_rating":3190,"black_user":"Hikaru","black_rating":3120,"opening_eco":"B12","opening_name":"Caro-Kann Defense","moves":"e2e4 c7c6 d2d4 ...","pgn":"1. e4 c6 2. d4 ...","clock_initial":180,"clock_increment":0}
Tournament Record
{"record_type":"tournament","tournament_id":"mfZoVuwM","tournament_name":"Hourly Blitz Arena","tournament_system":"arena","tournament_clock":"3+0","tournament_variant":"blitz","tournament_rated":true,"tournament_nb_players":217,"tournament_winner":"penguingim1"}
Use Cases
- Chess research: Download game databases for machine learning, opening theory, or statistical analysis
- Player tracking: Monitor rating trends and performance across time controls
- Tournament analytics: Track active tournaments, player counts, and results
- Comparative analysis: Benchmark player profiles across the Lichess community
Rate Limits
Lichess rate-limits anonymous API access. This actor automatically handles 429 responses with exponential backoff and adds a 500ms courtesy delay between requests.
Notes
- No API key or Lichess account required for public data
- Games returned newest-first
rating_historyrecords contain the full time-series as a JSON string- The
movesfield uses UCI notation (e.g.e2e4); PGN uses standard algebraic notation
