Fmdatalab APIfmdatalab.com ↗
Discover the top-rated Football Manager 2024 players across 117 different playable roles by accessing FMDataLab's comprehensive player ratings and role performance scores. Find the best-performing player for any specific position or role to optimize your team strategy.
curl -X GET 'https://api.parse.bot/scraper/c4503e1a-5944-419e-8ad8-57955edd82a6/get_top_role_scores?name=Messi&position=GK' \ -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 fmdatalab-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.
"""Walkthrough: FMDataLab SDK — bounded, re-runnable; every call capped."""
from parse_apis.fmdatalab_com_api import FMDataLab, ParseError
client = FMDataLab()
# List top-rated players across all roles, capped at 5
for player in client.players.list(limit=3):
print(player.name, player.role_code, player.role_score, player.club)
# Filter by position — only goalkeepers
for gk in client.players.list(position="GK", limit=3):
print(gk.name, gk.age, gk.role_score)
# Search by player name
item = client.players.list(name="Messi", limit=1).first()
if item:
print(item.name, item.position, item.role_score, item.club, item.nationality)
# Error handling around a fallible call
try:
results = client.players.list(position="ST", limit=2)
for striker in results:
print(striker.name, striker.role_code, striker.wage, striker.transfer_value)
except ParseError as e:
print(f"error: {e}")
print("exercised: players.list")
Returns the highest-scoring Football Manager 2024 player for each of 117 playable roles. Each entry includes the player's role score, biographical details, club, and transfer value from the start of an FM24 save. Results can be filtered by position code or player name substring.
| Param | Type | Description |
|---|---|---|
| name | string | Filter by player name substring (case-insensitive). Returns all roles where the matching player is the top-rated. |
| position | string | Filter by position code substring (e.g. 'GK', 'DM', 'ST'). Matches against the position field or role_code. |
{
"type": "object",
"fields": {
"total": "integer count of returned players",
"players": "array of player objects with role_code, name, uid, role_score, age, position, height, weight, club, division, nationality, wage, transfer_value"
},
"sample": {
"data": {
"total": 117,
"players": [
{
"age": 31,
"uid": "18026122",
"club": "R. Madrid",
"name": "Thibaut Courtois",
"wage": 250000,
"height": "200 cm",
"weight": "96 kg",
"division": "Spanish First Division",
"position": "GK",
"role_code": "gk_de",
"role_score": 16.18,
"nationality": "BEL",
"transfer_value": "Not for Sale"
},
{
"age": 36,
"uid": "7458500",
"club": "Inter Miami",
"name": "Lionel Messi",
"wage": 325000,
"height": "169 cm",
"weight": "67 kg",
"division": "Major League Soccer",
"position": "AM (RC), ST (C)",
"role_code": "tre_at_st",
"role_score": 17.59,
"nationality": "ARG (ESP)",
"transfer_value": "Not for Sale"
}
]
},
"status": "success"
}
}About the Fmdatalab API
The Fmdatalab API on Parse exposes 1 endpoint for the publicly available data on fmdatalab.com. Calls return JSON over HTTPS and are billed per successful response.
Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.