Discover/FMDataLab API
live

FMDataLab APIfmdatalab.com

Access Football Manager 2024 top-rated players across 117 playable roles. Filter by position code or player name via the FMDataLab API.

This API takes change requests — .
Endpoint health
verified 2d ago
get_top_role_scores
1/1 passing latest checkself-healing
Endpoints
1
Updated
16d ago

What is the FMDataLab API?

The FMDataLab API exposes Football Manager 2024 player ratings across all 117 playable roles through a single endpoint, get_top_role_scores. Each response includes role scores, biographical details, club, division, nationality, wage, and transfer value drawn from the start of an FM24 save. You can narrow results by position code or player name substring to quickly find the top-rated player for any given role.

This call costs2 credits / call— charged only on success
Try it
Filter by player name substring (case-insensitive). Returns all roles where the matching player is the top-rated.
Filter by position code substring (e.g. 'GK', 'DM', 'ST'). Matches against the position field or role_code.
api.parse.bot/scraper/c4503e1a-5944-419e-8ad8-57955edd82a6/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

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")
All endpoints · 1 totalmissing one? ·

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.

Input
ParamTypeDescription
namestringFilter by player name substring (case-insensitive). Returns all roles where the matching player is the top-rated.
positionstringFilter by position code substring (e.g. 'GK', 'DM', 'ST'). Matches against the position field or role_code.
Response
{
  "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

What the API Returns

The get_top_role_scores endpoint returns an array of player objects — one per role — each representing the highest-scoring Football Manager 2024 player for that role. The response includes a total count and a players array. Each player object carries fields for role_code, name, uid, role_score, age, position, height, weight, club, division, nationality, wage, and transfer value (t prefix field), all sourced from the opening state of an FM24 save.

Filtering

Two optional query parameters let you slice the full 117-role dataset. Pass a name substring (case-insensitive) to retrieve every role where a specific player ranks first — useful when you want to see the breadth of roles a single player dominates. Pass a position substring such as GK, DM, or ST to filter by position code or role_code, which narrows results to a positional group.

Data Scope and Freshness

The dataset reflects Football Manager 2024 specifically and covers the initial state of a new save — not mid-season updates or real-world transfers after the game's database snapshot. The 117 roles map to FM24's full set of playable tactical roles. Each record's role_score is a numeric rating indicating how well a player's attributes suit that particular role, making it directly comparable across players within the same role.

Reliability & maintenanceVerified

The FMDataLab API is a managed, monitored endpoint for fmdatalab.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fmdatalab.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 fmdatalab.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.

Last verified
2d ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Identify the best-rated goalkeeper across all GK roles at the start of an FM24 save using the position filter.
  • Look up all roles where a named player (e.g. a specific striker) ranks first by filtering on the name parameter.
  • Compare role_score values across defensive midfield roles to shortlist DM candidates by club or division.
  • Build a scouting dashboard that displays top players per role alongside their wage and transfer value fields.
  • Cross-reference nationality and division fields to find top-rated players within a specific league or country.
  • Generate a ranked list of the highest role_score entries across all 117 roles for FM24 meta analysis.
  • Filter by attacking position codes to produce a shortlist of forwards sorted by role score for team-building tools.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does FMDataLab have an official developer API?+
FMDataLab does not publish an official developer API. The data on fmdatalab.com is presented as a public dataset rather than a documented programmatic interface.
What does the `role_code` field represent and how does it relate to the `position` filter?+
The role_code identifies the specific FM24 tactical role (e.g. a particular variant of a central midfielder role), while position is a broader positional category. The position query parameter matches against both fields, so filtering on 'DM' can surface role codes that belong to the defensive midfield positional group.
Does the API cover FM25 or earlier Football Manager editions?+
Not currently. The API covers Football Manager 2024 data only, reflecting the start-of-save database for that edition. You can fork it on Parse and revise it to add coverage for other FM editions.
Does the API return more than one player per role, or allow pagination through lower-ranked players?+
The API returns only the single top-scoring player per role — 117 entries maximum across the full dataset. There is no pagination or ranked list beyond the first-place player for each role. You can fork it on Parse and revise it to expose additional ranked entries per role.
Is the transfer value data in the response a real-world figure or in-game FM24 valuation?+
The transfer value is an in-game FM24 valuation from the start of a new save. It reflects the game's internal database, not real-world market prices or post-release transfer activity.
Page content last updated . Spec covers 1 endpoint from fmdatalab.com.
Related APIs in SportsSee all →
fminside.net API
Search and explore the Football Manager player database to find detailed profiles, stats, and information about individual players. Quickly look up players by ID or browse through the complete player catalog to discover talent, compare performance metrics, and research squad options.
playerelo.football API
playerelo.football API
ratings.fide.com API
Find chess players and track their FIDE ratings, rankings, and performance history by searching the official ratings database or browsing the world's top-ranked players. Get detailed player profiles with complete rating trends and game statistics to analyze any player's competitive record.
football-data.org API
Get live match scores, team standings, and player statistics across football competitions worldwide. Search for teams, view head-to-head matchups, track top scorers, and explore detailed information about competitions and geographical areas.
transfermarkt.com API
Search Transfermarkt for football players and retrieve detailed player profiles, transfer histories, market value timelines, performance stats, and club squad/club information.
whoscored.com API
Search for players and teams, then dive deep into their performance metrics, match statistics, and detailed passing data to analyze football games and player abilities. Get comprehensive insights on team performance, individual player stats, and play-by-play event information to power your football analysis and decision-making.
futwiz.com API
Search for EA FC 26 Ultimate Team players and instantly access their complete stats, current market prices, card images, and playstyles. Find exactly the players you need to build your squad with detailed information all in one place.
transfermarkt.de API
Access data from transfermarkt.de.