Discover/Transfermarkt API
live

Transfermarkt APItransfermarkt.de

Access Transfermarkt data via API: player profiles, market values, transfer histories, club squads, and competition penalty stats across top European leagues.

Endpoint health
verified 2h ago
get_most_viewed_players
get_club_squad
search
get_competition_penalty_takers
get_player_transfers
6/6 passing latest checkself-healing
Endpoints
6
Updated
22d ago

What is the Transfermarkt API?

This API exposes 6 endpoints covering Transfermarkt's football data, including player market values, full transfer histories, and club squad rosters. The get_player_profile endpoint returns fields like marketValueDetails, contractUntil, preferredFoot, and clubAssignments for any player by numeric ID. The get_competition_penalty_takers endpoint adds per-player penalty scoring rates across major European competitions including the Premier League, Bundesliga, Serie A, and La Liga.

Try it
Search keyword — a player name or club name to search for.
api.parse.bot/scraper/f9c987bb-681c-471d-a7f7-342ac6c0016b/<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/f9c987bb-681c-471d-a7f7-342ac6c0016b/search?query=Messi' \
  -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-de-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.

from parse_apis.transfermarkt_api import Transfermarkt, CompetitionId, Search, Player, Club

transfermarkt = Transfermarkt()

# Search for players and clubs
results = transfermarkt.searches.find(query="Haaland")
for player in results.players:
    print(player.name, player.id)
for club in results.clubs:
    print(club.name, club.id)

# Get detailed profile for a player found in search
first_player = results.players[0]
profile = first_player.details()
print(profile.name, profile.life_dates.age)
print(profile.attributes.position.name)
print(profile.market_value_details.current.value, profile.market_value_details.current.currency)

# Get transfer history for that player
history = profile.transfers()
for transfer in history.terminated:
    print(transfer.id, transfer.details.date, transfer.transfer_source.club_id)

# Get trending players
for player in transfermarkt.players.most_viewed():
    print(player.name, player.life_dates.date_of_birth, player.attributes.height)

# Get a club's squad using constructible Club
bayern = transfermarkt.club(id="27")
for squad_player in bayern.squad(season="2024"):
    print(squad_player.name, squad_player.position, squad_player.market_value)

# Get penalty takers for Serie A using the enum
for taker in transfermarkt.penaltytakers.list(competition_id=CompetitionId.SERIE_A):
    print(taker.player_name, taker.club_name, taker.scored, taker.success_rate)
All endpoints · 6 totalmissing one? ·

Search for players and clubs by name on Transfermarkt. Returns matching players (with Transfermarkt IDs and names) and clubs (with IDs and names). Results are ranked by relevance. Use player IDs with get_player_profile or get_player_transfers; use club IDs with get_club_squad.

Input
ParamTypeDescription
queryrequiredstringSearch keyword — a player name or club name to search for.
Response
{
  "type": "object",
  "fields": {
    "clubs": "array of club search result objects each with name (string) and id (string)",
    "players": "array of player search result objects each with name (string) and id (string)"
  },
  "sample": {
    "data": {
      "clubs": [
        {
          "id": "1104",
          "name": "ACR Messina"
        }
      ],
      "players": [
        {
          "id": "28003",
          "name": "Lionel Messi"
        }
      ]
    },
    "status": "success"
  }
}

About the Transfermarkt API

Player Profiles and Market Values

The get_player_profile endpoint accepts a player_id string (e.g. '28003' for Messi) and returns a single player object. Key fields include marketValueDetails (current, previous, and highest recorded market values), attributes (height, position, preferredFoot, contractUntil), lifeDates (age and ISO date of birth), and clubAssignments (an array of objects with clubId, assignment type, and shirt number). The search endpoint lets you resolve player and club names to their Transfermarkt numeric IDs before calling profile or squad endpoints.

Transfer Histories and Squad Data

The get_player_transfers endpoint returns a player's complete transfer record. The history object contains terminated (completed) and pending transfer arrays, each entry including source and destination club IDs, competition context, and fee data. A mostRecentTransfer field is surfaced separately for quick access. The get_club_squad endpoint takes a club_id and an optional season (start year, e.g. '2024' for 2024/25) and returns each squad member's id, name, shirt number, position, age, nationality array, and market_value.

Competition and Trending Data

The get_competition_penalty_takers endpoint accepts competition IDs such as 'GB1' (Premier League), 'L1' (Bundesliga), 'IT1' (Serie A), or 'ES1' (La Liga) and returns per-player penalty statistics grouped by club — including penalties, scored, missed, and success_rate. Note that field values are in German locale format. The get_most_viewed_players endpoint requires no parameters and returns a snapshot of the top 10 currently trending players on Transfermarkt with full profile detail.

Reliability & maintenanceVerified

The Transfermarkt API is a managed, monitored endpoint for transfermarkt.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when transfermarkt.de 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.de 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
2h ago
Latest check
6/6 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
  • Track a player's market value history over time using marketValueDetails from get_player_profile
  • Build a transfer rumor monitor by polling get_player_transfers for changes in mostRecentTransfer
  • Assemble full squad rosters with ages and market values for any club and season via get_club_squad
  • Compare penalty conversion rates across clubs in the Bundesliga or Premier League using get_competition_penalty_takers
  • Resolve club and player names to Transfermarkt IDs in bulk using the search endpoint
  • Surface trending players for a football news or fantasy sports feed with get_most_viewed_players
  • Cross-reference contract expiry dates (contractUntil) with transfer windows to flag players approaching free agency
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 developer API?+
Transfermarkt does not publish an official public developer API. There is no documented REST or GraphQL API available at a developer portal as of mid-2025.
What does `get_player_transfers` return beyond basic transfer records?+
The endpoint returns the full history object split into terminated (completed) and pending sub-arrays, each entry including club IDs on both sides, competition context, and the transfer fee. A mostRecentTransfer object is also returned separately, and clubIds provides a deduplicated array of all clubs involved across the player's career.
Does the API cover youth, reserve, or women's football competitions?+
The get_competition_penalty_takers endpoint currently supports a specific set of top-tier European leagues identified by IDs like 'GB1', 'L1', 'IT1', and 'ES1'. Youth, reserve, and women's competitions are not currently exposed. You can fork this API on Parse and revise it to add endpoints targeting other competition IDs available on Transfermarkt.
Can I retrieve historical squad data for past seasons?+
Yes. The get_club_squad endpoint accepts an optional season parameter as a 4-digit start year (e.g. '2021' for the 2021/22 season). Omitting it returns the current season's squad.
Does the API expose player injury records or match appearance statistics?+
Not currently. The API covers market values, transfer histories, contract details, squad composition, and competition penalty stats. Injury timelines and per-season appearance statistics are not included in any endpoint. You can fork this API on Parse and revise it to add the missing endpoint targeting those data sections.
Page content last updated . Spec covers 6 endpoints from transfermarkt.de.
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.
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.
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.
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.
fussballdaten.de API
Find live soccer match schedules, scores, and team information across German leagues and Europe's top competitions, with the ability to filter by date, team, or league. Quickly look up upcoming fixtures, past results, and complete team schedules for Bundesliga, Premier League, La Liga, Serie A, Ligue 1, Champions League, and more.
flashscore.de API
Get match listings, match details and statistics, team rosters, and a German-language sports news feed from Flashscore.de, plus lineup data with player rating fields when available.
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.