Transfermarkt APItransfermarkt.com.br ↗
Access Transfermarkt football data via API: club squads, player profiles, transfer history, market values, agency details, and expiring contracts across all major leagues.
What is the Transfermarkt API?
This API exposes 13 endpoints covering Transfermarkt football data — club squads, player profiles, transfer histories, market value timelines, agency rosters, and more. The get_player_transfers endpoint returns every recorded move for a player including fee, loan flag, and market value at the time of transfer, while get_competition_clubs lets you pull every team in a league for a given season and feed those club IDs directly into squad or info lookups.
curl -X GET 'https://api.parse.bot/scraper/0a840674-d0ba-46cf-b2dd-071bdabe2143/get_club_squad?club_id=131&season_id=2024' \ -H 'X-API-Key: $PARSE_API_KEY'
Get the squad roster for a club in a given season. Returns all players with their names, IDs, shirt numbers, positions, nationalities, and market values. Contract expiry dates are included when available in the squad table. Each request fetches one club-season page.
| Param | Type | Description |
|---|---|---|
| club_idrequired | string | Numeric Transfermarkt club ID (e.g. 131 for FC Barcelona). |
| season_id | string | Season start year in YYYY format (e.g. 2024 for the 2024/25 season). Omitting defaults to 2024. |
{
"type": "object",
"fields": {
"season": "string",
"club_id": "string",
"players": "array of player objects with name, player_id, number, position, nationality, market_value, and contract_until when available",
"club_name": "string",
"squad_size": "integer — number of players in squad"
},
"sample": {
"data": {
"season": "2024",
"club_id": "131",
"players": [
{
"name": "Marc ter Stegen",
"number": "1",
"position": "Goalkeeper",
"player_id": "74857",
"nationality": [
"Germany"
],
"market_value": "€12.00m"
}
],
"club_name": "FC Barcelona",
"squad_size": 39
},
"status": "success"
}
}About the Transfermarkt API
Club and Squad Data
The get_club_squad endpoint accepts a club_id and optional season_id (YYYY format) and returns the full squad roster for that season — player names, IDs, shirt numbers, positions, nationalities, market values, and contract expiry dates where available. get_club_info returns club-level summary data including league, stadium, average age, squad size, foreigners count, net transfer record, and total squad market value. get_competition_clubs retrieves all clubs in a given competition by competition_id (e.g. GB1 for the Premier League, ES1 for LaLiga) and resolves each club's club_id for chaining into further lookups.
Player Profiles, Stats, and Valuations
get_player_profile returns personal details, position, preferred foot, height, citizenship, current club ID, and agent ID for any player by numeric player_id. get_player_page_data extends the profile with shirt number and current-season performance summary. get_player_stats provides a full season-by-season breakdown of appearances, goals, assists, and minutes played across all competitions, plus career totals. get_player_market_value_history returns the complete chronological market value record with formatted and raw numeric values (in euros), the club at each data point, and player age. get_player_transfers covers every recorded transfer with ISO-format dates, origin/destination clubs, fees, market value at time of transfer, and a boolean is_loan flag.
Agencies and Free Agents
get_agency returns the full client list of a player agency by agency_id, including each represented player's position, age, nationality, current club, and market value. search_agencies provides a paginated, filterable directory of agencies sorted by total market value — 25 per page — with optional country_id filtering. get_unattached_players returns a paginated list of free agents (50 per page), filterable by nationality (country_id) and last competition (competition_id), with last club, contract end date, and current market value.
Contract Expiry and Player Search
get_expiring_contracts returns players in a specified competition whose contracts are nearing expiry, sorted by market value — useful for scouting windows. search_players accepts a name query and returns up to 10 matching players with IDs, clubs, positions, nationalities, ages, and market values, making it the entry point for resolving a player name to a numeric player_id.
The Transfermarkt API is a managed, monitored endpoint for transfermarkt.com.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when transfermarkt.com.br 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.br 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track squad composition changes season-over-season for any club using get_club_squad with historical season_id values
- Build a free-agent monitoring tool by polling get_unattached_players filtered by competition_id and country_id
- Map a player's career arc by combining get_player_transfers (fees, clubs, loan flags) with get_player_market_value_history (value at each point)
- Identify contract-expiry targets for a specific league using get_expiring_contracts with a competition code
- Aggregate total squad market value across all clubs in a league by chaining get_competition_clubs into get_club_info
- Build an agency analysis tool showing total represented value and player roster using get_agency and search_agencies
- Resolve player names to IDs for downstream lookups using search_players before calling get_player_stats or get_player_profile
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.