
FotMob Scraper
hipersoft/fotmob-scraper
Scrape FotMob football data: fixtures and results by date and league, full match stats (xG, possession, shots), goals, cards, substitutions, venue, referee, attendance, lineups with ratings, and league tables with xG. Export CSV/JSON.
Total users
1Monthly users
0Total runs
32Per result
$0.002Last rebuilt
Oct 26, 2026Overview
FotMob Scraper extracts football (soccer) data from FotMob (fotmob.com), one of the most popular football apps, covering hundreds of leagues worldwide: Premier League, LaLiga, Bundesliga, Serie A, Ligue 1, Champions League, Europa League, MLS, World Cup and Nations League qualifiers and many more. Get fixtures and results by date, plus full match details: expected goals (xG), possession, shots, shots on target, big chances, passes and other team stats, goals with scorers and assists, cards, substitutions, venue, referee, attendance and player of the match. Optionally add lineups with formations and player ratings and league tables with xG, xGA and expected points. Export to CSV, Excel or JSON.
What does FotMob Scraper do?
- ⚽ Fixtures and results for any date range, across all leagues or only the ones you choose.
- 📊 Match stats: xG, possession, total shots, shots on target, big chances, corners, fouls, passes and more.
- 🥅 Match events: goals (scorer, assist, own goal, penalty), yellow and red cards, substitutions.
- 🏟️ Match info: venue, city, capacity, referee, attendance and player of the match.
- 👕 Lineups (optional): formations, starting XI with shirt numbers and FotMob ratings, substitutes.
- 🏆 League tables (optional): position, played, W/D/L, goals, goal difference, points, xG, xGA and expected points.
- 🎯 Filters: league IDs, league name text and finished matches only.
What data can you scrape from FotMob?
| Field | Description |
|---|---|
| Match ID, link | FotMob match |
| League, round | Competition and round |
| Kick-off, status | UTC kick-off time, status |
| Teams and score | Home/away teams, IDs and score |
| Stats | xG, possession, shots, passes… (home/away) |
| Events | Goals, assists, cards, substitutions |
| Venue | Stadium, city, country, capacity |
| Referee, attendance | Match officials and crowd |
| Player of the match | Top-rated player |
| Lineups | Formation, starters with ratings, subs |
| Table | Position, W/D/L, goals, points, xG, xGA, xPts |
Use cases for football data
- Sports betting and trading models: feed xG, shots and results into prediction models.
- Fantasy football: track player ratings, goals and assists.
- Football analytics and scouting: analyse team performance with xG and advanced stats.
- Media and content: auto-generate match reports, results pages and tables.
- Apps, bots and dashboards: power Telegram, Discord or web widgets with live data.
How to scrape FotMob
- Click Try for free to open FotMob Scraper in Apify Console.
- Pick a date range and optionally league IDs (e.g. 47 for the Premier League).
- Keep Include match details on for stats and events; turn on lineups if needed.
- Optionally add league tables.
- Click Start and download the data as CSV, Excel or JSON.
Input
Example input
{
"dateFrom": "2026-10-03",
"dateTo": "2026-10-05",
"leagueIds": ["47", "87", "54"],
"finishedOnly": true,
"includeDetails": true,
"includeLineups": true,
"standingsLeagueIds": ["47"]
}
| Field | Description |
|---|---|
| From / To date | Match days to collect (max 60 days). |
| League IDs | FotMob league IDs. Popular: 47 Premier League, 87 LaLiga, 54 Bundesliga, 55 Serie A, 53 Ligue 1, 42 Champions League, 73 Europa League, 130 MLS. |
| League name contains | Text filter on league names. |
| Finished matches only | Skip upcoming and live matches. |
| Include match details | Stats, events, venue, referee, attendance. |
| Include lineups | Formations, starters with ratings, subs. |
| Specific match IDs | Scrape these matches directly. |
| League tables | League IDs to export current tables. |
| Max rows | Overall limit (0 = no limit). |
Output
Match example
{
"recordType": "match",
"matchId": 5181794,
"url": "https://www.fotmob.com/match/5181794",
"league": "UEFA Nations League A Grp. 1",
"kickoff": "2026-10-05T18:45:00.000Z",
"status": "Full-Time",
"homeTeam": "France",
"awayTeam": "Belgium",
"homeScore": 4,
"awayScore": 1,
"venue": "Stade de France",
"venueCity": "Saint-Denis",
"referee": "Nick Walsh",
"attendance": 75389,
"playerOfTheMatch": "Michael Olise",
"stats": {
"Ball possession": { "home": 66, "away": 34 },
"Expected goals (xG)": { "home": "1.95", "away": "0.59" },
"Total shots": { "home": 23, "away": 5 },
"Shots on target": { "home": 8, "away": 2 }
},
"events": [
{ "minute": 35, "type": "Goal", "team": "away", "player": "Dodi Lukébakio", "assist": "Roméo Lavia", "scoreAfter": "0-1" },
{ "minute": 57, "type": "Card", "card": "Yellow", "team": "away", "player": "Roméo Lavia" }
]
}
League table example
{
"recordType": "standing",
"leagueId": 47,
"league": "Premier League",
"position": 4,
"team": "Brentford",
"played": 5, "wins": 2, "draws": 3, "losses": 0,
"goalsFor": 10, "goalsAgainst": 4, "goalDifference": 6, "points": 9,
"xG": 9.9, "xGA": 6.31, "xPoints": 8.48
}
How much does it cost to scrape FotMob?
FotMob Scraper uses pay-per-result pricing: a small fixed price per match or table row, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
More sports data
- TennisExplorer Scraper: tennis results, players and odds.
FAQ
How do I find a league ID? Open the league on fotmob.com; the number in the link (e.g. fotmob.com/leagues/47/overview/premier-league) is the ID.
Does it include live matches? Yes. Matches in progress are included with their current score and status, unless you turn on Finished matches only.
How far back can I go? Any past date that FotMob has. Each run covers up to 60 days.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate FotMob Scraper with other apps? FotMob Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape FotMob? The scraper only collects publicly displayed match information. You are responsible for using the data in line with FotMob's terms.
Notes
Original clean-room implementation. Returns only public data. Not affiliated with FotMob.
Input
| Field | Type | Description |
|---|---|---|
dateFromFrom date | string | First match day to collect. Defaults to today. |
dateToTo date | string | Last match day to collect (max 60 days after the start date). Defaults to the start date. |
leagueIdsLeague IDs | array | Only matches from these FotMob league IDs (from the league link, e.g. fotmob.com/leagues/47/... → 47). Popular: 47 Premier League, 87 LaLiga, 54 Bundesliga, 55 Serie A, 53 Ligue 1, 42 Champions League, 73 Europa League, 130 MLS. Leave empty for all leagues. |
leagueNameContainsLeague name contains | string | Optional text filter on league names, e.g. 'Premier League' or 'Copa'. |
finishedOnlyFinished matches only | boolean | Skip upcoming and live matches. Default: false |
includeDetailsInclude match details | boolean | Add match stats (xG, possession, shots…), goals, cards, substitutions, venue, referee, attendance and player of the match. Default: true |
includeLineupsInclude lineups | boolean | Add formations, starting XI, substitutes and player ratings (with match details). Default: false |
matchIdsSpecific match IDs | array | Optional FotMob match IDs (from fotmob.com/match/) to scrape directly. |
standingsLeagueIdsLeague tables | array | Optional league IDs to also export the current league table (with xG, xGA and expected points). |
maxItemsMax rows | integer | Stop after this many rows (matches + table rows). 0 means no limit. Default: 0 |
proxyConfigurationProxy configuration | object | Not required for normal use. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~fotmob-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"standingsLeagueIds": [
"47"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/fotmob-scraper").call(run_input={
"standingsLeagueIds": [
"47"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/fotmob-scraper').call({
"standingsLeagueIds": [
"47"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Result One FotMob match or table row | $0.002 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.