Transfermarkt Scraper — Players, Clubs & Market Values
Pricing
from $1.50 / 1,000 results
Transfermarkt Scraper — Players, Clubs & Market Values
Scrape Transfermarkt football data: player profiles, club squads, league rosters, contracts, positions, nationalities and current market values. Search players, enter club URLs or competition codes, browse top-value rankings, and optionally add complete market-value and transfer histories.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
⚽ Transfermarkt Scraper — Players, Clubs & Market Values
Turn global football profiles, squads and valuations into clean structured data.
⚡ At a glance
| Capability | |
|---|---|
| 🏆 Rankings | Collect the world's most valuable players automatically |
| 👤 Players | Search by name or paste player URLs and IDs |
| 🏟️ Clubs | Export complete club squads with contracts and valuations |
| 🌍 Leagues | Use a competition code to collect every club and squad |
| 📈 Values | Current value, numeric EUR value, update date and optional history |
| 🔄 Transfers | Optional complete career transfer history |
| 🎯 Filters | Position, nationality, age and minimum market value |
| 📦 Delivery | JSON, CSV, Excel, XML, API and integrations |
💡 Press Start with the ready-made input to collect the top-valued football players. No URLs or player IDs are required.
What does this Transfermarkt scraper do?
Transfermarkt Scraper converts public football data into analysis-ready player and club records.
Use it to collect:
- current player market values;
- numeric EUR valuations;
- global most-valuable-player rankings;
- player identity and biographical information;
- positions and preferred foot;
- current clubs and competitions;
- contract and joining dates;
- agents and international records;
- complete club squads;
- league-wide club and player datasets;
- historical market-value changes;
- peak market values;
- transfer histories and fees.
The Actor automatically removes duplicate player IDs when the same footballer appears through several searches, clubs or rankings.
Five ways to collect data
| Input mode | Example | Result |
|---|---|---|
| 🏆 Rankings | Enable scrapeRankings | Top-valued players across football |
| 🔎 Name search | Erling Haaland | Matching player profiles |
| 👤 Player URL or ID | 418560 | One enriched player record |
| 🏟️ Club URL or ID | Liverpool or 31 | Club summary and full squad |
| 🌍 Competition code | GB1 | Every club and player in the league |
You can combine these modes in one run. Results are deduplicated automatically.
Why this Actor?
Many football scrapers require users to locate every player URL manually. This Actor can start from rankings, player names, club IDs or league codes.
It is designed for both quick exports and deeper research:
- fast listing mode avoids unnecessary profile requests;
- enriched mode adds profile and contract data;
- history options are independent;
- clear
recordTypevalues distinguish players and clubs; - market-value text is preserved alongside numeric EUR values;
- every record contains its source URL and scrape timestamp;
- missing optional data stays empty instead of being fabricated.
🎯 Use cases
| Use case | How the data helps |
|---|---|
| 🔭 Player scouting | Filter young players by position, nationality and valuation |
| 💼 Recruitment analysis | Review contracts, clubs, agents and career movement |
| 📊 Football analytics | Build valuation and squad-composition datasets |
| 📈 Value monitoring | Schedule runs and compare player values over time |
| 📰 Sports media | Power rankings, club profiles and transfer content |
| 🎮 Fantasy football | Add positions, clubs and player values to models |
| 🏟️ Club benchmarking | Compare squad size, age and total market value |
| 🌍 League research | Export every player from a competition with one code |
| 💰 Transfer research | Analyze fees, player values and movement history |
| 🤖 AI workflows | Feed structured football records into search and RAG systems |
Scouts and recruitment teams
Find players who match a position, maximum age, nationality and minimum valuation. Enriched profiles add contract dates, preferred foot, agent and international data.
Analysts and researchers
Collect repeatable snapshots with numeric market values. Historical valuation arrays support development curves, peak-value analysis and longitudinal research.
Sports publishers
Generate player and club datasets for rankings, comparison pages, transfer stories and automated matchday content.
Clubs and agencies
Compare squads and identify contract timelines, player representation and market positioning across leagues.
🚀 Quick start
- Open the Actor input page.
- Keep Scrape most valuable players enabled or choose another input method.
- Choose whether player profiles should be enriched.
- Enable value or transfer history only when needed.
- Set the maximum number of results.
- Click Start.
- Download the dataset as JSON, CSV or Excel.
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
scrapeRankings | Boolean | true | Browse most-valuable-player rankings |
playerQueries | String list | Empty | Player names to search |
playerUrls | String list | Empty | Direct player URLs or numeric IDs |
clubUrls | String list | Empty | Club URLs or numeric IDs |
competitionCodes | String list | Empty | League and competition codes |
season | Integer | 2026 | Start year of the season |
includePlayerDetails | Boolean | true | Full profile enrichment |
includeMarketValueHistory | Boolean | false | Dated value history and peak value |
includeTransferHistory | Boolean | false | Career transfers and fees |
includeClubRecords | Boolean | true | Add club summary rows |
positions | String list | Empty | Position filters |
nationalities | String list | Empty | Citizenship filters |
maxAge | Integer | 0 | Maximum age; zero disables |
minMarketValueEur | Integer | 0 | Minimum current value in EUR |
maxItems | Integer | 1000 | Maximum total records |
maxConcurrency | Integer | 6 | Parallel enrichment requests |
proxyConfiguration | Object | Direct | Optional Apify Proxy settings |
Competition codes
Common examples:
| Competition | Code |
|---|---|
| Premier League | GB1 |
| LaLiga | ES1 |
| Serie A | IT1 |
| Bundesliga | L1 |
| Ligue 1 | FR1 |
| Süper Lig | TR1 |
| Liga Portugal | PO1 |
| Eredivisie | NL1 |
| Major League Soccer | MLS1 |
| Saudi Pro League | SA1 |
Competition availability and codes can change. Direct competition URLs are not required when the code is known.
Input examples
Most valuable players
{"scrapeRankings": true,"maxItems": 200,"includePlayerDetails": true}
Search several players
{"scrapeRankings": false,"playerQueries": ["Erling Haaland", "Lamine Yamal", "Kylian Mbappe"],"includePlayerDetails": true,"includeMarketValueHistory": true,"maxItems": 20}
One player by ID
{"scrapeRankings": false,"playerUrls": ["418560"],"includePlayerDetails": true,"includeMarketValueHistory": true,"includeTransferHistory": true}
Complete club squad
{"scrapeRankings": false,"clubUrls": ["31"],"season": 2026,"includeClubRecords": true,"includePlayerDetails": true,"maxItems": 100}
Whole league
{"scrapeRankings": false,"competitionCodes": ["GB1"],"season": 2026,"includeClubRecords": true,"includePlayerDetails": false,"maxItems": 1000}
Young high-value forwards
{"scrapeRankings": true,"positions": ["Forward", "Winger"],"maxAge": 23,"minMarketValueEur": 20000000,"maxItems": 500}
💡 Filters are applied to the final player data. Set
maxItemshigh enough when using narrow filters so the Actor has enough candidates to evaluate.
Output: player records
👤 Identity
| Field | Meaning | Coverage |
|---|---|---|
recordType | Always player | 🟢 Every player |
playerId | Stable Transfermarkt player ID | 🟢 Every player |
name | Display name | 🟢 Every player |
fullName | Full home-country name | 🟡 When published |
dateOfBirth | Date of birth | 🟢 Enriched profiles |
age | Current listed age | 🟢 Nearly every player |
placeOfBirth | Birthplace | 🟡 When published |
nationalities | Citizenship list | 🟢 Nearly every player |
imageUrl | Player portrait | 🟢 Nearly every player |
url | Canonical profile URL | 🟢 Every player |
⚽ Sporting profile
| Field | Meaning | Coverage |
|---|---|---|
position | Detailed playing position | 🟢 Nearly every player |
preferredFoot | Left, right or both | 🟢 Enriched active players |
height | Listed player height | 🟢 Enriched profiles |
shirtNumber | Current squad number | 🟡 When assigned |
currentClub | Current club | 🟢 Active players |
currentClubId | Stable club ID | 🟢 Active players |
competition | Current league or competition | 🟡 Enriched profiles |
📄 Contract and representation
| Field | Meaning | Coverage |
|---|---|---|
joinedDate | Date joined current club | 🟡 When published |
contractExpiry | Current contract end | 🟡 When published |
agent | Player representative | 🟡 When published |
currentNationalTeam | National team | 🟡 International players |
nationalTeamCaps | International appearances | 🟡 International players |
nationalTeamGoals | International goals | 🟡 International players |
💶 Market value
| Field | Meaning | Coverage |
|---|---|---|
marketValue | Display value such as €80.00m | 🟢 Ranked players |
marketValueEur | Numeric EUR value | 🟢 When value exists |
marketValueUpdatedAt | Latest update date | 🟢 Enriched profiles |
marketValueHistory | Dated historical valuations | ⚪ Optional |
peakMarketValue | Highest historical display value | ⚪ History mode |
peakMarketValueEur | Highest historical numeric value | ⚪ History mode |
peakMarketValueDate | Date of highest value | ⚪ History mode |
🔄 Transfer history
Each optional transfer entry can contain:
- season;
- transfer date;
- previous club and club ID;
- new club and club ID;
- market value at the time;
- transfer fee;
- numeric fee in EUR;
- source URL.
Output: club records
| Field | Meaning |
|---|---|
recordType | Always club |
clubId | Stable club identifier |
name | Club name |
competitionCode | Competition code |
competition | Competition name |
season | Requested season |
squadSize | Number of squad players |
averageAge | Average squad age |
averageMarketValue | Display average value |
averageMarketValueEur | Numeric average value |
totalMarketValue | Display squad value |
totalMarketValueEur | Numeric squad value |
logoUrl | Club badge |
url | Club profile URL |
squadUrl | Squad source URL |
Example player result
{"recordType": "player","playerId": "418560","name": "Erling Haaland","fullName": "Erling Braut Håland","age": 26,"nationalities": ["Norway"],"height": "1,95 m","position": "Attack - Centre-Forward","preferredFoot": "left","currentClub": "Man City","currentClubId": "281","competition": "Premier League","shirtNumber": 9,"marketValue": "€220.00m","marketValueEur": 220000000,"marketValueUpdatedAt": "22/07/2026","detailEnriched": true}
Data quality
The Actor follows practical quality rules:
- player records are deduplicated by player ID;
- club records are deduplicated by club ID;
- numeric valuations are stored with original display values;
- missing values are not guessed;
- detail failures fall back to usable listing records;
- every result includes a collection timestamp;
- source URLs remain available for verification;
- optional high-cost requests stay disabled unless selected.
Performance tips
Fastest collection
- keep
includePlayerDetailsdisabled; - keep history options disabled;
- collect squads or rankings;
- use a focused result limit.
Richest records
- enable player details;
- enable value history for trend research;
- enable transfers only when career movement is required;
- keep concurrency between four and eight.
Large league export
- enter one competition code;
- disable player details for the first run;
- set
maxItemsabove the expected squad count; - enrich selected players in a second run if needed.
Integrations
Send Transfermarkt data to:
- Google Sheets;
- Airtable;
- Make;
- Zapier;
- Slack;
- webhooks;
- REST API clients;
- Python and JavaScript applications;
- BI dashboards;
- databases and warehouses;
- scouting and recruitment systems;
- AI agents and RAG pipelines.
Scheduling
Schedule weekly or monthly runs to monitor:
- player valuation changes;
- contract timelines;
- squad composition;
- club total values;
- high-value young players;
- transfer activity;
- league-level changes.
Honest limitations
- Market values are estimates, not guaranteed transfer fees.
- Profile completeness differs by player and competition.
- Retired or lower-league players may have fewer fields.
- Competition codes and seasonal squad availability can change.
- Very large enriched runs take longer than overview exports.
- Transfermarkt may temporarily limit high request volumes.
- The Actor collects public information and does not require an account.
FAQ
Do I need a Transfermarkt account?
No. The Actor uses publicly visible football data.
Can I start without URLs?
Yes. Rankings are enabled by default, and player-name search is supported.
Can I scrape a whole club?
Yes. Enter a club URL or numeric club ID.
Can I scrape a whole league?
Yes. Enter a competition code such as GB1 or ES1.
Can I combine clubs and player searches?
Yes. All supported input modes can run together.
Are duplicate players removed?
Yes. Stable player IDs are used for deduplication.
Does the Actor return numeric market values?
Yes. marketValueEur is suitable for sorting and calculations.
Is value history included automatically?
No. Enable it when needed to keep ordinary runs fast and inexpensive.
Can I get the player's peak market value?
Yes. It is calculated when market-value history is enabled.
Can I collect transfer fees?
Yes. Enable transfer history.
Can I filter by age?
Yes. Set maxAge.
Can I filter by position?
Yes. Position matching is case-insensitive and supports partial names.
Can I filter by nationality?
Yes. Enter English citizenship names in nationalities.
Can I export to Excel?
Yes. Apify datasets support Excel, CSV, JSON, XML and other formats.
Can it run automatically?
Yes. Use Apify Schedules and webhooks.
Why are some contract or agent values empty?
Those fields are returned only when publicly listed for the player.
Should I enable a proxy?
Start with direct mode. Enable Apify Proxy if the source limits your run.
Responsible use
Use the Actor and its output responsibly. Comply with applicable laws, contractual requirements, privacy rules and the source website's terms. Do not use data for unlawful surveillance, harassment, spam or prohibited automated decisions.
Transfermarkt is a trademark of its respective owner. This Actor is independent and is not affiliated with, sponsored by or endorsed by Transfermarkt.
Support
When reporting a problem, include the run ID, sanitized input and an example public URL. Never share API tokens, passwords, cookies or private credentials.
Discover players. Compare clubs. Track football market value.