FIDE APIratings.fide.com ↗
Access FIDE chess player ratings, top 100 rankings, and full player profiles including rating history and game statistics via a simple REST API.
What is the FIDE API?
The FIDE Ratings API exposes 3 endpoints covering player search, top-100 category rankings, and detailed player profiles from the official FIDE ratings database. Use get_top_players to pull ranked lists across categories like open, women, blitz, and rapid, or get_player_profile to retrieve a player's federation, title, rating history, game statistics, and opponent records by FIDE ID.
curl -X GET 'https://api.parse.bot/scraper/9565d770-db40-4e26-8563-4394e5d962cf/get_top_players?category=open' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ratings-fide-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.fide_ratings_api import Fide, Category, PlayerNotFound
fide = Fide()
# Search for players by name
for result in fide.players.search(query="Nakamura"):
print(result.name, result.federation, result.standard_rating, result.blitz_rating)
# Get full profile for a specific player
player = fide.players.get(fide_id="1503014")
print(player.name, player.std_rating, player.rapid_rating, player.blitz_rating)
for record in player.top_records:
print(record.period, record.position, record.rating)
# List top players in a category using the Category enum
for summary in fide.rankings.list(category=Category.WOMEN):
print(summary.rank, summary.name, summary.federation, summary.rating)
# Drill into full profile from summary
detail = summary.details()
print(detail.name, detail.fide_title, detail.federation)
break
Fetch the top 100 players list for a given category. Returns rank, name, FIDE ID, federation, rating, and birth year for each player. The category determines which ranking list is returned (e.g. open, women, juniors). Results are ordered by rank descending.
| Param | Type | Description |
|---|---|---|
| category | string | Ranking category. |
{
"type": "object",
"fields": {
"players": "array of player objects with rank, name, fide_id, federation, rating, and birth_year",
"category": "string indicating the requested ranking category"
},
"sample": {
"data": {
"players": [
{
"name": "Carlsen, Magnus",
"rank": 1,
"rating": 2841,
"fide_id": "1503014",
"birth_year": 1990,
"federation": "NOR"
},
{
"name": "Caruana, Fabiano",
"rank": 2,
"rating": 2792,
"fide_id": "2020009",
"birth_year": 1992,
"federation": "USA"
}
],
"category": "open"
},
"status": "success"
}
}About the FIDE API
Endpoints and Data Coverage
The API covers three core operations against the FIDE ratings database. search_players accepts a name string or FIDE ID and returns matching players with their standard_rating, rapid_rating, blitz_rating, fide_title, federation, and birth_year. This is the starting point when you have a player name but need their numeric fide_id to go further.
Top Player Rankings
get_top_players returns the ranked top 100 for a specified category. Supported categories include open, women, juniors, girls, men_rapid, women_rapid, and men_blitz. Each entry in the response carries rank, name, fide_id, federation, rating, and birth_year. This endpoint is useful for building leaderboards or monitoring rank movement across time controls.
Player Profiles
get_player_profile takes a fide_id and returns the most complete data available: fide_title, federation, sex, birth_year, a photo_url, a ranks object mapping each rank category to the year it was achieved, an opponents array with opponent IDs, names, and countries, and statistics covering wins, draws, and losses broken down by color and time control. This profile data is sufficient for building player analysis tools, historical comparisons, or federation tracking applications.
The FIDE API is a managed, monitored endpoint for ratings.fide.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ratings.fide.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ratings.fide.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a real-time world chess rankings tracker segmented by time control (classical, rapid, blitz)
- Look up any player's current standard, rapid, and blitz ratings by searching their name
- Display a player's full FIDE title history and top rank records using the
ranksfield fromget_player_profile - Analyze win/draw/loss statistics by color and time control for tournament preparation tools
- Map the federation distribution of top 100 players using
federationfields fromget_top_players - Build an opponent scouting tool using the
opponentsarray returned in a player's profile - Track junior and girls category rankings separately for youth chess development programs
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does FIDE provide an official developer API for ratings data?+
What does `get_player_profile` return beyond basic rating fields?+
standard_rating-equivalent profile data, it returns a ranks object (the player's top achieved rank per category and year), an opponents array listing players they have faced with IDs and countries, game statistics broken down by wins/draws/losses for each color and time control, a photo_url, and metadata like sex, fide_title, federation, and birth_year.Does the API return month-by-month rating history for a player?+
ranks object and current profile statistics, but not a time-series of monthly rating changes. You can fork this API on Parse and revise it to add an endpoint that returns the historical rating list data.What categories are supported by `get_top_players`, and does it cover inactive or historical lists?+
open, women, juniors, girls, men_rapid, women_rapid, and men_blitz. It returns the current active top-100 list for the requested category. Historical archived ranking lists from prior months or years are not currently covered. You can fork the API on Parse and revise it to add an endpoint targeting historical list data.How many results does `search_players` return, and can results be paginated?+
query string or FIDE ID, but pagination parameters are not currently exposed. For broad name searches that could match many players, results may be limited to the most relevant matches returned by the source. You can fork the API on Parse and revise it to add pagination or offset support.