Transfermarkt Scraper — Players, Clubs & Market Values avatar

Transfermarkt Scraper — Players, Clubs & Market Values

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Transfermarkt Scraper — Players, Clubs & Market Values

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

Haketa

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

⚽ Transfermarkt Scraper — Players, Clubs & Market Values

Turn global football profiles, squads and valuations into clean structured data.

Players Clubs Values Exports

⚡ At a glance

Capability
🏆 RankingsCollect the world's most valuable players automatically
👤 PlayersSearch by name or paste player URLs and IDs
🏟️ ClubsExport complete club squads with contracts and valuations
🌍 LeaguesUse a competition code to collect every club and squad
📈 ValuesCurrent value, numeric EUR value, update date and optional history
🔄 TransfersOptional complete career transfer history
🎯 FiltersPosition, nationality, age and minimum market value
📦 DeliveryJSON, 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 modeExampleResult
🏆 RankingsEnable scrapeRankingsTop-valued players across football
🔎 Name searchErling HaalandMatching player profiles
👤 Player URL or ID418560One enriched player record
🏟️ Club URL or IDLiverpool or 31Club summary and full squad
🌍 Competition codeGB1Every 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 recordType values 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 caseHow the data helps
🔭 Player scoutingFilter young players by position, nationality and valuation
💼 Recruitment analysisReview contracts, clubs, agents and career movement
📊 Football analyticsBuild valuation and squad-composition datasets
📈 Value monitoringSchedule runs and compare player values over time
📰 Sports mediaPower rankings, club profiles and transfer content
🎮 Fantasy footballAdd positions, clubs and player values to models
🏟️ Club benchmarkingCompare squad size, age and total market value
🌍 League researchExport every player from a competition with one code
💰 Transfer researchAnalyze fees, player values and movement history
🤖 AI workflowsFeed 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

  1. Open the Actor input page.
  2. Keep Scrape most valuable players enabled or choose another input method.
  3. Choose whether player profiles should be enriched.
  4. Enable value or transfer history only when needed.
  5. Set the maximum number of results.
  6. Click Start.
  7. Download the dataset as JSON, CSV or Excel.

Input reference

FieldTypeDefaultDescription
scrapeRankingsBooleantrueBrowse most-valuable-player rankings
playerQueriesString listEmptyPlayer names to search
playerUrlsString listEmptyDirect player URLs or numeric IDs
clubUrlsString listEmptyClub URLs or numeric IDs
competitionCodesString listEmptyLeague and competition codes
seasonInteger2026Start year of the season
includePlayerDetailsBooleantrueFull profile enrichment
includeMarketValueHistoryBooleanfalseDated value history and peak value
includeTransferHistoryBooleanfalseCareer transfers and fees
includeClubRecordsBooleantrueAdd club summary rows
positionsString listEmptyPosition filters
nationalitiesString listEmptyCitizenship filters
maxAgeInteger0Maximum age; zero disables
minMarketValueEurInteger0Minimum current value in EUR
maxItemsInteger1000Maximum total records
maxConcurrencyInteger6Parallel enrichment requests
proxyConfigurationObjectDirectOptional Apify Proxy settings

Competition codes

Common examples:

CompetitionCode
Premier LeagueGB1
LaLigaES1
Serie AIT1
BundesligaL1
Ligue 1FR1
Süper LigTR1
Liga PortugalPO1
EredivisieNL1
Major League SoccerMLS1
Saudi Pro LeagueSA1

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 maxItems high enough when using narrow filters so the Actor has enough candidates to evaluate.

Output: player records

👤 Identity

FieldMeaningCoverage
recordTypeAlways player🟢 Every player
playerIdStable Transfermarkt player ID🟢 Every player
nameDisplay name🟢 Every player
fullNameFull home-country name🟡 When published
dateOfBirthDate of birth🟢 Enriched profiles
ageCurrent listed age🟢 Nearly every player
placeOfBirthBirthplace🟡 When published
nationalitiesCitizenship list🟢 Nearly every player
imageUrlPlayer portrait🟢 Nearly every player
urlCanonical profile URL🟢 Every player

⚽ Sporting profile

FieldMeaningCoverage
positionDetailed playing position🟢 Nearly every player
preferredFootLeft, right or both🟢 Enriched active players
heightListed player height🟢 Enriched profiles
shirtNumberCurrent squad number🟡 When assigned
currentClubCurrent club🟢 Active players
currentClubIdStable club ID🟢 Active players
competitionCurrent league or competition🟡 Enriched profiles

📄 Contract and representation

FieldMeaningCoverage
joinedDateDate joined current club🟡 When published
contractExpiryCurrent contract end🟡 When published
agentPlayer representative🟡 When published
currentNationalTeamNational team🟡 International players
nationalTeamCapsInternational appearances🟡 International players
nationalTeamGoalsInternational goals🟡 International players

💶 Market value

FieldMeaningCoverage
marketValueDisplay value such as €80.00m🟢 Ranked players
marketValueEurNumeric EUR value🟢 When value exists
marketValueUpdatedAtLatest update date🟢 Enriched profiles
marketValueHistoryDated historical valuations⚪ Optional
peakMarketValueHighest historical display value⚪ History mode
peakMarketValueEurHighest historical numeric value⚪ History mode
peakMarketValueDateDate 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

FieldMeaning
recordTypeAlways club
clubIdStable club identifier
nameClub name
competitionCodeCompetition code
competitionCompetition name
seasonRequested season
squadSizeNumber of squad players
averageAgeAverage squad age
averageMarketValueDisplay average value
averageMarketValueEurNumeric average value
totalMarketValueDisplay squad value
totalMarketValueEurNumeric squad value
logoUrlClub badge
urlClub profile URL
squadUrlSquad 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 includePlayerDetails disabled;
  • 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 maxItems above 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.