Skip to main content

SOCCER — FotMob data API (fotmob.com, unofficial)

sportsdataverse.soccer — 14 endpoints.

fotmob_all_leagues​

Every league FotMob covers, grouped as popular / international / by country.

Endpoint URL: GET https://www.fotmob.com/api/data/allLeagues

Valid URL: https://www.fotmob.com/api/data/allLeagues

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
popularcharacter
internationalcharacter
countriescharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_all_leagues()

Last validated n/a.

fotmob_audio_matches​

Matches with audio commentary available, with their languages.

Endpoint URL: GET https://www.fotmob.com/api/data/audio-matches

Valid URL: https://www.fotmob.com/api/data/audio-matches

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idcharacterProvider identifier for the entity (Utf8 join key).
langscharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_audio_matches()

Last validated n/a.

fotmob_leagues​

League page: details, tabs, current table, fixtures, stats, transfers (one wide row).

Endpoint URL: GET https://www.fotmob.com/api/data/leagues

Valid URL: https://www.fotmob.com/api/data/leagues?id=47&tab=overview&type=league&timeZone=UTC

API ParameterPythonPatternRequiredNullableDescription
ididYRequired. League, team or player id (numeric string).
tabtabYPage tab, e.g. overview, table, fixtures, stats.
typetypeYleague or team.
timeZonetime_zoneYIANA zone for kickoff times.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
tabscharacter
all_available_seasonscharacter
seostrcharacter
qa_datacharacter
tablecharacter
playoffcharacterWhether the league entry is a playoff competition; null when Fotmob ships no flag.
seasonscharacterNested list (stringified) of the seasons the source publishes for the league.
details_idcharacter
details_typecharacter
details_namecharacter
details_selected_seasoncharacter
details_latest_seasoncharacter
details_short_namecharacter
details_countrycharacter
details_gendercharacter
details_national_team_idcharacter
details_faq_jsonldcharacter
details_breadcrumb_jsonldcharacter
details_can_sync_calendarlogical
details_has_fixture_difficultylogical
details_league_colorcharacter
details_data_providercharacter
details_seopathcharacter
transfers_typecharacter
transfers_datacharacter
overview_seasoncharacter
overview_selected_seasoncharacter
overview_tablecharacter
overview_top_playerscharacter
overview_has_totwlogical
overview_league_overview_matchescharacter
overview_has_ongoing_matchlogical
overview_shot_mapcharacter
overview_matchescharacter
stats_playerscharacter
stats_teamscharacter
stats_season_stat_linkscharacter
stats_seasons_with_linkscharacter
fixtures_first_unplayed_matchcharacter
fixtures_all_matchescharacter
fixtures_has_ongoing_matchlogical
fixtures_fixture_infocharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_leagues(id='47', tab='overview', time_zone='UTC', type='league')

Last validated n/a.

fotmob_match_details​

Match page: general info, header, lineups, events, stats (one wide row).

Endpoint URL: GET https://www.fotmob.com/api/data/matchDetails

Valid URL: https://www.fotmob.com/api/data/matchDetails?matchId=4813647

API ParameterPythonPatternRequiredNullableDescription
matchIdmatch_idYRequired. Match id (from /matches).

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
navcharacter
ongoinglogicalWhether the match was in progress when the payload was fetched.
has_pending_varlogical
general_match_idcharacter
general_match_namecharacter
general_match_roundcharacter
general_team_colorscharacter
general_league_idcharacter
general_league_namecharacter
general_league_round_namecharacter
general_parent_league_idcharacter
general_country_codecharacter
general_home_teamcharacter
general_away_teamcharacter
general_coverage_levelcharacter
general_match_time_utccharacter
general_match_time_utc_datecharacter
general_startedlogical
general_finishedlogical
general_gendercharacter
header_teamscharacter
header_statuscharacter
header_eventscharacter
content_match_factscharacter
content_livetickercharacter
content_superlivecharacter
content_buzzcharacter
content_statscharacter
content_player_statscharacter
content_shotmapcharacter
content_weathercharacter
content_lineupcharacter
content_has_playofflogical
content_tablecharacter
content_h2hcharacter
content_momentumcharacter
content_highlight_storiescharacter
content_heatmap_urlcharacter
seo_pathcharacter
seo_event_jsonldcharacter
seo_breadcrumb_jsonldcharacter
seo_faq_jsonldcharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_match_details(match_id='4813647')

Last validated n/a.

fotmob_matches​

All matches on a date, one row per league with that league's matches nested.

Endpoint URL: GET https://www.fotmob.com/api/data/matches

Valid URL: https://www.fotmob.com/api/data/matches?date=20260301&timezone=UTC

API ParameterPythonPatternRequiredNullableDescription
datedateYYYYYMMDD.
timezonetimezoneYIANA zone.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
ccodecharacter
idcharacterProvider identifier for the entity (Utf8 join key).
primary_idcharacter
namecharacterDisplay name.
matchescharacter
internal_rankinteger
simple_leaguelogical
local_rankinteger

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_matches(date='20260301', timezone='UTC')

Last validated n/a.

fotmob_player_data​

Player page: bio, primary team, career history, recent matches, stats (one wide row).

Endpoint URL: GET https://www.fotmob.com/api/data/playerData

Valid URL: https://www.fotmob.com/api/data/playerData?id=1077894

API ParameterPythonPatternRequiredNullableDescription
ididYRequired. League, team or player id (numeric string).

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idcharacterProvider identifier for the entity (Utf8 join key).
namecharacterDisplay name.
is_coachlogical
is_captainlogical
gendercharacterPlayer's gender as Fotmob ships it (e.g. 'male').
injury_informationcharacter
international_dutycharacter
player_informationcharacter
recent_matchescharacter
matches_urlcharacter
coach_statscharacter
stat_seasonscharacter
statuscharacterPlayer's status as Fotmob ships it (e.g. 'active').
data_providercharacter
birth_date_utc_timecharacter
birth_date_timezonecharacter
contract_end_utc_timecharacter
contract_end_timezonecharacter
primary_team_team_idcharacter
primary_team_team_namecharacter
primary_team_on_loanlogical
primary_team_team_colorscharacter
position_description_positionscharacter
position_description_primary_positioncharacter
position_description_non_primary_positionscharacter
main_league_league_idcharacter
main_league_league_namecharacter
main_league_seasoncharacter
main_league_statscharacter
trophies_player_trophiescharacter
trophies_coach_trophiescharacter
match_filters_teamscharacter
match_filters_leaguescharacter
career_history_show_footnotelogical
career_history_career_itemscharacter
career_history_full_careerlogical
traits_keycharacter
traits_titlecharacter
traits_itemscharacter
meta_seopathcharacter
meta_pageurlcharacter
meta_faq_jsonldcharacter
meta_person_jsonldcharacter
meta_breadcrumb_jsonldcharacter
first_season_stats_section_ordercharacter
first_season_stats_shotmapcharacter
first_season_stats_stats_sectioncharacter
first_season_stats_top_stat_cardcharacter
first_season_stats_heatmapcharacter
first_season_stats_keeper_shotmapcharacter
first_season_stats_shotmap_team_colorscharacter
market_values_valuescharacter
related_links_data_teammatescharacter
related_links_data_mens_national_teamcharacter
related_links_data_womens_national_teamcharacter
next_match_match_idcharacter
next_match_home_idcharacter
next_match_away_idcharacter
next_match_home_namecharacter
next_match_away_namecharacter
next_match_match_datecharacter
next_match_status_idcharacter
next_match_league_idcharacter
next_match_parent_league_idcharacter
next_match_league_namecharacter
next_match_statuscharacter
next_match_stadiumcharacter
next_match_match_urlcharacter
initial_matches_page_matchescharacter
initial_matches_page_previouscharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_player_data(id='1077894')

Last validated n/a.

fotmob_search_suggest​

Search suggestions for a term, one row per result group (players, teams, leagues).

Endpoint URL: GET https://www.fotmob.com/api/data/search/suggest

Valid URL: https://www.fotmob.com/api/data/search/suggest?term=haaland&lang=en

API ParameterPythonPatternRequiredNullableDescription
termtermYRequired. Search text.
langlangYLanguage code.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
suggestionscharacter
title_keycharacter
title_valuecharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_search_suggest(lang='en', term='haaland')

Last validated n/a.

fotmob_table​

A data.fotmob.com league table file: legend, filters and the all/home/away/xg tables.

Endpoint URL: GET https://www.fotmob.com/api/data/table

Valid URL: https://www.fotmob.com/api/data/table?url=http%3A%2F%2Fdata.fotmob.com%2Ftables.ext.47.fot.gz

API ParameterPythonPatternRequiredNullableDescription
urlurlYRequired. The data.fotmob.com table file to return, e.g. http://data.fotmob.com/tables.ext.47.fot.gz.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
ccodecharacter
league_idcharacterFotmob league id of the table, as a string.
page_urlcharacter
league_namecharacterFotmob league name of the table (e.g. 'Premier League').
legendcharacter
ongoingcharacterStringified list of the team's ongoing matches at capture; empty when none.
table_filter_typescharacter
compositelogical
table_allcharacter
table_homecharacter
table_awaycharacter
table_xgcharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_table(url='http://data.fotmob.com/tables.ext.47.fot.gz')

Last validated n/a.

fotmob_teams​

Team page: details, squad, table, fixtures, stats, transfers, history (one wide row).

Endpoint URL: GET https://www.fotmob.com/api/data/teams

Valid URL: https://www.fotmob.com/api/data/teams?id=8650&tab=overview&type=team&timeZone=UTC

API ParameterPythonPatternRequiredNullableDescription
ididYRequired. League, team or player id (numeric string).
tabtabYPage tab, e.g. overview, table, fixtures, stats.
typetypeYleague or team.
timeZonetime_zoneYIANA zone for kickoff times.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
tabscharacter
all_available_seasonscharacter
seostrcharacter
qa_datacharacter
tablecharacter
details_idcharacter
details_typecharacter
details_namecharacter
details_latest_seasoncharacter
details_short_namecharacter
details_countrycharacter
details_gendercharacter
details_national_team_idcharacter
details_faq_jsonldcharacter
details_sports_team_jsonldcharacter
details_breadcrumb_jsonldcharacter
details_can_sync_calendarlogical
details_has_fixture_difficultylogical
details_primary_league_idcharacter
details_primary_league_namecharacter
details_team_colorcharacter
details_seopathcharacter
transfers_typecharacter
transfers_datacharacter
transfers_all_transferscharacter
transfers_all_rumourscharacter
transfers_max_feeinteger
transfers_our_team_idcharacter
overview_seasoncharacter
overview_selected_seasoncharacter
overview_tablecharacter
overview_top_playerscharacter
overview_venuecharacter
overview_coach_historycharacter
overview_overview_fixturescharacter
overview_next_matchcharacter
overview_last_matchcharacter
overview_team_formcharacter
overview_has_ongoing_matchlogical
overview_previous_fixtures_urlcharacter
overview_team_colorscharacter
overview_last_lineup_statscharacter
overview_news_summarycharacter
overview_featured_articlecharacter
overview_fixture_difficultycharacter
overview_squadcharacter
overview_transferscharacter
stats_team_idcharacter
stats_primary_league_idcharacter
stats_primary_season_idcharacter
stats_playerscharacter
stats_teamscharacter
stats_tournament_idcharacter
stats_tournament_seasonscharacter
fixtures_all_fixturescharacter
fixtures_primary_tournament_idcharacter
fixtures_previous_fixtures_urlcharacter
fixtures_has_ongoing_matchlogical
squad_squadcharacter
squad_is_national_teamlogical
history_trophy_listcharacter
history_historical_table_datacharacter
history_team_color_mapcharacter
history_tablescharacter
history_coach_historycharacter
history_team_colorscharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_teams(id='8650', tab='overview', time_zone='UTC', type='team')

Last validated n/a.

fotmob_tlnews​

News timeline for a league or team, one row per story.

Endpoint URL: GET https://www.fotmob.com/api/data/tlnews

Valid URL: https://www.fotmob.com/api/data/tlnews?id=47&type=league&startIndex=0

API ParameterPythonPatternRequiredNullableDescription
ididYRequired. League, team or player id (numeric string).
typetypeYRequired. league or team.
startIndexstart_indexYRequired. Paging offset for the news timeline.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idcharacterProvider identifier for the entity (Utf8 join key).
image_urlcharacterURL of the article's lead image.
titlecharacterDisplay title.
gmt_timecharacter
source_strcharacter
source_icon_urlcharacter
languagecharacterLanguage code of the article (e.g. 'en').
page_urlcharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_tlnews(id='47', start_index='0', type='league')

Last validated n/a.

fotmob_top_transfers​

Top transfers across FotMob, one row per transfer.

Endpoint URL: GET https://www.fotmob.com/api/data/top-transfers

Valid URL: https://www.fotmob.com/api/data/top-transfers

API ParameterPythonPatternRequiredNullableDescription

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
namecharacterDisplay name.
player_idcharacterFotmob player id of the transferred player, as a string.
transfer_datecharacterTimestamp the transfer was recorded (ISO-8601 UTC).
transfer_textcharacter
from_clubcharacter
from_club_full_namecharacter
from_club_idcharacter
to_clubcharacter
to_club_full_namecharacter
to_club_idcharacter
amount_euro_estimatedinteger
contract_extensionlogical
on_loanlogical
from_datecharacter
to_datecharacter
market_valueinteger
position_labelcharacter
position_keycharacter
from_club_colors_light_modecharacter
from_club_colors_dark_modecharacter
to_club_colors_light_modecharacter
to_club_colors_dark_modecharacter
fee_fee_textcharacter
fee_localized_fee_textcharacter
transfer_type_textcharacter
transfer_type_localization_keycharacter
fee_valueinteger

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_top_transfers()

Last validated n/a.

fotmob_totw_rounds​

Team-of-the-week rounds for a league season, one row per round.

Endpoint URL: GET https://www.fotmob.com/api/data/team-of-the-week/rounds

Valid URL: https://www.fotmob.com/api/data/team-of-the-week/rounds?leagueId=47&season=2025%2F2026

API ParameterPythonPatternRequiredNullableDescription
leagueIdleague_idYRequired. League id.
seasonseasonYe.g. 2025/2026.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
localized_keycharacter
round_idcharacterComposite id of the round.
linkcharacterFotmob API URL of the round's team-of-the-week payload.
is_completedlogical

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_totw_rounds(league_id='47', season='2025/2026')

Last validated n/a.

Trending news stories (host-root route), one row per story.

Endpoint URL: GET https://www.fotmob.com/api/trendingnews

Valid URL: https://www.fotmob.com/api/trendingnews?lang=en

API ParameterPythonPatternRequiredNullableDescription
langlangYLanguage code.

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idcharacterProvider identifier for the entity (Utf8 join key).
image_urlcharacterURL of the article's lead image.
titlecharacterDisplay title.
gmt_timecharacter
source_strcharacter
source_icon_urlcharacter
page_urlcharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

fotmob_trending_news(lang='en')

Last validated n/a.

fotmob_tvlistings​

TV listings for a country, one row per broadcast with the match id in id.

Endpoint URL: GET https://www.fotmob.com/api/data/tvlistings

Valid URL: https://www.fotmob.com/api/data/tvlistings?countryCode=GB

API ParameterPythonPatternRequiredNullableDescription
countryCodecountry_codeYRequired. ISO country for TV listings.

Returns​

return_parsed=True (default) — a tidy polars.DataFrame with the columns below; pass return_as_pandas=True for a pandas.DataFrame.

col_nametypedescription
idcharacterProvider identifier for the entity (Utf8 join key).
start_timecharacterBroadcast start as an ASP.NET-style '/Date()/' string (milliseconds since the Unix epoch).
end_timecharacterBroadcast end as an ASP.NET-style '/Date()/' string; a large negative value is Fotmob's 'unset' sentinel.
qualifierscharacterStringified list of listing qualifiers (e.g. ['Live']).
station_idcharacter
match_idcharacter
league_idcharacterFotmob league id of the listing's competition, as a string.
parent_league_idcharacter
bet365_match_idcharacter
external_idcharacterProvider-side identifier for the media item, matching the play id it accompanies.
affiliatescharacter
tagscharacterContent tags, JSON-encoded.
station_call_signcharacter
station_station_idcharacter
station_affiliate_idcharacter
station_affiliate_call_signcharacter
station_namecharacter
station_typecharacter
station_blocked_country_codescharacter
program_root_idcharacter
program_teamscharacter

return_parsed=False — the decoded JSON body (a page object, a one-list envelope, an id-keyed map or a list; {} or null for an unknown id).

Example​

fotmob_tvlistings(country_code='GB')

Last validated n/a.