Skip to main content

SOCCER — OpenLigaDB (api.openligadb.de, community German football)

sportsdataverse.soccer — 11 endpoints.

openligadb_current_group​

Current matchday.

Endpoint URL: GET https://api.openligadb.de/getcurrentgroup/{league_slug}

Valid URL: https://api.openligadb.de/getcurrentgroup/bl1

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).

Returns​

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

col_nametypedescription
group_namecharacter
group_order_idcharacter
group_idcharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_current_group(league_slug='bl1')

Last validated n/a.

openligadb_goalgetters​

Top scorers.

Endpoint URL: GET https://api.openligadb.de/getgoalgetters/{league_slug}/{season}

Valid URL: https://api.openligadb.de/getgoalgetters/bl1/2025

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).
seasonseasonYSeason start year, e.g. 2025 for 2025/26.

Returns​

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

col_nametypedescription
goal_getter_idcharacter
goal_getter_namecharacter
goal_countinteger

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_goalgetters(league_slug='bl1', season='2025')

Last validated n/a.

openligadb_group_matches​

Matches of one matchday.

Endpoint URL: GET https://api.openligadb.de/getmatchdata/{league_slug}/{season}/{group}

Valid URL: https://api.openligadb.de/getmatchdata/bl1/2025/1

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).
seasonseasonYSeason start year, e.g. 2025 for 2025/26.
groupgroupYMatchday number (groupOrderID from /getavailablegroups), e.g. 1.

Returns​

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

col_nametypedescription
match_idcharacter
match_date_timecharacter
time_zone_idcharacter
league_idcharacter
league_namecharacter
league_seasoninteger
league_shortcutcharacter
match_date_time_utccharacter
last_update_date_timecharacter
match_is_finishedlogical
match_resultscharacter
goalscharacter
locationcharacter
number_of_viewerscharacter
group_group_namecharacter
group_group_order_idcharacter
group_group_idcharacter
team1_team_idcharacter
team1_team_namecharacter
team1_short_namecharacter
team1_team_icon_urlcharacter
team1_team_group_namecharacter
team2_team_idcharacter
team2_team_namecharacter
team2_short_namecharacter
team2_team_icon_urlcharacter
team2_team_group_namecharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_group_matches(group='1', league_slug='bl1', season='2025')

Last validated n/a.

openligadb_groups​

Matchdays of a league-season.

Endpoint URL: GET https://api.openligadb.de/getavailablegroups/{league_slug}/{season}

Valid URL: https://api.openligadb.de/getavailablegroups/bl1/2025

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).
seasonseasonYSeason start year, e.g. 2025 for 2025/26.

Returns​

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

col_nametypedescription
group_namecharacter
group_order_idcharacter
group_idcharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_groups(league_slug='bl1', season='2025')

Last validated n/a.

openligadb_last_change_date​

Last change timestamp (bare ISO string).

Endpoint URL: GET https://api.openligadb.de/getlastchangedate/{league_slug}/{season}/{group}

Valid URL: https://api.openligadb.de/getlastchangedate/bl1/2025/1

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).
seasonseasonYSeason start year, e.g. 2025 for 2025/26.
groupgroupYMatchday number (groupOrderID from /getavailablegroups), e.g. 1.

Returns​

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

col_nametypedescription
valuecharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_last_change_date(group='1', league_slug='bl1', season='2025')

Last validated n/a.

openligadb_leagues​

All leagues (shortcut, season, sport).

Endpoint URL: GET https://api.openligadb.de/getavailableleagues

Valid URL: https://api.openligadb.de/getavailableleagues

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
league_idcharacter
league_namecharacter
league_shortcutcharacter
league_seasoncharacter
sport_sport_idcharacterYahoo identifier of the sport the league belongs to.
sport_sport_namecharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_leagues()

Last validated n/a.

openligadb_match​

One match.

Endpoint URL: GET https://api.openligadb.de/getmatchdata/{match_id}

Valid URL: https://api.openligadb.de/getmatchdata/77264

API ParameterPythonPatternRequiredNullableDescription
match_idmatch_idYMatch id (matchID from any getmatchdata list), e.g. 77264.

Returns​

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

col_nametypedescription
match_idcharacter
match_date_timecharacter
time_zone_idcharacter
league_idcharacter
league_namecharacter
league_seasoninteger
league_shortcutcharacter
match_date_time_utccharacter
last_update_date_timecharacter
match_is_finishedlogical
match_resultscharacter
goalscharacter
locationcharacter
number_of_viewerscharacter
group_group_namecharacter
group_group_order_idcharacter
group_group_idcharacter
team1_team_idcharacter
team1_team_namecharacter
team1_short_namecharacter
team1_team_icon_urlcharacter
team1_team_group_namecharacter
team2_team_idcharacter
team2_team_namecharacter
team2_short_namecharacter
team2_team_icon_urlcharacter
team2_team_group_namecharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_match(match_id='77264')

Last validated n/a.

openligadb_next_match​

Next match of a team (404 text once the season is over).

Endpoint URL: GET https://api.openligadb.de/getnextmatchbyleagueteam/{league_id}/{team_id}

Valid URL: https://api.openligadb.de/getnextmatchbyleagueteam/4937/40

API ParameterPythonPatternRequiredNullableDescription
league_idleague_idYNumeric leagueId from /getavailableleagues of a season still in progress, e.g. 4937 (bl1 2026); a finished season answers 404 text.
team_idteam_idYTeam id (teamId from /getavailableteams), e.g. 40 (FC Bayern München).

Returns​

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

col_nametypedescription
match_idcharacter
match_date_timecharacter
time_zone_idcharacter
league_idcharacter
league_namecharacter
league_seasoninteger
league_shortcutcharacter
match_date_time_utccharacter
last_update_date_timecharacter
match_is_finishedlogical
match_resultscharacter
goalscharacter
locationcharacter
number_of_viewerscharacter
group_group_namecharacter
group_group_order_idcharacter
group_group_idcharacter
team1_team_idcharacter
team1_team_namecharacter
team1_short_namecharacter
team1_team_icon_urlcharacter
team1_team_group_namecharacter
team2_team_idcharacter
team2_team_namecharacter
team2_short_namecharacter
team2_team_icon_urlcharacter
team2_team_group_namecharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_next_match(league_id='4937', team_id='40')

Last validated n/a.

openligadb_season_matches​

All matches of a season.

Endpoint URL: GET https://api.openligadb.de/getmatchdata/{league_slug}/{season}

Valid URL: https://api.openligadb.de/getmatchdata/bl1/2025

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).
seasonseasonYSeason start year, e.g. 2025 for 2025/26.

Returns​

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

col_nametypedescription
match_idcharacter
match_date_timecharacter
time_zone_idcharacter
league_idcharacter
league_namecharacter
league_seasoninteger
league_shortcutcharacter
match_date_time_utccharacter
last_update_date_timecharacter
match_is_finishedlogical
match_resultscharacter
goalscharacter
locationcharacter
number_of_viewerscharacter
group_group_namecharacter
group_group_order_idcharacter
group_group_idcharacter
team1_team_idcharacter
team1_team_namecharacter
team1_short_namecharacter
team1_team_icon_urlcharacter
team1_team_group_namecharacter
team2_team_idcharacter
team2_team_namecharacter
team2_short_namecharacter
team2_team_icon_urlcharacter
team2_team_group_namecharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_season_matches(league_slug='bl1', season='2025')

Last validated n/a.

openligadb_table​

League table.

Endpoint URL: GET https://api.openligadb.de/getbltable/{league_slug}/{season}

Valid URL: https://api.openligadb.de/getbltable/bl1/2025

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).
seasonseasonYSeason start year, e.g. 2025 for 2025/26.

Returns​

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

col_nametypedescription
team_info_idcharacter
team_namecharacter
short_namecharacter
team_icon_urlcharacter
pointsinteger
opponent_goalsinteger
goalsinteger
matchesinteger
woninteger
lostinteger
drawinteger
goal_diffinteger

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_table(league_slug='bl1', season='2025')

Last validated n/a.

openligadb_teams​

Teams of a league-season.

Endpoint URL: GET https://api.openligadb.de/getavailableteams/{league_slug}/{season}

Valid URL: https://api.openligadb.de/getavailableteams/bl1/2025

API ParameterPythonPatternRequiredNullableDescription
league_slugleague_slugYLeague shortcut from /getavailableleagues, e.g. bl1 (Bundesliga).
seasonseasonYSeason start year, e.g. 2025 for 2025/26.

Returns​

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

col_nametypedescription
team_idcharacterESPN numeric identifier for the team.
team_namecharacter
short_namecharacter
team_icon_urlcharacter
team_group_namecharacter

return_parsed=False — the raw JSON Dict payload, unparsed.

Example​

openligadb_teams(league_slug='bl1', season='2025')

Last validated n/a.