Transfermarkt Scraper avatar
Transfermarkt Scraper

Pricing

Pay per event

Go to Apify Store
Transfermarkt Scraper

Transfermarkt Scraper

Developed by

BarriereFix

BarriereFix

Maintained by Community

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.

5.0 (1)

Pricing

Pay per event

0

2

1

Last modified

2 days ago

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

{
"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

{
"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

{
"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

ParameterTypeDefaultDescription
modeenum"player"Scraping mode: player (only mode currently implemented)
urlsarray[Mbappé, Haaland]List of Transfermarkt player profile URLs to scrape
maxItemsinteger100Maximum items to scrape (prevents runaway costs)
localeenum"us"Transfermarkt site: us, de, uk, es, it, fr
delayBetweenRequestsinteger1500Milliseconds between requests (rate limiting)
useProxiesbooleanfalseEnable Apify proxies (use if blocked)
proxyGroupsarray["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: $0.001 per player profile

Cost Examples:

  • 100 players = $0.10
  • 1,000 players = $1.00
  • 10,000 players = $10.00

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 where marketValue < 10000000 (under €10m)
  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

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

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

ActorDescription
Steam Workshop ScraperScrape Steam Workshop mods and community content

🏢 Business Intelligence

ActorDescription
Indeed Salary AnalyzerGet salary data for compensation benchmarking and HR analytics
Crunchbase ScraperExtract company data and funding information for business intelligence
Northdata ScraperExtract German company data from Northdata for business research
Shopify Store IntelligenceAnalyze Shopify stores for competitive intelligence and market research
Apify Store RadarMonitor 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