Transfermarkt Scraper
Pricing
from $1.00 / 1,000 results
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
Maintained by CommunityActor stats
4
Bookmarked
182
Total users
15
Monthly active users
0.92 hours
Issues response
15 days ago
Last modified
Categories
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.

🎯 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 Type | Input | What You Get |
|---|---|---|
| Players | Name or profile URL | Full player profile, stats, transfers, trophies |
| Clubs | Name or profile URL | Club details, squad, staff, trophies |
| Transfers: Player | Name or URL | Complete career transfer history for a player |
| Transfers: Club | Name or URL | All arrivals & departures for a club (current season) |
| Transfers: Competition | Name or URL | All 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
- Click Try for free / open the Actor in Apify Console.
- Pick a scrape type (players, clubs, or one of the 3 transfer modes).
- Add names or Transfermarkt URLs to the
itemslist. - (Optional) Adjust player statistics range or proxy settings.
- Click Start and download your data as JSON, CSV, or Excel.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| scrapeType | string | players | What to scrape: players, clubs, transfersPlayer, transfersClub, or transfersCompetition |
| items | array | [] | List of names or Transfermarkt URLs (max 50) |
| proxyConfiguration | object | {useApifyProxy: true} | Proxy configuration (datacenter recommended for best speed & success rate) |
| playersWithoutStatistics | boolean | false | Players only. If true, fetches profile information only (no seasonal statistics). |
| playerStatsSelection | string | "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
| Field | Description |
|---|---|
| Player Name | Player name |
| Jersey Number | Current jersey number |
| Club | Current club of the player |
| League | League information including name, country, and division |
| Market Value | Current market value with currency |
| Arrival Date | Date when player joined current club |
| Contract End | Contract expiration date |
| Transfer History | Complete history of all player transfers |
| Trophies | List of trophies won by the player |
| Player Details | Age, nationality, position, foot, height, etc. |
| Player Stats | Performance statistics for current and 3 previous seasons, organized by competition |
| URL | Transfermarkt profile URL |
🏟️ Club data structure
| Field | Description |
|---|---|
| Club Name | Official name of the club |
| League | Name, country, division, table position, and tenure |
| Total Market Value | Current total market value of the squad with currency |
| Trophies | List of trophies won by the club with counts |
| Club Details | Stadium, founding date, members, etc. |
| Staff | Manager, assistants, and specialists |
| Squad | Complete list of current players with detailed information |
| Top Arrivals | Recent significant player arrivals with transfer details |
| Top Departures | Recent significant player departures with transfer details |
| URL | Transfermarkt club URL |
👤 Transfers: Player data structure
| Field | Description |
|---|---|
| Player Name | Full player name |
| Player ID | Transfermarkt player ID |
| Player URL | Link to player profile |
| Transfers | Career transfer history with season, date, clubs, fees, market values |
| Total Fees | Sum of all transfer fees across career |
| Source URL | Transfermarkt transfers page URL |
🏟️ Transfers: Club data structure
| Field | Description |
|---|---|
| Club Name | Official name of the club |
| Season | Transfer window season (e.g., 2025/26) |
| Arrivals | Incoming transfers with player details, fees, and origin clubs |
| Departures | Outgoing transfers with player details, fees, and destination clubs |
| Summary | Totals: arrival/departure counts, expenditure, income, transfer record |
| Source URL | Transfermarkt transfers page URL |
🏆 Transfers: Competition data structure
| Field | Description |
|---|---|
| Competition Name | League or competition name |
| Competition Code | Transfermarkt competition code (e.g., FR1, GB1) |
| Season | Transfer window season |
| Total Clubs | Number of clubs in the competition |
| Total Arrivals / Departures | Aggregate transfer counts |
| Clubs | Per-club breakdown of all arrivals and departures |
| Source URL | Transfermarkt 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:
- 🔄 N8N: Apify + N8N Integration Guide
- ⚡ Make (Integromat): Apify + Make Integration Guide
- 🐍 Python & JavaScript clients: Apify API clients
- 🤖 MCP (AI Agents): Apify MCP Server
- 📤 Webhooks & Zapier: trigger downstream actions when a run finishes
🧩 Related Actors
Need more data sources for your projects? Check out our other fast, reliable scrapers:
- 📰 Google News Scraper (Fast): collect headlines, articles, and sources from Google News for any topic, keyword, or team.
- 📈 Google Trends Scraper (Fast): track search interest over time and spot trending keywords for content and market research.
- 🎬 TikTok Ads Library Scraper (Fast): extract ads from the TikTok Ads Library for competitive analysis and creative research.
❓ 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.
Is it legal to scrape Transfermarkt?
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!