Lichess Chess Users Scraper
Pricing
from $30.90 / 1,000 results
Lichess Chess Users Scraper
Scrape chess player profiles, ratings, and game stats from Lichess public API. Get user info, rating per variant, recent games, online status, tournament history. No API key required.
Pricing
from $30.90 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

♟️ Lichess Chess Users Scraper
🚀 Export full Lichess player profiles in seconds. Multi-variant ratings, lifetime game counts, training scores, real names, and streaming links. No API key, no OAuth, no scraping HTML.
🕒 Last updated: 2026-05-12 · 📊 50 fields per record · ♟️ 12 chess variants · 🌍 Lichess: 14M+ registered users · 🔓 Free open-source platform
The Lichess Chess Users Scraper pulls full public player profiles from Lichess via its open public API. Pass a list of usernames and the Actor returns 50 fields per record, including ratings and game counts across 12 chess variants (bullet, blitz, rapid, classical, correspondence, ultra-bullet, chess960, king of the hill, three-check, antichess, atomic, horde, racing kings, crazyhouse), training scores (puzzle, storm, racer, streak), lifetime play time and TV time, real name, country flag, FIDE and USCF ratings, bio text, profile links, GM/IM/NM titles, patron status, and Twitch/YouTube streaming channels.
Lichess is the world's leading free and open-source chess platform with 14 million+ registered users, including most current top grandmasters playing under aliases. The official API returns rich profile data without authentication, making this Actor ideal for chess analytics, coaching platforms, tournament management, streaming dashboards, and esports research.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Chess coaches, esports analysts, tournament organizers, chess content creators, streaming dashboards, training-app developers, chess data scientists | Player rating dashboards, GM scouting, tournament seeding, streamer aggregation, training-tool integration, multi-variant strength comparisons, chess statistics research |
📋 What the Lichess Chess Users Scraper does
One simple workflow with rich output:
- 📋 Batch profile lookup. Pass any list of Lichess usernames and pull each profile in one run.
- 🎯 12 variant ratings. Bullet, blitz, rapid, classical, correspondence, ultra-bullet, chess960, king of the hill, three-check, antichess, atomic, horde, racing kings, crazyhouse.
- 🧩 Training scores. Puzzle rating and games, storm score, racer score, streak score.
- 📺 Streaming links. Twitch and YouTube channels for streamer aggregation.
Each record includes a stable user ID, profile URL, title (GM/IM/FM/NM/CM/WGM/etc.), patron flag, verified flag, profile flair emoji, account creation and last-seen timestamps, bio text, real name, country flag, FIDE and USCF ratings, profile links, lifetime play time in seconds, TV-watched time, total games (all, rated, win, loss, draw, import), per-variant ratings and game counts, and currently-playing game URL when the player is online.
💡 Why it matters: scraping per-player HTML pages on Lichess is fragile and slow. The public API is fast and stable, but most users only want clean structured rows for spreadsheets and dashboards. This Actor takes a list of usernames and returns a flat table ready to load into BI tools, training apps, or tournament-management systems.
🎬 Full Demo
🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded chess player dataset.
⚙️ Input
| Input | Type | Default | Behavior |
|---|---|---|---|
usernames | string[] | ["thibault"] | List of Lichess usernames to scrape. Case-insensitive. |
maxItems | integer | 10 | Records to return. Free plan caps at 10, paid plan at 1,000,000. |
Example: world-class GM profiles in one run.
{"usernames": ["DrNykterstein", "penguingm1", "Hikaru", "fabianoCaruana", "Anish_Giri"],"maxItems": 50}
Example: full team roster for a chess club.
{"usernames": ["thibault", "ornicar", "veloce", "isaacly", "lichess-tools"],"maxItems": 100}
⚠️ Good to Know: closed or disabled accounts return minimal data with a
closed: trueflag. Variant ratings with zero games shownull. The Lichess API rate-limits aggressive callers, so the Actor paces requests at 200ms per user.
📊 Output
Each player record contains up to 50 fields. Download the dataset as CSV, Excel, JSON, or XML.
🧾 Schema
| Field | Type | Example |
|---|---|---|
🆔 id | string | "thibault" |
🔗 url | string | "https://lichess.org/@/thibault" |
👤 username | string | "thibault" |
🏆 title | string | null | "GM" |
💎 patron | boolean | null | true |
✅ verified | boolean | null | true |
🎨 flair | string | null | "nature.seedling" |
📅 createdAt | ISO 8601 | null | "2010-11-22T08:48:00.000Z" |
👀 seenAt | ISO 8601 | null | "2026-05-12T16:27:49.437Z" |
📝 bio | string | null | "I turn coffee into bugs." |
👤 realName | string | null | "Thibault Duplessis" |
🌍 country | string | null | "FR" |
🏆 fideRating | number | null | 2551 |
🏆 uscfRating | number | null | 2616 |
🔗 links | string | null | "github.com/ornicar" |
⏱️ playTimeSeconds | number | null | 6501435 |
📺 tvTimeSeconds | number | null | 18024 |
🎮 gamesAll | number | null | 23585 |
🎮 gamesRated | number | null | 21193 |
🏆 gamesWin | number | null | 11276 |
❌ gamesLoss | number | null | 11268 |
🤝 gamesDraw | number | null | 1036 |
📥 gamesImport | number | null | 73 |
🔫 bulletRating | number | null | 1785 |
🔫 bulletGames | number | null | 7482 |
⚡ blitzRating | number | null | 1805 |
⚡ blitzGames | number | null | 11612 |
🏃 rapidRating | number | null | 1907 |
🏃 rapidGames | number | null | 894 |
🐢 classicalRating | number | null | 1858 |
🐢 classicalGames | number | null | 25 |
📮 correspondenceRating | number | null | 1942 |
🚀 ultraBulletRating | number | null | 1688 |
🚀 ultraBulletGames | number | null | 3 |
🎲 chess960Rating | number | null | 1551 |
🎲 chess960Games | number | null | 348 |
👑 kingOfTheHillRating | number | null | 1744 |
➕ threeCheckRating | number | null | 1728 |
🔄 antichessRating | number | null | 1465 |
💥 atomicRating | number | null | 1633 |
🐴 hordeRating | number | null | 1592 |
🏎️ racingKingsRating | number | null | 1552 |
🤪 crazyhouseRating | number | null | 1567 |
🧩 puzzleRating | number | null | 1986 |
🧩 puzzleGames | number | null | 5873 |
⚡ stormScore | number | null | 33 |
🏁 racerScore | number | null | 51 |
🔥 streakScore | number | null | 33 |
📺 twitchChannel | string | null | "https://www.twitch.tv/ornicar2" |
📺 youtubeChannel | string | null | "https://youtube.com/channel/..." |
🎮 playing | string | null | "https://lichess.org/R8X0l6Ym/black" |
🕒 scrapedAt | ISO 8601 | "2026-05-12T16:30:27.977Z" |
📦 Sample records
✨ Why choose this Actor
| Capability | |
|---|---|
| ♟️ | 12 variant ratings. Every chess flavor Lichess supports, including chess960, atomic, and horde. |
| 🧩 | Training scores included. Puzzle, storm, racer, and streak in one row alongside ratings. |
| 📺 | Streamer-ready. Twitch and YouTube channels pre-extracted for aggregator dashboards. |
| 🏆 | External ratings. FIDE and USCF numbers when the user has set them in their profile. |
| ⏱️ | Lifetime play time. Total seconds of chess played and time spent on Lichess TV. |
| 🔓 | Open-source ecosystem. Lichess is free and open-source; this Actor respects the API rate limits. |
| 🚫 | No login or OAuth. Public endpoints only, no token management. |
📊 Lichess hosts the world's largest free chess community with 14M+ registered users and millions of daily games played.
📈 How it compares to alternatives
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| ⭐ Lichess Chess Users Scraper (this Actor) | $5 free credit, then pay-per-use | Any Lichess username | Live per run | usernames, maxItems | ⚡ 2 min |
| Paid chess analytics APIs | $49+/month | Subset | Daily | Vendor-defined | ⏳ Hours |
| Manual HTML scraping of profile pages | Free | One profile at a time | Manual | None | 🐢 Days |
| Single-profile API calls in code | Free | DIY | Live | Code-defined | 🛠️ Hours |
Pick this Actor when you need clean profile rows for many players at once without writing your own batch pipeline.
🚀 How to use
- 📝 Sign up. Create a free account with $5 credit (takes 2 minutes).
- 🌐 Open the Actor. Go to the Lichess Chess Users Scraper page on the Apify Store.
- 🎯 Set input. Enter a list of Lichess usernames and set
maxItems. - 🚀 Run it. Click Start and let the Actor walk the usernames list.
- 📥 Download. Grab your results in the Dataset tab as CSV, Excel, JSON, or XML.
⏱️ Total time from signup to downloaded dataset: 3-5 minutes. No coding required.
💼 Business use cases
🌟 Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
🔌 Automating Lichess Chess Users Scraper
Control the scraper programmatically for scheduled runs and pipeline integrations:
- 🟢 Node.js. Install the
apify-clientNPM package. - 🐍 Python. Use the
apify-clientPyPI package. - 📚 See the Apify API documentation for full details.
The Apify Schedules feature lets you trigger this Actor on any cron interval. Daily refreshes keep coaching dashboards and tournament rosters in sync automatically.
❓ Frequently Asked Questions
🧩 How does it work?
Provide a list of Lichess usernames, click Start, and the Actor calls the public /api/user/{username} endpoint for each one, paces requests to respect rate limits, and emits a clean structured record per profile.
🏆 What chess titles can appear?
Lichess displays titles such as GM, IM, FM, CM, NM, WGM, WIM, WFM, WCM, WNM, LM (Lichess Master) and BOT (for bot accounts). The title field reflects whatever the player has set after verification.
♟️ Why are some variant ratings null?
A null value means the player has not played that variant yet. Lichess assigns a provisional rating only after a few games in each variant.
📺 Why is country sometimes a flag string and sometimes null?
Players can pick any flag from the Lichess flag list. The field returns the raw flag code (e.g. FR, AQ, or fun choices like AQ for Antarctica). It is null when the user has not set one.
🔁 How often is the data refreshed?
Every run pulls live profile data. Ratings update after each rated game, so the seenAt and rating fields can move minute-by-minute for active players.
⏰ Can I schedule regular runs?
Yes. Use Apify Schedules to run this Actor on any cron interval (hourly, daily, weekly) and keep a downstream database in sync.
⚖️ Is this data legal to use?
Lichess publishes all profile data via its public open-source API. Profiles are publicly visible by default. Review the Lichess terms of service before mass redistribution.
💼 Can I use this data commercially?
Lichess is licensed AGPL and the API is permissive for non-abusive use. Public profile data may be used for analytics, dashboards, and research. Respect the Lichess API terms regarding rate limits and attribution.
💳 Do I need a paid Apify plan to use this Actor?
No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and gives you access to scheduling, higher concurrency, and larger datasets.
🔁 What happens if a run fails or gets interrupted?
Apify automatically retries transient errors. If a run still fails, you can inspect the log in the Runs tab, fix the input, and re-run. Partial datasets from failed runs are preserved so you never lose progress.
🆘 What if I need help?
Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.
🔌 Integrate with any app
Lichess Chess Users Scraper connects to any cloud service via Apify integrations:
- Make - Automate multi-step workflows
- Zapier - Connect with 5,000+ apps
- Slack - Get run notifications in your channels
- Airbyte - Pipe chess data into your warehouse
- GitHub - Trigger runs from commits and releases
- Google Drive - Export datasets straight to Sheets
You can also use webhooks to trigger downstream actions when a run finishes. Push fresh chess data into your coaching app, or alert your team in Slack.
🔗 Recommended Actors
- 🐉 EDHREC MTG Commander Scraper - Magic: The Gathering Commander format meta statistics
- 🎮 BoardGameGeek Scraper - Board game ratings, rankings, and reviews
- 🎯 Manifold Prediction Markets Scraper - Public prediction market questions and probabilities
- 📺 Twitch Scraper - Twitch channels, streams, and viewership data
- ▶️ YouTube Channel Scraper - YouTube channels, videos, and metrics
💡 Pro Tip: browse the complete ParseForge collection for more games, esports, and community-data scrapers.
🆘 Need Help? Open our contact form to request a new scraper, propose a custom data project, or report an issue.
⚠️ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Lichess.org or its volunteer maintainers. All trademarks mentioned are the property of their respective owners. Only publicly available profile data is collected.