Fotmob Scraper avatar

Fotmob Scraper

Pricing

from $10.00 / 1,000 match results

Go to Apify Store
Fotmob Scraper

Fotmob Scraper

Every shot's exact location and xG, minute-by-minute momentum, head-to-head history, and attack-zone breakdown - for any FotMob match, league, or day of fixtures worldwide. Full standings, season fixtures, and transfers per competition, plus a complete leagues directory.

Pricing

from $10.00 / 1,000 match results

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Features

Limited permissions

Share

Norm Data

⚽ FotMob Scraper

Every shot's exact location and expected goals, minute-by-minute match momentum, head-to-head history, and attack-zone breakdown, for any football match, league, or day of fixtures worldwide. One Actor covers matches, leagues, and the full competitions directory. No login.

Point it at a match ID, a date, or a league ID, and get export-ready data for analytics, fantasy tools, media, and league dashboards.

👉 Try it now: press Start. The ready-made input gives you 10 match results in a few seconds.
💰 $0.02 per match result on the Free plan (10 match results per run), from $0.016 on paid plans. See pricing

✨ Why this scraper?

  • Far more per match than a bare score
    Shot-by-shot xG, head-to-head history, live momentum, and attack-zone data all come on every match record, at no extra request.

  • One Actor instead of four
    Matches, leagues, and the leagues directory are all built in, not separate purchases.

  • Real transfer data and deeper standings on every league
    Recent transfers, plus home/away/form/xG standings breakdowns, come with every league pull, not just the plain table.

  • Fast and reliable at real scale
    Tested at 1,000 full match records in well under a minute, zero duplicates, zero crashes under load.

  • No login, no API key

  • Match
    One deep record per match, with final score, lineups and formations, per-player stats and ratings, the goal/card/substitution timeline, a full team-stat comparison, venue, referee, weather, player of the match, a shot-by-shot map with expected goals (xG), head-to-head history, a minute-by-minute momentum graph, and an attack-zone breakdown.

  • Apify platform
    Schedule runs, get only new match results, export to Excel or CSV, use the API, or connect Google Sheets, Zapier and Make.

⚖️ How it compares

Checked directly against the closest real competitor set on Apify (their own declared input/output):

CapabilityThis actorClosest competitors
Shot-by-shot map with per-shot xGyesnot documented
Head-to-head historyyesnot documented
Match momentum graphyesnot documented
Attack-zone breakdownyesnot documented
Recent transfers per leagueyesnot documented
Matches + Leagues + Directory in one Actoryes4 separate Actors
Reported reliabilitytested clean at 1,000-record scaleone competitor sits at 87 to 93% success

🚀 How to scrape FotMob

  1. Create a free Apify account.
  2. Pick the filters you need, or keep the ready-made input.
  3. Click Start.
  4. Download the match results as Excel, CSV or JSON from the Output tab.

💰 Pricing

How much does it cost to scrape FotMob?

You pay a one-time $0.003 per run, plus a price for each match result saved (and for each add-on you turn on):

Charged forFreeBronzeSilverGold+
Match result: Full match record: score, lineups, stats, shotmap, and more.0.020.0160.0130.01
League result: Full league record: standings, fixtures, and transfers.0.01780.01440.01220.01
Matches result: One match listing for a given date.0.0050.00420.00360.003
Leagues result: One league directory entry.0.00150.00130.00110.0009

Example: 1,000 match results cost about $16 on Bronze. No proxy or compute costs on top.

📦 What data you get

EntityUseful fields
MatchID, URL, teams, score, stadium, capacity, referee, weather, player of the match, highlights link, lineups, formations, per-player stats and ratings, the goal/card/substitution timeline, and a full team-stat comparison.
Shot & momentum dataA shot-by-shot map with pitch coordinates and xG, a minute-by-minute momentum graph, and a left/center/right attack-zone split per team per half.
Head-to-headSummary record and the real match history between the two teams.
LeagueStandings (plus home/away/form/xG breakdowns), season fixtures and results, top players, and recent transfers.
DirectoryEvery real competition worldwide, for discovering league IDs.

Every record includes scraped_at (UTC). Download your dataset from Apify as CSV, JSON, Excel, or XML.

⚙️ Input

Pick a mode and a maximum results cap first, then fill in only the section that matches your mode:

SectionWhat it's for
Match modeReal FotMob match IDs, for a full per-match breakdown.
Matches modeDates in YYYYMMDD format, each getting its own fair share of the results cap.
League modeReal FotMob league IDs, for standings, fixtures, and transfers.

Leagues mode needs nothing else, it returns the full competitions directory. Use it to discover the league or match IDs the other modes need.

Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.

Input examples

📊 Full breakdown of one match

{ "mode": "match", "matchIds": ["5795363"] }

📅 Every match on a given date

{ "mode": "matches", "dates": ["20260920"] }

🏆 A league's standings, fixtures, and transfers

{ "mode": "league", "leagueIds": ["47"] }

🔎 Discover league IDs

{ "mode": "leagues" }

❓ FAQ and troubleshooting

Is there a FotMob API? Do I need an API key?

FotMob has no public data API for this. This Actor works as a FotMob API alternative: it reads the public pages and gives you clean JSON, CSV or Excel, with no API key, no login and no code to maintain. You can also call it from your own code with the Apify API, or from an AI agent through MCP: claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/fotmob-scraper"

Why do I get only 10 match results?

On the Apify free plan each run saves up to 10 results, so you can try it before paying. Any paid plan removes the limit.

weather or highlights_url is null

FotMob doesn't set them for every match (indoor, older or lower-profile fixtures). It's a gap in the source, not a parsing failure.

A match has no score or stats

It hasn't been played yet. Run it again after full time.

What are the limits?

This Actor reads only FotMob's own public match, league, and directory data. It never signs in and never accesses anything gated behind an account.

weather or highlights_url are sometimes null because FotMob itself doesn't set them for every match (indoor, older, or lower-profile fixtures), a real source-side gap, not a parsing failure. A match that hasn't started yet has no result status text in Matches mode; it fills in once the match kicks off.

If a match, league, or date can't be loaded, that row is skipped with a warning in the run log. The rest of the run continues.

Is this an official FotMob tool?

No. It is independent and not affiliated with FotMob. It reads only data FotMob publishes on its public pages, at a moderate pace. Use the data in line with FotMob's terms and the laws that apply to you.

📧 Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com