Discover/fmplayer API
live

fmplayer APIfmplayer.net ↗

Access Football Manager player profiles, attributes, contracts, and best roles across FM 18–26 databases via the fmplayer.net API. Search, filter, and bulk-list players.

Endpoint health
verified 6d ago
search_players
get_player
list_players_bulk
find_player_page_count
4/4 passing latest checkself-healing
Endpoints
4
Updated
6d ago

What is the fmplayer API?

The fmplayer.net API exposes four endpoints covering Football Manager player data across nine game editions (FM 18 through FM 26). Use search_players to query the database by name fragment, nationality, age range, or ability thresholds and get back paginated rows of up to 50 players per page. Use get_player to pull a single player's full profile including every attribute group, contract details, best roles with scores, and similar player references.

This call costs3 credits / call— charged only on success
Try it
Player name fragment; the site matches it as a substring (e.g. one shape: a surname).
1-based result page; each page holds up to 50 rows.
Maximum current ability.
Minimum current ability (site scale, roughly 1-200).
Nationality name exactly as the site lists it (case-insensitive), e.g. one shape: Japan. Unknown names return a 422.
Maximum potential ability.
Minimum potential ability.
Maximum age in years.
Minimum age in years.
Column to sort by. Omitted = the site's default ordering (current ability descending).
Football Manager database edition to search.
Sort direction; only applied when sort_by is given.
Name of one player attribute to threshold on, as the site spells it (e.g. one shape: Pace). Unknown names return a 422. Combine with attribute_min and/or attribute_max.
Maximum transfer value in whole euros.
Minimum transfer value in whole euros.
Maximum value for `attribute` on the in-game 1-20 scale. Requires `attribute`.
Minimum value for `attribute` on the in-game 1-20 scale (the profile pages display the same attributes multiplied by 10). Requires `attribute`.
Comma-separated position codes (same code list as positions_any); a player must play ALL of them. Do not pass an array.
Comma-separated position codes; a player matches if he plays ANY of them. Codes: gk, dc, dr, dl, wbr, wbl, dm, mc, mr, ml, amc, amr, aml, st (e.g. gk,dc). Do not pass an array.
→ api.parse.bot/scraper/be792d47-ce5c-4019-826b-1cace8f01386/<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/be792d47-ce5c-4019-826b-1cace8f01386/search_players?name=saka&version=26' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 4 totalmissing one? ·

Searches the Football Manager player database of one game version and returns one page of up to 50 player summary rows (id, name, positions, club, age, nation, wage, contract expiry, value, current/potential ability). All filters are optional and combine with AND; omitting every filter lists the whole database sorted by current ability descending, the site's default. Pagination is by `page` (1-based, 50 rows per page, one upstream round trip plus one form-page load per call); `has_more`/`next_page` are derived from the site's own page-full signal, so the last page reports has_more=false. An unknown nation or attribute name yields a 422; numeric filter values the site rejects (e.g. an attribute threshold outside 1-20) also yield a 422. Zero matches is a valid empty `players` list.

Input
ParamTypeDescription
namestringPlayer name fragment; the site matches it as a substring (e.g. one shape: a surname).
pageinteger1-based result page; each page holds up to 50 rows.
ca_maxintegerMaximum current ability.
ca_minintegerMinimum current ability (site scale, roughly 1-200).
nationstringNationality name exactly as the site lists it (case-insensitive), e.g. one shape: Japan. Unknown names return a 422.
pa_maxintegerMaximum potential ability.
pa_minintegerMinimum potential ability.
age_maxintegerMaximum age in years.
age_minintegerMinimum age in years.
sort_bystringColumn to sort by. Omitted = the site's default ordering (current ability descending).
versionstringFootball Manager database edition to search.
sort_dirstringSort direction; only applied when sort_by is given.
attributestringName of one player attribute to threshold on, as the site spells it (e.g. one shape: Pace). Unknown names return a 422. Combine with attribute_min and/or attribute_max.
value_maxintegerMaximum transfer value in whole euros.
value_minintegerMinimum transfer value in whole euros.
attribute_maxintegerMaximum value for `attribute` on the in-game 1-20 scale. Requires `attribute`.
attribute_minintegerMinimum value for `attribute` on the in-game 1-20 scale (the profile pages display the same attributes multiplied by 10). Requires `attribute`.
positions_allstringComma-separated position codes (same code list as positions_any); a player must play ALL of them. Do not pass an array.
positions_anystringComma-separated position codes; a player matches if he plays ANY of them. Codes: gk, dc, dr, dl, wbr, wbl, dm, mc, mr, ml, amc, amr, aml, st (e.g. gk,dc). Do not pass an array.
Response
{
  "type": "object",
  "fields": {
    "page": "integer page number served",
    "count": "integer number of rows on this page",
    "players": "array of player summary rows: player_id (string, feeds get_player), name, positions (array of codes), club, club_id, age, nation, wage_short/wage_detail (yearly wage, abbreviated and full euro text), contract_expires/contract_expires_detail, value_short/value_detail (or 'Not sale'), current_ability, potential_ability, profile_url",
    "version": "game edition label the rows come from, e.g. FM 26",
    "has_more": "boolean, true when a further page exists",
    "next_page": "integer page to request next, or null on the last page",
    "page_size": "integer rows per page (50)"
  },
  "sample": {
    "data": {
      "page": 1,
      "count": 50,
      "players": [
        {
          "age": 23,
          "club": "Arsenal",
          "name": "Bukayo Saka",
          "nation": "England",
          "club_id": "602",
          "player_id": "28122642",
          "positions": [
            "AMR",
            "AML"
          ],
          "wage_short": "15M",
          "profile_url": "https://fmplayer.net/fm-26/bukayo-saka-28122642",
          "value_short": "170M",
          "wage_detail": "€ 15.080.000 p/y",
          "value_detail": "€ 169.545.610",
          "current_ability": 181,
          "contract_expires": "06-2027",
          "potential_ability": 188,
          "contract_expires_detail": "30 June 2027"
        }
      ],
      "version": "FM 26",
      "has_more": true,
      "next_page": 2,
      "page_size": 50
    },
    "status": "success"
  }
}

About the fmplayer API

What the API Covers

The fmplayer.net API surfaces player data from Football Manager databases across FM 18 through FM 26. Every endpoint accepts a version parameter that selects the game edition. The four endpoints divide into two query patterns: targeted search/profile lookup (search_players, get_player) and bulk enumeration (list_players_bulk, find_player_page_count).

Searching and Reading Profiles

search_players accepts up to eight optional filter parameters — name, nation, ca_min, ca_max, pa_min, pa_max, age_max, and page — and returns up to 50 player summary rows per page. Each row includes player_id, name, positions (array of position codes), club, club_id, age, nation, wage, contract expiry, value, and both current and potential ability. The has_more and next_page fields let you walk pages programmatically. get_player takes a player_id from those results and returns the complete profile: a contract object with fields for Club, Wage, Expire, and Release clause when present; a badges array of personality and hidden-attribute labels; attribute groups; and best roles with numeric scores.

Bulk Enumeration and Page Counting

list_players_bulk fetches multiple result pages concurrently and returns all collected rows in one response, ordered by current ability descending. A compact boolean flag trims each row to player_id, name, age, nation, positions, club, club_id, current_ability, and potential_ability. The ultra_compact mode returns rows as value arrays aligned to a columns list, useful for large datasets. The max_pages input (clamped at 100) and optional limit bound the response size; start_page and the returned next_page let you resume. find_player_page_count runs a binary search to determine the exact last_page and total_players for any filter combination without returning player rows. If the execution budget is exhausted before completion, complete is false and low_page/high_page bounds are returned so a follow-up call can resume the search.

Filtering and Pagination Notes

Nationality values passed to nation must match the site's own spelling exactly (case-insensitive); unrecognized values return empty results rather than an error. Ability scores follow the FM in-game scale of roughly 1–200. Pages are 1-based and each holds a maximum of 50 rows across all endpoints.

Reliability & maintenanceVerified

The fmplayer API is a managed, monitored endpoint for fmplayer.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fmplayer.net 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 fmplayer.net 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
6d ago
Latest check
4/4 endpoints 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
  • Build a scouting dashboard that filters players by ca_min, pa_min, age_max, and nation across FM editions
  • Populate a squad planner by bulk-fetching all players for a specific FM version with list_players_bulk
  • Compare a player's best-role scores and attribute groups between FM editions using get_player with different version values
  • Calculate the total player count for a filtered ability range before committing to a full bulk fetch using find_player_page_count
  • Surface contract details — wage, expiry, and release clause — to identify out-of-contract or affordable targets
  • Generate 'similar players' lists by reading the comparable player references returned in a full profile from get_player
  • Export a compact ranked list of all players in a given FM edition sorted by current ability for spreadsheet analysis
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 fmplayer.net have an official developer API?+
No. fmplayer.net does not publish an official developer API or documented public endpoints for third-party use.
What does `get_player` return beyond what `search_players` provides?+
get_player returns the full attribute breakdown across all attribute groups, best roles with numeric scores, a badges array for personality and hidden attributes, and a complete contract object that includes the release clause when one is set — none of which appear in the summary rows from search_players.
Can I retrieve club rosters or filter players by club name?+
search_players and list_players_bulk do not currently accept a club name as a filter parameter. You can retrieve a player's current club from summary rows (club, club_id fields) and from the contract object in get_player. You can fork this API on Parse and revise it to add a club-based filter endpoint.
Does the API cover real-world player stats, match performance, or FIFA/EA FC data?+
No. The API covers only Football Manager database records — CA, PA, attributes, contracts, and best roles — across FM 18 through FM 26. Real-world match performance figures and data from other game series are not included. You can fork this API on Parse and revise it to add endpoints pointing at a different data source.
What happens if `find_player_page_count` runs out of time before finishing?+
When the execution budget is exhausted, the endpoint returns complete: false along with low_page and high_page bounds from the binary search so far. Pass those two values back as inputs on a follow-up call to resume from where it stopped. Once complete is true, last_page and total_players hold the exact figures.
Page content last updated . Spec covers 4 endpoints from fmplayer.net.
Related APIs in SportsSee all →
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.
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.
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.
transfermarkt.de API
Access data from transfermarkt.de.
fut.gg API
Search and browse EA SPORTS FC 27 Ultimate Team player cards sorted by rating, with real-time market prices for PlayStation or PC platforms. Build your squad with up-to-date player stats and pricing information directly from the FUT.GG database.
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.com.br API
Access comprehensive football data including club squads, player profiles, statistics, and agency information to research teams, analyze player performance, and find representation details. Get detailed club information, player page data, and search for agencies all in one place.
fotmob.com API
Get live football scores, detailed match results, and comprehensive league statistics across multiple competitions. Access player and team performance data, browse upcoming fixtures by date, and dive into in-depth analytics for your favorite leagues and matches.