Transfermarkt Scraper avatar

Transfermarkt Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Transfermarkt Scraper

Transfermarkt Scraper

⚽ Scrape Transfermarkt football data without an API: player market values, club squads, season stats & full transfers by player, club or competition. Search by name or URL, export to JSON, CSV or Excel. Ideal for scouting, analytics & fantasy football.

Pricing

from $1.00 / 1,000 results

Rating

4.0

(1)

Developer

Data Xplorer

Data Xplorer

Maintained by Community

Actor stats

4

Bookmarked

182

Total users

15

Monthly active users

0.92 hours

Issues response

15 days ago

Last modified

Share

⚽ Transfermarkt Scraper - Football Data, Player Market Values, Stats & Transfers

Get structured football data from Transfermarkt without an API key. This Transfermarkt Scraper extracts player market values, club squads, season statistics, and the full transfer market (by player, club, or competition) into clean JSON, CSV, or Excel, ready for scouting, analytics, betting models, fantasy football, journalism, and academic research.

Whether you need soccer transfer data, player valuations, squad and staff information, or league-wide transfer monitoring, this tool collects and structures everything in one run: no scraping infrastructure, no proxies, no maintenance on your side.

Transfermarkt Scraper

🎯 What can you use the Transfermarkt Scraper for?

  • 🔍 Player scouting & recruitment: compare market values, contracts, and season stats across leagues
  • 📈 Football analytics & data science: build datasets of goals, assists, minutes played, and valuations
  • 💸 Transfer market monitoring: track arrivals, departures, fees, and loan deals per club or per competition
  • 🎰 Betting & prediction models: feed clean player and team data into your models
  • 🏆 Fantasy football tools: enrich your app with live squads, positions, and market values
  • 📰 Sports journalism & content: pull transfer histories and trophy cabinets in seconds
  • 🎓 Academic & research projects: export reproducible football datasets
  • 🤖 AI agents & LLM workflows: provide real football data to your agents via MCP

💎 Why choose this Transfermarkt Scraper?

  • 🎯 Flexible input: scrape by name ("Kylian Mbappé", "Ligue 1") or by direct Transfermarkt URL
  • 🚀 Batch processing: up to 50 items per run
  • 🌐 Broad coverage: works across the leagues and countries supported by Transfermarkt
  • 📊 Rich player profiles: market value, contract details, trophies, transfer history
  • 📈 Multi-season stats: last 4 seasons by default (current + 3 previous) with per-competition breakdowns, or pick a specific season
  • 🏆 Complete transfer history: full career transfers via Transfermarkt's internal endpoints
  • 🏟️ Deep club data: league info, trophies, total market value, squad & staff
  • 🔄 3 transfer modes: player career, club season, and competition-wide transfers
  • 🧹 Clean, export-ready data: JSON, CSV, Excel, HTML table, or API

🔮 5 scrape types available

Scrape TypeInputWhat You Get
PlayersName or profile URLFull player profile, stats, transfers, trophies
ClubsName or profile URLClub details, squad, staff, trophies
Transfers: PlayerName or URLComplete career transfer history for a player
Transfers: ClubName or URLAll arrivals & departures for a club (current season)
Transfers: CompetitionName or URLAll transfers across every club in a league

Input flexibility

Each scrape type accepts names or URLs:

  • 🔤 Name search: "Timothy Weah", "Paris Saint-Germain", "Ligue 1"
  • 🔗 Direct transfers URL: https://www.transfermarkt.com/timothy-weah/transfers/spieler/370846
  • 🔗 Profile URL (auto-converted): https://www.transfermarkt.com/kylian-mbappe/profil/spieler/342229

📋 Quick start

  1. Click Try for free / open the Actor in Apify Console.
  2. Pick a scrape type (players, clubs, or one of the 3 transfer modes).
  3. Add names or Transfermarkt URLs to the items list.
  4. (Optional) Adjust player statistics range or proxy settings.
  5. Click Start and download your data as JSON, CSV, or Excel.

Input parameters

ParameterTypeDefaultDescription
scrapeTypestringplayersWhat to scrape: players, clubs, transfersPlayer, transfersClub, or transfersCompetition
itemsarray[]List of names or Transfermarkt URLs (max 50)
proxyConfigurationobject{useApifyProxy: true}Proxy configuration (datacenter recommended for best speed & success rate)
playersWithoutStatisticsbooleanfalsePlayers only. If true, fetches profile information only (no seasonal statistics).
playerStatsSelectionstring"last_4"Players only. "last_4" (current + 3 previous) or a start year: "2025", "2024", "2023", "2022", "2021", "2020".

Input examples

Players by name:

{
"scrapeType": "players",
"items": [
"Lionel Messi",
"https://www.transfermarkt.com/kylian-mbappe/profil/spieler/342229",
"Cristiano Ronaldo"
],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Players, specific season only:

{
"scrapeType": "players",
"items": ["Ousmane Dembélé"],
"playerStatsSelection": "2024"
}

Players, without statistics (faster):

{
"scrapeType": "players",
"items": ["Kylian Mbappé", "Harry Kane"],
"playersWithoutStatistics": true
}

Player transfer history by name:

{
"scrapeType": "transfersPlayer",
"items": ["Timothy Weah", "Kylian Mbappé"]
}

Club transfers by name:

{
"scrapeType": "transfersClub",
"items": ["Paris Saint-Germain", "FC Barcelona"]
}

Competition transfers by name:

{
"scrapeType": "transfersCompetition",
"items": ["Ligue 1", "Premier League"]
}

✨ Output data

🏃 Player data structure

FieldDescription
Player NamePlayer name
Jersey NumberCurrent jersey number
ClubCurrent club of the player
LeagueLeague information including name, country, and division
Market ValueCurrent market value with currency
Arrival DateDate when player joined current club
Contract EndContract expiration date
Transfer HistoryComplete history of all player transfers
TrophiesList of trophies won by the player
Player DetailsAge, nationality, position, foot, height, etc.
Player StatsPerformance statistics for current and 3 previous seasons, organized by competition
URLTransfermarkt profile URL

🏟️ Club data structure

FieldDescription
Club NameOfficial name of the club
LeagueName, country, division, table position, and tenure
Total Market ValueCurrent total market value of the squad with currency
TrophiesList of trophies won by the club with counts
Club DetailsStadium, founding date, members, etc.
StaffManager, assistants, and specialists
SquadComplete list of current players with detailed information
Top ArrivalsRecent significant player arrivals with transfer details
Top DeparturesRecent significant player departures with transfer details
URLTransfermarkt club URL

👤 Transfers: Player data structure

FieldDescription
Player NameFull player name
Player IDTransfermarkt player ID
Player URLLink to player profile
TransfersCareer transfer history with season, date, clubs, fees, market values
Total FeesSum of all transfer fees across career
Source URLTransfermarkt transfers page URL

🏟️ Transfers: Club data structure

FieldDescription
Club NameOfficial name of the club
SeasonTransfer window season (e.g., 2025/26)
ArrivalsIncoming transfers with player details, fees, and origin clubs
DeparturesOutgoing transfers with player details, fees, and destination clubs
SummaryTotals: arrival/departure counts, expenditure, income, transfer record
Source URLTransfermarkt transfers page URL

🏆 Transfers: Competition data structure

FieldDescription
Competition NameLeague or competition name
Competition CodeTransfermarkt competition code (e.g., FR1, GB1)
SeasonTransfer window season
Total ClubsNumber of clubs in the competition
Total Arrivals / DeparturesAggregate transfer counts
ClubsPer-club breakdown of all arrivals and departures
Source URLTransfermarkt transfers page URL

Output example: Player

{
"playerName": "Ousmane Dembélé",
"jerseyNumber": "10",
"currentClub": "Paris Saint-Germain",
"playerLeague": {
"name": "Ligue 1",
"country": "France",
"division": "First Tier"
},
"marketValue": "100.00M€",
"arrivalDate": "2023-08-12",
"contractEnd": "2028-06-30",
"transferHistory": [
{
"season": "23/24",
"date": "2023-08-12",
"left": "FC Barcelona",
"joined": "Paris Saint-Germain",
"market_value": "€60.00m",
"fee": "free transfer"
}
],
"trophies": [
{ "trophy": "World Cup winner", "count": "1" },
{ "trophy": "French Champion", "count": "2" }
],
"playerDetails": {
"Date of birth": "1997-05-15",
"Age": "28",
"Citizenship": "France",
"Position": "Right Winger",
"Foot": "left",
"Height": "1,78m"
},
"playerStats": [
{
"season": "2025/26",
"stats": [
{
"competition": "Ligue 1",
"appearances": "19",
"goals": "10",
"assists": "6",
"minutes_played": "931"
}
]
}
],
"profileUrl": "https://www.transfermarkt.com/ousmane-dembele/profil/spieler/288230"
}

Output example: Club

{
"clubName": "FC Barcelona",
"clubUrl": "https://www.transfermarkt.com/fc-barcelona/startseite/verein/131",
"clubLeague": {
"name": "LaLiga",
"country": "Spain",
"division": "First Tier",
"tablePosition": "2nd",
"inLeagueSince": "1929"
},
"totalMarketValue": "€937.50m",
"clubTrophies": [
{ "name": "Champions League", "count": "5" },
{ "name": "LaLiga", "count": "27" }
],
"clubDetails": {
"Full name": "Futbol Club Barcelona",
"Founded": "Nov 29, 1899",
"Stadium": "Spotify Camp Nou"
},
"staff": [
{
"name": "Hansi Flick",
"position": "Manager",
"age": "59",
"nationality": ["Germany"],
"appointed": "Jul 1, 2024"
}
],
"topArrivals": [
{
"playerName": "Dani Olmo",
"playerPosition": "Attacking Midfield",
"fromClub": "RB Leipzig",
"fee": "€55.00m"
}
],
"clubSquad": [
{
"number": "10",
"name": "Lamine Yamal",
"position": "Attack",
"specificPosition": "Right Winger",
"age": "17",
"nationalities": ["Spain", "Morocco"],
"contract": "Jun 30, 2026",
"marketValue": "€120.00m"
}
]
}

Output example: Transfers Player

{
"ptPlayerName": "Timothy Weah",
"ptPlayerId": "370846",
"ptPlayerUrl": "https://www.transfermarkt.com/timothy-weah/profil/spieler/370846",
"ptTransfers": [
{
"season": "25/26",
"date": "2025-08-06",
"isUpcoming": false,
"leftClub": "Juventus",
"joinedClub": "Marseille",
"marketValue": "€17.00m",
"fee": "Loan fee: €1.00m",
"transferType": "loan"
}
],
"ptTotalFees": "€36.40m",
"ptSourceUrl": "https://www.transfermarkt.com/timothy-weah/transfers/spieler/370846"
}

Output example: Transfers Club

{
"ctClubName": "Paris Saint-Germain",
"ctSeason": "2025/26",
"ctArrivals": [
{
"playerName": "Khvicha Kvaratskhelia",
"age": "24",
"nationalities": ["Georgia"],
"position": "Left Winger",
"marketValue": "€75.00m",
"fee": "€70.00m",
"fromClub": "SSC Napoli",
"fromClubCountry": "Italy"
}
],
"ctDepartures": [
{
"playerName": "Randal Kolo Muani",
"age": "26",
"nationalities": ["France"],
"position": "Centre-Forward",
"marketValue": "€40.00m",
"fee": "Loan fee: €3.00m",
"toClub": "Juventus",
"toClubCountry": "Italy"
}
],
"ctSummary": {
"arrivalsCount": 5,
"departuresCount": 8,
"expenditure": "€120.00m",
"income": "€45.00m",
"transferRecord": "-€75.00m"
},
"ctSourceUrl": "https://www.transfermarkt.com/paris-saint-germain/transfers/verein/583/saison_id/2025"
}

Output example: Transfers Competition

{
"competitionName": "Ligue 1",
"competitionCode": "FR1",
"competitionSeason": "25/26",
"totalClubs": 18,
"totalArrivals": 156,
"totalDepartures": 142,
"clubs": [
{
"clubName": "Paris Saint-Germain",
"arrivals": ["..."],
"departures": ["..."]
}
],
"competitionSourceUrl": "https://www.transfermarkt.com/ligue-1/transfers/wettbewerb/FR1/plus/"
}

🎥 How to use the Transfermarkt Scraper

Add your own walkthrough video here (a simple Loom recording of setting up and running the Actor works great and boosts discoverability).

New to Apify? These short official guides help you get the most out of any Actor:


🔗 Integrations

Connect this scraper to your favorite tools or LLM and automate your football data workflows:


Need more data sources for your projects? Check out our other fast, reliable scrapers:


❓ Frequently asked questions (FAQ)

Does Transfermarkt have an official API?

Transfermarkt does not offer a public, documented API for player valuations, squads, and transfers. This Actor gives you the same data in clean, structured JSON, CSV, or Excel, without dealing with rate limits, tokens, or undocumented endpoints.

Why use this scraper instead of building my own Transfermarkt API?

Doing it yourself means handling anti-bot protection, rotating proxies, HTML changes, retries, and scaling. This Actor manages all of that for you: you send names or URLs and get reliable, ready-to-use data. It also covers data points (squads, staff, trophies, per-competition stats, competition-wide transfers) that aren't easily available anywhere else.

How do I get football player market values?

Choose the Players scrape type and add player names or profile URLs. Each result includes the current marketValue, contract end date, and full transfer history with historical values.

Can I track the entire transfer market for a league?

Yes. Use the Transfers: Competition type with a league name (e.g., "Premier League") or its Transfermarkt URL to get every arrival and departure for every club in that competition.

Can I monitor transfers automatically?

Yes. Use the Apify Scheduler to run the Actor daily or hourly and pipe new results to your database, Google Sheets, or a webhook. This is ideal for transfer-window monitoring and alerting.

How much football data can I scrape at once?

Up to 50 items per run. For larger jobs, split inputs across scheduled runs or multiple runs.

What export formats are supported?

JSON, CSV, Excel, HTML table, RSS, and direct access via the Apify API, so you can plug the data into BI tools, notebooks, or apps.

Scraping publicly available data is generally permitted in many jurisdictions, but you are responsible for complying with Transfermarkt's terms, applicable laws (including copyright and data protection), and for using the data ethically. Do not collect personal data unlawfully.

What are the best alternatives for football data?

Depending on your use case you might combine Transfermarkt data (valuations, transfers, squads) with match statistics, live scores, or news and trends. See the Related Actors section above to build a complete pipeline.


🤝 Support & resources

Need help or have a feature request? Open an issue on the Actor's Issues tab. We actively maintain this scraper.

❤️ Love this Transfermarkt Scraper? Please leave a review here. It really helps!