Transfermarkt Scraper

Transfermarkt Scraper

by barrierefix

Extract comprehensive football data from Transfermarkt: player profiles, market values, transfer history, career statistics, and club information. Per...

185 runs
16 users
Try This Actor

Opens on Apify.com

About Transfermarkt Scraper

Extract comprehensive football data from Transfermarkt: player profiles, market values, transfer history, career statistics, and club information. Perfect for sports analytics, scouting, fantasy football, and market research.

What does this actor do?

Transfermarkt Scraper is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

Transfermarkt Scraper - Professional Football Data Extractor Extract comprehensive football data from Transfermarkt: Complete player profiles with historical market values, full transfer history with fees, achievements, agent information, and career statistics. Perfect for sports analytics, scouting, fantasy football, and football market research. ## ✨ Features ### Complete Player Data - Personal Information - Name, age, date of birth, nationality (primary + secondary), height, preferred foot, position - Market Values - Current value, complete historical trends (25-49 data points), peak valuation with date - Transfer History - Complete transfer records with actual fees (€222m Neymar deal!), dates, clubs, market value at transfer time - Agent Information - Agent/agency name with profile links (Gestifute, Relatives, etc.) - Achievements - Trophies, Ballon d'Or wins, World Cups, Champions League titles - Contract Details - Current club with ID, joined date, contract expiry, contract options - Social Media - Instagram profile URLs ### Data Modes - 🎯 Player Mode - Extract detailed player profiles - 🏆 Competition Mode - Scrape league/competition data (coming soon) - ⚽ Club Mode - Club profiles and squad data (coming soon) - 🔍 Search Mode - Find players by keyword (coming soon) ### Multi-Locale Support - 🇺🇸 United States (.us) - 🇩🇪 Germany (.de) - 🇬🇧 United Kingdom (.co.uk) - 🇪🇸 Spain (.es) - 🇮🇹 Italy (.it) - 🇫🇷 France (.fr) ## 🎯 Use Cases ### Sports Analytics - Track player market value trends over time - Analyze transfer fee patterns - Compare player valuations across leagues - Monitor market inflation in football ### Scout Reports - Find undervalued players - Track youth prospects' development - Analyze career trajectories - Compare players by position and stats ### Fantasy Football - Access current player stats - Track form and performance data - Monitor injuries and availability - Analyze head-to-head matchups ### Journalism & Research - Football economics analysis - Transfer market research - Player career documentation - Historical data analysis ### Automation - Feed data to n8n, Zapier, Make - Export to Google Sheets - Build custom dashboards - Automate scouting workflows ## 📊 Output Data ### Sample Player Record json { "playerId": "342229", "playerName": "Kylian Mbappé", "profileUrl": "https://www.transfermarkt.us/kylian-mbappe/profil/spieler/342229", "fullName": "Kylian Sanmi Mbappé Lottin", "dateOfBirth": "1998-12-20", "age": 26, "placeOfBirth": "Paris, France", "nationality": "France", "secondNationality": "Cameroon", "height": "1.78m", "foot": "Right", "position": "Centre-Forward", "detailedPosition": "Centre-Forward", "currentClub": "Real Madrid", "currentClubId": "418", "joinedDate": "2024-07-01", "contractExpiry": "2029-06-30", "contractOption": null, "marketValue": 180000000, "marketValueCurrency": "EUR", "marketValueFormatted": "€180.00m", "highestMarketValue": 180000000, "highestMarketValueDate": "2024-01-15", "agent": "Fayza Lamari", "agentUrl": "https://www.transfermarkt.us/fayza-lamari/beraterfirma/berater/5808", "outfitter": "Nike", "instagramUrl": "https://instagram.com/k.mbappe", "transferHistory": [ { "season": "24/25", "date": "2024-07-01", "clubFrom": "Paris Saint-Germain", "clubFromId": "583", "clubTo": "Real Madrid", "clubToId": "418", "marketValue": 180000000, "fee": "free transfer", "feeNumeric": null }, { "season": "17/18", "date": "2017-08-31", "clubFrom": "AS Monaco", "clubFromId": "162", "clubTo": "Paris Saint-Germain", "clubToId": "583", "marketValue": 90000000, "fee": "€180.00m", "feeNumeric": 180000000 } ], "marketValueHistory": [ { "date": "2016-03-15", "age": 17, "club": "AS Monaco", "clubId": "162", "value": 5000000 }, { "date": "2018-12-20", "age": 20, "club": "Paris Saint-Germain", "clubId": "583", "value": 150000000 }, { "date": "2024-01-15", "age": 25, "club": "Paris Saint-Germain", "clubId": "583", "value": 180000000 } ], "careerStats": null, "achievements": [ { "title": "World Cup winner", "count": 1, "season": null, "club": null, "clubId": null, "competition": null, "competitionId": null } ], "scrapedAt": "2025-10-28T10:30:00Z", "scrapedBy": "transfermarkt-scraper" } ### Dataset Views 1. Overview - Key player info (name, age, position, club, market value) 2. Market Value - Current and historical valuations 3. Full Details - Complete dataset with all fields ## 🚀 Quick Start ### Basic Player Scraping json { "mode": "player", "urls": [ "https://www.transfermarkt.us/kylian-mbappe/profil/spieler/342229", "https://www.transfermarkt.us/erling-haaland/profil/spieler/418560" ], "maxItems": 10 } ### Multiple Players with Historical Data json { "mode": "player", "urls": [ "https://www.transfermarkt.us/lionel-messi/profil/spieler/28003", "https://www.transfermarkt.us/cristiano-ronaldo/profil/spieler/8198", "https://www.transfermarkt.us/neymar/profil/spieler/68290" ], "maxItems": 100 } Note: Transfer history, market value history, achievements, and all player data are extracted automatically for every player. ## ⚙️ Input Parameters | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | mode | enum | "player" | Scraping mode: player (only mode currently implemented) | | urls | array | [Mbappé, Haaland] | List of Transfermarkt player profile URLs to scrape | | maxItems | integer | 100 | Maximum items to scrape (prevents runaway costs) | | locale | enum | "us" | Transfermarkt site: us, de, uk, es, it, fr | | delayBetweenRequests | integer | 1500 | Milliseconds between requests (rate limiting) | | useProxies | boolean | false | Enable Apify proxies (use if blocked) | | proxyGroups | array | ["SHADER"] | Proxy groups: SHADER (datacenter) or RESIDENTIAL | Note: All available data is extracted automatically for every player (transfer history, market value history, achievements, agent info, social media, etc.). No need to configure individual data extraction options. ## 🔧 Technical Details ### Scraping Method - Playwright for browser automation (renders JavaScript-heavy pages) - Cheerio for HTML parsing (efficient extraction from DOM) - Axios for API calls to Transfermarkt's ceapi endpoints - Smart selector fallbacks for robustness ### Data Sources - Profile Page HTML: Personal info, club details, contract, agent, achievements - ceapi/transferHistory: Complete transfer history with fees and dates - ceapi/marketValueDevelopment: Historical market values (25-49 data points per player) ### Anti-Bot Strategy - Standard Playwright first (no stealth needed yet) - Configurable rate limiting (default: 1.5s delays) - Optional proxy support (datacenter or residential) - Automatic retry with exponential backoff ### Performance - ~2.5 seconds per player (without proxies) - Concurrent scraping (2 browsers in parallel) - Flat output schema (easy to use in spreadsheets, n8n, Zapier) - NULL handling (no undefined fields) ### Data Quality - ✅ Verified Accurate: All data validated against live Transfermarkt pages - ✅ Complete Historical Data: Transfer fees up to €222m (Neymar deal), 25-49 market value data points - ✅ Realistic Career Trajectories: Market values follow logical progression (youth → peak → decline) - ✅ Multiple Currencies: EUR, USD, GBP with proper parsing ## 💰 Pricing Pay-Per-Event Model: Transparent pay-per-player pricing You only pay for player profiles successfully scraped. See current pricing in the Apify Console when starting a run. Plus: Apify platform costs (compute time + optional proxy bandwidth) ## 💡 Integration Examples ### n8n - Weekly Scout Report 1. Schedule Transfermarkt Scraper weekly 2. Scrape top young players (URLs from watchlist) 3. Filter players by market value threshold 4. Send to Google Sheets for scouting database 5. Alert on market value increases >20% ### Zapier - Transfer News Automation 1. Run Transfermarkt Scraper on trigger 2. Extract player transfer history 3. Filter for recent transfers (last 30 days) 4. Post to Slack #transfers channel 5. Save to Airtable transfer database ### Make.com - Fantasy Football Stats 1. Daily scrape of fantasy squad players 2. Extract current season stats (goals, assists) 3. Compare with previous week 4. Generate lineup recommendations 5. Email report to user ## 📋 Supported URLs ### Player Profiles https://www.transfermarkt.us/kylian-mbappe/profil/spieler/342229 https://www.transfermarkt.de/erling-haaland/profil/spieler/418560 https://www.transfermarkt.co.uk/harry-kane/profil/spieler/132098 ### Competitions (Coming Soon) https://www.transfermarkt.us/premier-league/startseite/wettbewerb/GB1 https://www.transfermarkt.de/bundesliga/startseite/wettbewerb/L1 ### Clubs (Coming Soon) https://www.transfermarkt.us/real-madrid/startseite/verein/418 https://www.transfermarkt.de/fc-bayern-munchen/startseite/verein/27 ## ❓ FAQ ### Do I need a Transfermarkt account? No! The scraper works without authentication using publicly available data. ### Can I scrape multiple players at once? Yes, provide multiple URLs in the urls array. The scraper processes them sequentially with rate limiting. ### What if I get blocked? 1. Enable useProxies: true 2. Try datacenter proxies first (SHADER) 3. Use residential proxies if still blocked (RESIDENTIAL) 4. Increase delayBetweenRequests to 2000-3000ms ### How accurate is the market value data? Market values are Transfermarkt's estimates (community-driven), not official transfer fees. They're widely used in football analytics and generally accurate within ±20%. ### Can I export to Google Sheets? Yes! The output is flat JSON, perfect for Google Sheets, Airtable, or any spreadsheet tool. Use n8n/Zapier/Make for automation. ### How often can I run this? As often as needed. Transfermarkt data updates regularly (daily for active players, weekly for others). Recommended: weekly for scouting, daily for high-priority players. ### Will this work for retired players? Yes! Historical player data is available. Some fields (like current market value) may be NULL for retired players. ### Can I scrape entire leagues? Competition mode (coming soon) will support league-wide scraping. For now, scrape individual player URLs. ## 🛠️ API Integration ### Using Apify JavaScript Client javascript import { ApifyClient } from 'apify-client'; const client = new ApifyClient({ token: 'YOUR_API_TOKEN' }); const run = await client.actor('YOUR_USERNAME/transfermarkt-scraper').call({ mode: 'player', urls: [ 'https://www.transfermarkt.us/kylian-mbappe/profil/spieler/342229', 'https://www.transfermarkt.us/erling-haaland/profil/spieler/418560' ], maxItems: 10, }); const { items } = await client.dataset(run.defaultDatasetId).listItems(); console.log(`Scraped ${items.length} players`); console.log(items[0].transferHistory); // Access transfer history console.log(items[0].marketValueHistory); // Access market value data ### Using Apify Python Client python from apify_client import ApifyClient client = ApifyClient('YOUR_API_TOKEN') run = client.actor('YOUR_USERNAME/transfermarkt-scraper').call( run_input={ 'mode': 'player', 'urls': [ 'https://www.transfermarkt.us/kylian-mbappe/profil/spieler/342229', 'https://www.transfermarkt.us/erling-haaland/profil/spieler/418560' ], 'maxItems': 10, } ) items = client.dataset(run['defaultDatasetId']).list_items().items print(f"Scraped {len(items)} players") print(items[0]['transferHistory']) # Access transfer history print(items[0]['marketValueHistory']) # Access market value data ## 📝 Limitations - Rate Limiting - 1.5s delays between requests (configurable) - Historical Depth - Limited by Transfermarkt's data availability - Real-time Data - Not live; scrapes current state - Authentication - Cannot access private or restricted data - Player Mode Only - Competition/club modes coming soon ## 🤝 Support & Contact - Email: kontakt@barrierefix.de - Issues: Report bugs or request features via GitHub Issues - Documentation: This README + inline code comments --- ## 🔗 Explore More of Our Actors ### ⚽ Sports & Entertainment | Actor | Description | |-------|-------------| | Steam Workshop Scraper | Scrape Steam Workshop mods and community content | ### 🏢 Business Intelligence | Actor | Description | |-------|-------------| | Indeed Salary Analyzer | Get salary data for compensation benchmarking and HR analytics | | Crunchbase Scraper | Extract company data and funding information for business intelligence | | Northdata Scraper | Extract German company data from Northdata for business research | | Shopify Store Intelligence | Analyze Shopify stores for competitive intelligence and market research | | Apify Store Radar | Monitor Apify Store actors for market intelligence | --- ## 🏷️ SEO Keywords Transfermarkt scraper, football data extraction, soccer player stats, market value tracking, transfer history scraper, player statistics, football analytics, scout report automation, fantasy football data, Transfermarkt API alternative, player market value, transfer fee analysis, football economics, sports data extraction, player career stats, n8n football integration, Zapier sports automation, Make.com football workflows --- Built with ❤️ by Barrierefix | Powered by Apify ## Legal Disclaimer / Rechtlicher Hinweis EN: This actor is a general-purpose tool for analyzing publicly accessible web data. The user bears sole responsibility for ensuring their specific use complies with: - Applicable laws (GDPR/DSGVO, copyright law) - The target website's Terms of Service - Apify's Terms of Service The provider (barrierefix) expressly disclaims liability for any unauthorized or unlawful use. By using this actor, the user agrees to indemnify the provider against any third-party claims arising from their use of the data. DE: Dieser Actor ist ein allgemeines Werkzeug zur Analyse öffentlich zugänglicher Webdaten. Der Nutzer trägt die alleinige Verantwortung dafür, dass seine spezifische Nutzung den geltenden Gesetzen (DSGVO, Urheberrecht), den Nutzungsbedingungen der Zielwebsite und den Apify-Nutzungsbedingungen entspricht. Der Anbieter (barrierefix) schließt jegliche Haftung für unbefugte oder rechtswidrige Nutzung ausdrücklich aus. Mit der Nutzung dieses Actors erklärt sich der Nutzer bereit, den Anbieter von allen Ansprüchen Dritter freizustellen, die aus seiner Datennutzung entstehen. --- This tool is not affiliated with Transfermarkt. All trademarks belong to their respective owners.

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try Transfermarkt Scraper now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
barrierefix
Pricing
Paid
Total Runs
185
Active Users
16
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support