# FIDE Ratings API

> FIDE Ratings provides published chess ratings for standard, rapid, and blitz play as a tool and API.

FIDE Ratings returns a player’s published standard, rapid, and blitz Elo ratings using a full name, FIDE ID, or profile link.

- Page: https://fous.com/tools/fide-ratings
- Handle: `@fide-ratings`
- Category: [Sports](https://fous.com/tools/category/sports)
- Source website: https://ratings.fide.com
- Last verified: Oct 8, 2026

## Methods

### Get player ratings

Operation `get_player_ratings`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a chess player's current published standard/classical, rapid and blitz Elo from their official FIDE profile using a full player name, FIDE ID or official profile link. Names must match the complete official name (either surname-first or given-name-first); ambiguous names require a FIDE ID. Unmatched names return null fields. Unpublished ratings are null. The rating list month is the latest monthly history row, represented by the first day of that month, or null when no row is shown. These are published FIDE ratings, not live ratings.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `player` | string | yes | `"1503014"` | Full player name, FIDE ID, or official FIDE profile link. Examples: Magnus Carlsen, 1503014, or https://ratings.fide.com/profile/1503014. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "player"
  ],
  "properties": {
    "player": {
      "type": "string",
      "description": "Full player name, FIDE ID, or official FIDE profile link. Examples: Magnus Carlsen, 1503014, or https://ratings.fide.com/profile/1503014.",
      "examples": [
        "1503014",
        "https://ratings.fide.com/profile/1503014",
        "Hou Yifan"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "player": "1503014"
    },
    {
      "player": "https://ratings.fide.com/profile/1503014"
    },
    {
      "player": "Hou Yifan"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `fide_id` | string or null | `"1503014"` |  |
| `blitz_elo` | integer or null | `2860` |  |
| `rapid_elo` | integer or null | `2801` |  |
| `player_name` | string or null | `"Carlsen, Magnus"` |  |
| `profile_url` | string or null | `"https://ratings.fide.com/profile/1503014"` |  |
| `standard_elo` | integer or null | `2823` |  |
| `rating_list_month` | string or null | `"2026-10-01"` | First day of the newest month shown in the official monthly history, or null. |

**Example input**

```json
{
  "player": "1503014"
}
```

**Example output**

```json
{
  "fide_id": "1503014",
  "blitz_elo": 2860,
  "rapid_elo": 2801,
  "player_name": "Carlsen, Magnus",
  "profile_url": "https://ratings.fide.com/profile/1503014",
  "standard_elo": 2823,
  "rating_list_month": "2026-10-01"
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@fide-ratings",
  "visibility": "public",
  "operation": "get_player_ratings",
  "version": 1,
  "input": {
    "player": "1503014"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@fide-ratings\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_player_ratings\",\n  \"version\": 1,\n  \"input\": {\n    \"player\": \"1503014\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@fide-ratings",
  "visibility": "public",
  "operation": "get_player_ratings",
  "version": 1,
  "input": {
    "player": "1503014"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/fide-ratings`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_player_ratings`: Get player ratings. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-fide-ratings https://api.fous.com/mcp/tools/fide-ratings --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare players’ published ratings across time controls
- Track standard, rapid, and blitz ratings
- Look up a player’s FIDE rating profile

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this FIDE Ratings tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a FIDE Ratings account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from ratings.fide.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Oct 8, 2026.

### What are a player’s current standard, rapid, and blitz ratings?

Get player ratings returns the player’s published ratings in all three time controls.

### What do I need to look up a player’s ratings?

Get player ratings accepts a full official name, FIDE ID, or official profile link. Ambiguous names require a FIDE ID.

## Related

- [Chess.com API](https://fous.com/tools/chess-com.md): Chess.com returns public player profiles, ratings, records, puzzle scores, top-player rankings, and completed public games for a selected month, defaulting to the current UTC month.
- [NHL API](https://fous.com/tools/nhl.md): NHL provides games, schedules, and scores when published, standings by date, and player profiles with regular-season stats; dates outside a season have no teams, and unavailable stats are null.
- [ESPN API](https://fous.com/tools/espn.md): ESPN provides daily scores and schedules, team results, player statistics, matchup summaries, and latest topic-specific headlines; coverage and published details vary, especially for college and soccer.
- [MLB API](https://fous.com/tools/mlb.md): MLB provides scores, schedules and game details for one date or up to seven days, regular-season division standings defaulting to the current year, and player profiles with regular-season stats for a selected season and career.
- [Premier League API](https://fous.com/tools/premier-league.md): Premier League provides current/chosen-season tables and recent form, date-range fixtures/results (up to 380), player profiles and stats, and seasonal leaders; older-season stats may be limited.
- [NBA API](https://fous.com/tools/nba.md): NBA provides up-to-seven-day schedules and scores, seasonal standings, player bios and available regular-season averages, plus matchup box scores, with undated matchups showing the latest.
- [Yahoo Sports API](https://fous.com/tools/yahoo-sports.md): Yahoo Sports returns date-based scores and schedules, seasonal standings, and player regular-season and career stats when Yahoo provides them; unavailable data may be missing.
- [Cricbuzz API](https://fous.com/tools/cricbuzz.md): Cricbuzz provides cricket scores limited to current listings, full scorecards for selected or most recent matches including live play, and player profiles, current ICC rankings, and career statistics.
- [All Sports tools](https://fous.com/tools/category/sports)
