Chess Leaderboard Comparator (Lichess) avatar

Chess Leaderboard Comparator (Lichess)

Pricing

Pay per event

Go to Apify Store
Chess Leaderboard Comparator (Lichess)

Chess Leaderboard Comparator (Lichess)

Compare Lichess top-player leaderboards across time controls - top rating, title density, and rating spread, ranked side by side.

Pricing

Pay per event

Rating

0.0

(0)

Developer

saint person

saint person

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

♟️ Chess Leaderboard Comparator (Lichess)

🚀 Compare chess leaderboards across time controls in one run. Top rating, title density, and competitiveness - not a single-leaderboard dump.

🕒 Last updated: 2026-07-11 · 📊 8 fields per category · Built on Lichess's official public API (no key)

🎁 Try it free: the free Apify plan returns up to 10 results per run - enough to see the output quality. Any paid Apify plan unlocks full-size runs.

Give it a list of time controls (bullet, blitz, rapid, classical, and more) and it pulls Lichess's official top-player leaderboard for each, then computes rating spread and titled-player density - so you can see bullet is the most title-dense and highest-rated format while classical has fewer titled players near the top, instead of checking four separate leaderboard pages.

🎯 Target Audience💡 Primary Use Cases
Chess content creators, streamers, coaches, chess platforms/toolsFormat-popularity research, streaming content ideas, competitive-scene analysis, coaching content

📋 What this Actor does

  • Fetches Lichess's official top-player leaderboard per time control/variant you list
  • Computes the rating gap between #1 and the last sampled player (competitiveness signal)
  • Counts titled players (GM, IM, FM, etc.) among the sample (title-density signal)
  • Returns the #1 player and a ranked sample list

💡 Why it matters: raw top ratings look similar across formats, but title density and rating spread reveal which format actually draws the deepest competitive field.


🎬 Full demo

🚧 Video walkthrough coming soon - the Quick Start below takes under 3 minutes end to end.


⚙️ Input

InputTypeDefaultBehavior
categoriesstring(prefilled)Comma-separated Lichess categories, up to 10
maxResultsinteger20Players sampled per category (5-200)

Example: Compare the 4 classic time controls

{ "categories": "bullet, blitz, rapid, classical", "maxResults": 20 }

Example: Variant chess comparison

{ "categories": "chess960, crazyhouse, atomic, horde", "maxResults": 15 }

⚠️ Good to know: valid categories are bullet, blitz, rapid, classical, chess960, crazyhouse, antichess, atomic, horde, kingOfTheHill, racingKings, threeCheck, ultraBullet (exact Lichess spelling/casing).


📊 Output

Each category returns 8 fields. Download as CSV, Excel, JSON, or XML, or consume via the Apify API.

🧾 Schema

FieldTypeExample
categorystringblitz
playersSampledinteger20
topPlayerUsername / topRatingstring / integerFunctionJunkie / 2995
avgTopNRatingnumber2911.1
ratingSpreadinteger123
titledPlayerCountinteger13
sampleTopPlayersarray["FunctionJunkie", "Ediz_Gurel"]
generatedAtstring2026-07-11T00:04:30Z

📦 Sample record

{"category":"blitz","playersSampled":20,"topPlayerUsername":"FunctionJunkie","topRating":2995,"avgTopNRating":2911.1,"ratingSpread":123,"titledPlayerCount":13,"sampleTopPlayers":["FunctionJunkie","Ediz_Gurel"],"generatedAt":"2026-07-11T00:04:30Z"}

✨ Why choose this Actor

Capability
🏆Competitiveness, not just rank. Rating spread and title density, not a raw top-20 list.
♟️Multi-format in one run. Compare up to 10 time controls/variants side by side.
Built on Lichess's official API. Free, no key - stable and durable.
🔁Automatic retries. Transient failures retry with backoff.
💳Pay per result. No subscription. A typical 4-category run costs about $0.03.

📊 Turns 4 manual leaderboard checks into 1 ranked table.


📈 How it compares to alternatives

ApproachCostCoverageRefreshSetup
⭐ Chess Leaderboard Comparator (this Actor)$5 free credit, then pay-per-useAny category, up to 10 per runLive per run⚡ 2 min
Browsing lichess.org/player leaderboards manuallyFreeOne category at a timeLive🐢 Manual, one by one
Chess.com leaderboardsFreeOne category, different platformLive🐢 No cross-format comparison
Manual copy-pasteFreeCurrent session onlyOne-shot🐢 Hours of clicking

Pick this Actor when you want a ranked, multi-format leaderboard view without checking each one individually.


🚀 How to use

  1. 📝 Sign up. Create a free Apify account with $5 credit (takes 2 minutes).
  2. 🌐 Open the Actor. Go to the Chess Leaderboard Comparator page on the Apify Store.
  3. ✏️ Set your input. List your time controls - or just press Start, the prefilled example works.
  4. 🚀 Run it. Watch results stream into the Dataset tab.
  5. 📥 Download. Grab results as CSV, Excel, JSON, or XML - or pipe them anywhere via the Apify API.

⏱️ Total time from signup to downloaded dataset: 3-5 minutes. No coding required.


💼 Business use cases

  • Chess content creators: find which format has the most compelling competitive story right now.
  • Streamers: back a "who's really the best" video with real rating-spread data.
  • Coaches: show students real title-density data across formats.
  • Chess platforms/tools: benchmark against Lichess's public leaderboards.

🌟 Beyond business use cases

  • 🎓 Research & academia - competitive gaming and rating-system studies.
  • 🎨 Personal & creative - chess newsletter or YouTube content research.
  • 🤝 Non-profit & civic - chess education and outreach program research.
  • 🧪 Experimentation - prototype a chess-analytics dashboard on real data.

🔌 Automating Chess Leaderboard Comparator

Node.js (apify-client on NPM):

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('saint_person/lichess-leaderboard-comparator').call({ categories: "bullet, blitz, rapid, classical", maxResults: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python (apify-client on PyPI):

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('saint_person/lichess-leaderboard-comparator').call(run_input={"categories": "bullet, blitz, rapid, classical", "maxResults": 20})
items = client.dataset(run['defaultDatasetId']).list_items().items

📚 Full Apify API documentation

Apify Schedules triggers this Actor on any cron interval - weekly for a standing leaderboard watch.


🧠 Use via MCP (for AI agents)

Chess Leaderboard Comparator is directly callable by any MCP-compatible AI agent (Claude, ChatGPT, Cursor, and others) through Apify's hosted MCP server - no custom integration code needed.

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/sse?actors=saint_person/lichess-leaderboard-comparator",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Once connected, just ask your agent something like: "Use the Chess Leaderboard Comparator Actor to tell me which time control has the deepest competitive field right now."

📚 Apify MCP server docs


🤖 Ask an AI assistant about this Actor


❓ Frequently Asked Questions

🧩 How does it work?

It calls Lichess's official top-player leaderboard endpoint per category, then computes rating spread and titled-player count across the sample.

Why Lichess and not Chess.com?

Lichess publishes a fully open, unauthenticated public API for leaderboards - no key, no rate-limit friction, ideal for a durable Actor.

What does "ratingSpread" tell me?

The rating gap between #1 and the last sampled player. A smaller spread means the format is more tightly contested at the top.

⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to run this Actor on any cron interval.

This Actor only collects data that is publicly accessible via Lichess's free API. No login, no bypass of access controls.

💳 Do I need a paid Apify plan?

No. The free Apify plan is enough for testing and small runs.

🔁 What happens if a run fails?

Transient errors retry automatically with backoff. If a run still fails, the log explains exactly why.

🆘 What if I need help?

Open an issue on this Actor's Issues tab.


🔌 Integrate with any app


Pairs well with Steam Player Count Ranker for cross-platform gaming-popularity comparisons.

💡 Pro tip: browse the complete saint_person collection for more tools like this.


🆘 Help & custom requests

  • 🐛 Something not working? Open an issue on this Actor's Issues tab.
  • 🛠️ Need a custom feature or a different data source? Open an issue describing what you need.

⚠️ Disclaimer: this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Lichess. All trademarks are the property of their respective owners. Only publicly available data is collected.