Discover/Transfermarkt API
live

Transfermarkt APItransfermarkt.com

Access Transfermarkt data via API: player profiles, transfer histories, market value timelines, club squads, performance stats, and referee info across 10 endpoints.

Endpoint health
verified 1d ago
get_club_squad
get_player_transfers
get_player_market_value_history
get_club_info
get_player_stats
10/10 passing latest checkself-healing
Endpoints
10
Updated
8d ago

What is the Transfermarkt API?

The Transfermarkt API exposes 10 endpoints covering football player profiles, transfer histories, market value timelines, club squad data, and referee career statistics. get_top_market_values returns ranked summaries for the 500 most valuable players worldwide — no parameters required. get_player_page_data consolidates profile, transfers, market value history, and current season performance into a single response, reducing round-trips for player-focused applications.

Try it

No input parameters required.

api.parse.bot/scraper/2409cb57-5fc7-4e67-b750-07a9a68d7c70/<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/2409cb57-5fc7-4e67-b750-07a9a68d7c70/get_top_market_values' \
  -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 transfermarkt-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.

"""Transfermarkt API — search players, explore profiles, transfers, and club squads."""
from parse_apis.Transfermarkt_API import Transfermarkt, NotFound

client = Transfermarkt()

# Search for players by name — limit caps total items fetched across pages
for player in client.player_summaries.search(query="Haaland", limit=3):
    print(player.name, player.position, player.market_value)

# Drill into first match's full profile via the details navigation
summary = client.player_summaries.search(query="Haaland", limit=1).first()
if summary:
    full = summary.details()
    print(full.name, full.position, full.height, full.preferred_foot)

# Walk a player's transfer history via sub-resource
player = client.player(id="418560")
for transfer in player.transfers.list(limit=5):
    print(transfer.from_club_name, "→", transfer.to_club_name, transfer.fee)

# Club squad — get club info then list squad members
club = client.clubs.get(id="281")
for sp in club.squad.list(limit=5):
    print(sp.name, sp.position, sp.market_value)

# Typed error handling
try:
    client.players.get(id="9999999999")
except NotFound as exc:
    print(f"Player not found: {exc}")

print("exercised: player_summaries.search / details / players.get / transfers.list / clubs.get / squad.list")
All endpoints · 10 totalmissing one? ·

Fetches the top 500 most valuable football players worldwide from Transfermarkt's ranking. Results are pre-sorted by descending market value. Internally paginates 20 pages of 25 players each, returning a complete ranked list in one call. Each player includes rank, name, position, age, nationality, current club, market value as display string (e.g. '€200.00m') and as integer euros. No input parameters required — always returns the full top-500 list. Useful for discovering player IDs for use with other endpoints.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "players": "array of player summary objects with id, rank, name, position, age, nationality, club_id, club, market_value, market_value_euros, portrait_url, profile_url",
    "total_players": "integer count of players returned (500)"
  }
}

About the Transfermarkt API

Player Data

get_player_profile returns personal attributes (date of birth, height, nationality, full legal name), current position, and a structured market_value object with current, previous, highest, and delta sub-fields, plus contract and club assignment details. Supply a numeric player_id string to any player endpoint. search_players accepts a query string for full-text or partial-name lookup and returns paginated results (10 per page) including club, position, age, and market_value per match. total_hits and total_pages are returned alongside results to support pagination via the page parameter.

Transfers and Market Value History

get_player_transfers returns the complete transfer log for a player: each entry includes from/to club info, fee, season, age_at_transfer, and market_value_at_transfer. A fee_sum field aggregates total fees across all moves. get_player_market_value_history returns all historical assessments as an array of entries with value, currency, date, and club_id at each point in time, plus a current_value object for the most recent assessment. This makes it straightforward to plot a player's valuation curve over their career.

Club and Squad Endpoints

get_club_info returns squad composition metrics including size, average_age, average_market_value, and total_market_value, alongside club metadata like crest_url, short_name, and club_url. get_club_squad returns a full player list with per-player shirt_number, contract_until, position, market_value, and portrait_url. Note that get_club_squad makes multiple internal calls to hydrate player-level details, so response times are longer than single-entity endpoints.

Performance Stats and Referee Data

get_player_stats returns per-competition breakdowns for the current season via a performance_data array with fields including gamesPlayed, goalsScored, assists, yellowCards, and redCards. The endpoint also attempts to return season_stats and career_totals from an alternate source, though those fields may be empty depending on page structure at the time of the request. get_referee_info covers referee career statistics with career_totals (appearances, cards, penalties) and a competition_stats array broken down by competition — a niche dataset not commonly available through other football data sources.

Reliability & maintenanceVerified

The Transfermarkt API is a managed, monitored endpoint for transfermarkt.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when transfermarkt.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 transfermarkt.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
1d ago
Latest check
10/10 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 player valuation dashboard using market_value_history entries to chart value over time per club
  • Populate a transfer news feed by polling get_player_transfers for recent fee and club movement data
  • Compare squad depth across clubs using get_club_info total_market_value and average_age fields
  • Power a player search autocomplete using search_players with partial name queries and total_hits for result counts
  • Generate referee performance reports using get_referee_info career_totals and per-competition card statistics
  • Build a season performance tracker using get_player_stats performance_data for goals, assists, and minutes by competition
  • Rank the top 500 players by market value using get_top_market_values without any query parameters
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Transfermarkt have an official public developer API?+
Transfermarkt does not offer a publicly documented developer API. Data access has historically required direct use of the website. This Parse API provides structured programmatic access to that data.
What does get_player_page_data return compared to calling individual endpoints separately?+
get_player_page_data bundles four data sets into one response: the full player profile (name, attributes, market value, club assignments), transfer history with fee sum, market value history with current value, and current season performance_data broken down by competition. It is equivalent to calling get_player_profile, get_player_transfers, get_player_market_value_history, and get_player_stats individually but with a single player_id input.
Are historical season statistics available, or only the current season?+
get_player_stats currently returns performance data for the current season only. The season_stats and career_totals fields may also be returned but are noted as potentially empty. Historical season-by-season breakdowns are not covered at this time. You can fork the API on Parse and revise it to add an endpoint targeting historical season data.
Does the API cover competition or league standings data?+
Not currently. The API covers player profiles, transfer history, market values, club squad composition, player performance stats, and referee statistics. Competition tables or league standings are not exposed by any endpoint. You can fork the API on Parse and revise it to add a standings or competition endpoint.
Is there any known limitation with get_player_stats?+
The season_stats and career_totals fields within get_player_stats may return empty arrays or objects if the underlying page structure changes. The performance_data array, sourced from a separate data path, is the more reliable field for per-competition stats. Applications should handle empty season_stats gracefully.
Page content last updated . Spec covers 10 endpoints from transfermarkt.com.
Related APIs in SportsSee all →
transfermarkt.de API
Access data from transfermarkt.de.
transfermarkt.it API
Access team market values and detailed player career statistics from Transfermarkt. Retrieve historical valuations across seasons, browse squad rosters, and pull per-season performance metrics — including goals, assists, cards, and minutes played — for any player.
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.
futbin.com API
Search and retrieve FIFA Ultimate Team player data including market prices, detailed statistics, and performance metrics. Analyze market trends and compare player values across the full EA FC player catalog.
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.
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.
footystats.org API
Get live football scores, team performance metrics, league standings, and head-to-head match statistics all in one place. Search teams and leagues to access detailed player stats, comprehensive analytics, and in-depth performance data across football competitions worldwide.
soccerstats.com API
Access comprehensive soccer statistics including live league tables, match details, team performance metrics, and form rankings across multiple football leagues. Search for specific teams and analyze their season statistics, head-to-head records, and competitive standings to stay informed on the latest soccer data.