OpenLigaDB

App · Sports · 16 actions

Pull German football results and fixtures into a workflow from OpenLigaDB, the open sports database behind the Bundesliga, its second and third tiers, the DFB-Pokal, the women's Bundesliga, national-team tournaments and hundreds of other competitions, ice hockey and handball among them. Read a matchday's scores goal by goal, a league's table, its scoring charts, one team's fixtures across every competition it plays in, or the record between two clubs. Check the next kick-off for a reminder, or watch a matchday for changes so a workflow only runs when something has actually happened. No account or API key required.

Actions

ActionWhat it does
Get a matchGet one match by its id, with its goals minute by minute, the score at each stage it was recorded at, the venue and the attendance.
Get group tablesGet the standings of a tournament that plays in groups, one table per group, as at a World Cup or a European Championship.
Get head to headGet every match two teams have played against each other, with the record worked out: how many each has won, how many were drawn, and the goals either way.
Get the current matchdayFind which round a league is on right now.
Get the last change dateFind when a matchday's data last changed.
Get the last matchGet the most recently played match in a league, or the last one a single team played.
Get the league tableGet a league's table for a season: every team with its points, its played, won, drawn and lost, its goals either way and its goal difference, in the order OpenLigaDB ranks them.
Get the next matchGet the next match still to be played in a league, or the next one for a single team.
List a team's matchesGet one club's matches around today across every competition OpenLigaDB holds, so a cup tie, a friendly and a league fixture come back together.
List leaguesFind a competition and the shortcut that addresses it.
List matchdaysList the rounds a league's season is played over, each with its number and its name.
List matchesGet the fixtures and results of a league's season, each with its kick-off, its score at half-time and full time, and every goal that was scored.
List result typesList the stages a score can be recorded at.
List sportsList the sports OpenLigaDB holds leagues for: football first and foremost, but also ice hockey, handball, basketball and several more.
List teamsList the teams in a league's season, with the crest and the team id that the head-to-head and team fixture actions take.
List top scorersGet a league season's scoring charts, most goals first, each player with their goal count and their id.

Get a match

Get one match by its id, with its goals minute by minute, the score at each stage it was recorded at, the venue and the attendance. Match ids come back from List matches and from the next and last match actions, so this is the step that follows one of those. No API key required.

Inputs

Match idmatch_idnumberRequired
OpenLigaDB's id for the match, as returned by List matches, Get the next match or Get the last match.At least 1.

Outputs

matchobject
One match, with its score, its stage scores and its goals.
Example output
{
  "match": {
    "goal_count": 5,
    "goals": [
      {
        "comment": null,
        "goal_id": 116409,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 12,
        "score_team1": 0,
        "score_team2": 1,
        "scorer_id": 14289,
        "scorer_name": "Granit Xhaka",
        "scoring_team_id": 6
      },
      {
        "comment": null,
        "goal_id": 116410,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 38,
        "score_team1": 0,
        "score_team2": 2,
        "scorer_id": 18494,
        "scorer_name": "F. Wirtz",
        "scoring_team_id": 6
      },
      {
        "comment": null,
        "goal_id": 116412,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 59,
        "score_team1": 1,
        "score_team2": 2,
        "scorer_id": 18490,
        "scorer_name": "N. Elvedi",
        "scoring_team_id": 87
      },
      {
        "comment": null,
        "goal_id": 116413,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 85,
        "score_team1": 2,
        "score_team2": 2,
        "scorer_id": 18551,
        "scorer_name": "T. Kleindienst",
        "scoring_team_id": 87
      },
      {
        "comment": "+11",
        "goal_id": 116414,
        "is_overtime": true,
        "is_own_goal": false,
        "is_penalty": true,
        "minute": 90,
        "score_team1": 2,
        "score_team2": 3,
        "scorer_id": 18494,
        "scorer_name": "F. Wirtz",
        "scoring_team_id": 6
      }
    ],
    "goals_team1": 2,
    "goals_team2": 3,
    "group_id": 45117,
    "half_time_team1": 0,
    "half_time_team2": 2,
    "is_finished": true,
    "kickoff_local": "2024-08-23T20:30:00",
    "kickoff_utc": "2024-08-23T18:30:00Z",
    "last_update": "2024-08-24T11:29:10.647",
    "league_id": 4741,
    "league_name": "1. Fu\u00dfball-Bundesliga 2024/2025",
    "league_season": "2024",
    "league_shortcut": "bl1",
    "location_city": "M\u00f6nchengladbach",
    "location_id": 32,
    "location_stadium": "Borussia Park",
    "match_id": 72214,
    "matchday": 1,
    "matchday_label": "Matchday 1",
    "matchday_name": "1. Spieltag",
    "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
    "number_of_viewers": null,
    "results": [
      {
        "description": "Ergebnis nach Ende der ersten Halbzeit",
        "kind": "HalfTime",
        "label": "Half-time",
        "name": "Halbzeitergebnis",
        "order": 1,
        "points_team1": 0,
        "points_team2": 2,
        "result_id": 111413,
        "result_type_id": 1
      },
      {
        "description": "Ergebnis nach Ende der offiziellen Spielzeit",
        "kind": "After90Minutes",
        "label": "Full-time",
        "name": "Endergebnis",
        "order": 2,
        "points_team1": 2,
        "points_team2": 3,
        "result_id": 111414,
        "result_type_id": 2
      }
    ],
    "score": "2:3",
    "score_source": "result",
    "status": "finished",
    "team1_icon_url": "https://i.imgur.com/KSIk0Eu.png",
    "team1_id": 87,
    "team1_name": "Borussia M\u00f6nchengladbach",
    "team1_short_name": "Gladbach",
    "team2_icon_url": "https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png",
    "team2_id": 6,
    "team2_name": "Bayer 04 Leverkusen",
    "team2_short_name": "Leverkusen",
    "time_zone_id": "W. Europe Standard Time",
    "winner": "team2",
    "winner_name": "Bayer 04 Leverkusen",
    "winner_team_id": 6
  }
}

Get group tables

Get the standings of a tournament that plays in groups, one table per group, as at a World Cup or a European Championship. Only a competition with a group stage has these; a league that plays one table answers with a message pointing at Get the league table. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.

Outputs

countnumber
How many rows are in this page.
groupslist
The groups, each with its own table.
leaguetext
The league shortcut the answer is about.
seasontext
The season the answer is about.
team_countnumber
How many teams there are across every group.
Example output
{
  "count": 9,
  "groups": [
    {
      "count": 2,
      "group_id": 209,
      "name": "Gruppe A",
      "table": [
        {
          "drawn": 0,
          "goal_difference": 2,
          "goals_against": 0,
          "goals_for": 2,
          "icon_url": "http://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Flag_of_Ecuador.svg/20px-Flag_of_Ecuador.svg.png",
          "lost": 0,
          "name": "Ecuador",
          "played": 1,
          "points": 3,
          "position": 1,
          "short_name": "ECU",
          "team_id": 2670,
          "won": 1
        },
        {
          "drawn": 0,
          "goal_difference": -2,
          "goals_against": 2,
          "goals_for": 0,
          "icon_url": "https://upload.wikimedia.org/wikipedia/commons/6/65/Flag_of_Qatar.svg",
          "lost": 1,
          "name": "Katar",
          "played": 1,
          "points": 0,
          "position": 2,
          "short_name": "QAT",
          "team_id": 4912,
          "won": 0
        }
      ]
    }
  ],
  "league": "WM2022",
  "season": "2022",
  "team_count": 32
}

Get head to head

Get every match two teams have played against each other, with the record worked out: how many each has won, how many were drawn, and the goals either way. OpenLigaDB answers with their whole shared history across every competition it holds, and fixtures still to come are included alongside. No API key required.

Inputs

LeagueleaguetextRequired
The league to pick the two teams from. It only fills the team lists: the answer covers every competition the two have met in.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.
First teamteam_1textRequired
One of the two teams. The record is reported from this team's point of view.
Second teamteam_2textRequired
The other team. It must be a different one.
Match statusstatuslist
Optional. Keep only matches in these states. A match counts as in progress once its kick-off has passed and OpenLigaDB has not yet marked it finished. Choose none to keep them all.One or more of: finished, live (In progress), upcoming (Not started).
Newest firstnewest_firsttrue/false
Optional. Return the latest kick-off first instead of the earliest. Off by default, which is fixture-list order.Default: false.
Number of rowslimitnumber
Optional. How many rows to return. Between 1 and 500; 25 by default.From 1 to 500. Default: 25.
Skipoffsetnumber
Optional. How many rows to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

countnumber
How many rows are in this page.
drawsnumber
How many were drawn.
has_moretrue/false
True when more rows matched than this page holds.
leaguetext
The league the teams were picked from, which does not limit the meetings returned.
matcheslist
The matches in this page.
next_offsetnumber
The offset that fetches the next page. Null when this is the last one.
playednumber
How many of their meetings have been played. The record below counts only these.
seasontext
The season the answer is about.
team_1_goalsnumber
Goals the first team has scored in them.
team_1_idnumber
The first team's id.
team_1_winsnumber
How many the first team won.
team_2_goalsnumber
Goals the second team has scored in them.
team_2_idnumber
The second team's id.
team_2_winsnumber
How many the second team won.
total_countnumber
How many rows matched in total, across every page.
Example output
{
  "count": 1,
  "draws": 19,
  "has_more": true,
  "league": "bl1",
  "matches": [
    {
      "goal_count": 5,
      "goals": [
        {
          "comment": null,
          "goal_id": 116409,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 12,
          "score_team1": 0,
          "score_team2": 1,
          "scorer_id": 14289,
          "scorer_name": "Granit Xhaka",
          "scoring_team_id": 6
        },
        {
          "comment": null,
          "goal_id": 116410,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 38,
          "score_team1": 0,
          "score_team2": 2,
          "scorer_id": 18494,
          "scorer_name": "F. Wirtz",
          "scoring_team_id": 6
        },
        {
          "comment": null,
          "goal_id": 116412,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 59,
          "score_team1": 1,
          "score_team2": 2,
          "scorer_id": 18490,
          "scorer_name": "N. Elvedi",
          "scoring_team_id": 87
        },
        {
          "comment": null,
          "goal_id": 116413,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 85,
          "score_team1": 2,
          "score_team2": 2,
          "scorer_id": 18551,
          "scorer_name": "T. Kleindienst",
          "scoring_team_id": 87
        },
        {
          "comment": "+11",
          "goal_id": 116414,
          "is_overtime": true,
          "is_own_goal": false,
          "is_penalty": true,
          "minute": 90,
          "score_team1": 2,
          "score_team2": 3,
          "scorer_id": 18494,
          "scorer_name": "F. Wirtz",
          "scoring_team_id": 6
        }
      ],
      "goals_team1": 2,
      "goals_team2": 3,
      "group_id": 45117,
      "half_time_team1": 0,
      "half_time_team2": 2,
      "is_finished": true,
      "kickoff_local": "2024-08-23T20:30:00",
      "kickoff_utc": "2024-08-23T18:30:00Z",
      "last_update": "2024-08-24T11:29:10.647",
      "league_id": 4741,
      "league_name": "1. Fu\u00dfball-Bundesliga 2024/2025",
      "league_season": "2024",
      "league_shortcut": "bl1",
      "location_city": "M\u00f6nchengladbach",
      "location_id": 32,
      "location_stadium": "Borussia Park",
      "match_id": 72214,
      "matchday": 1,
      "matchday_label": "Matchday 1",
      "matchday_name": "1. Spieltag",
      "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
      "number_of_viewers": null,
      "results": [
        {
          "description": "Ergebnis nach Ende der ersten Halbzeit",
          "kind": "HalfTime",
          "label": "Half-time",
          "name": "Halbzeitergebnis",
          "order": 1,
          "points_team1": 0,
          "points_team2": 2,
          "result_id": 111413,
          "result_type_id": 1
        },
        {
          "description": "Ergebnis nach Ende der offiziellen Spielzeit",
          "kind": "After90Minutes",
          "label": "Full-time",
          "name": "Endergebnis",
          "order": 2,
          "points_team1": 2,
          "points_team2": 3,
          "result_id": 111414,
          "result_type_id": 2
        }
      ],
      "score": "2:3",
      "score_source": "result",
      "status": "finished",
      "team1_icon_url": "https://i.imgur.com/KSIk0Eu.png",
      "team1_id": 87,
      "team1_name": "Borussia M\u00f6nchengladbach",
      "team1_short_name": "Gladbach",
      "team2_icon_url": "https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png",
      "team2_id": 6,
      "team2_name": "Bayer 04 Leverkusen",
      "team2_short_name": "Leverkusen",
      "time_zone_id": "W. Europe Standard Time",
      "winner": "team2",
      "winner_name": "Bayer 04 Leverkusen",
      "winner_team_id": 6
    }
  ],
  "next_offset": 1,
  "played": 58,
  "season": "2024",
  "team_1_goals": 45,
  "team_1_id": 87,
  "team_1_wins": 12,
  "team_2_goals": 88,
  "team_2_id": 6,
  "team_2_wins": 27,
  "total_count": 67
}

Get the current matchday

Find which round a league is on right now. This is the one action that needs no season: OpenLigaDB works out which season is running and which round of it is next, which is what a weekly digest needs before it can ask for the fixtures. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.

Outputs

foundtrue/false
True when the league is between or during matchdays. False when it is not running at all, which is a normal answer out of season.
group_idnumber
OpenLigaDB's id for the round.
labeltext
The same round in English, e.g. Matchday 1.
leaguetext
The league shortcut the answer is about.
matchdaynumber
The round number, counting from 1.
nametext
The round's name in German, e.g. 1. Spieltag.
Example output
{
  "found": true,
  "group_id": 50633,
  "label": "Matchday 1",
  "league": "bl1",
  "matchday": 1,
  "name": "1. Spieltag"
}

Get the last change date

Find when a matchday's data last changed. This is the cheap check to run on a schedule: compare the answer with the one from the previous run and only fetch the matches when it has moved, rather than pulling a whole matchday every few minutes. Leave the matchday blank to watch whichever round the league is currently on. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.
Matchdaymatchdaytext
Optional. One round of the season, called a Spieltag in the German leagues. Leave blank for the whole season.
Changed sincesincedate and time
Optional. A moment to compare against, usually the last change date the previous run reported. The answer then says outright whether anything has changed. A time with no zone is read as UTC.

Outputs

has_changedtrue/false
True when the change is newer than the moment given. Null when no moment was given, so branch on it only when you passed one.
last_changetext
When the matchday last changed, exactly as OpenLigaDB reports it: its own clock, with no time zone attached. Store this and pass it back as Changed since next run.
last_change_utctext
The same moment read as UTC and formatted consistently, e.g. 2025-08-24T19:25:06Z.
leaguetext
The league shortcut the answer is about.
matchdaynumber
The matchday that was checked.
matchday_urltext
The page on openligadb.de showing that round.
seasontext
The season the answer is about.
used_current_matchdaytrue/false
True when no matchday was given and the league's current one was used.
Example output
{
  "has_changed": true,
  "last_change": "2024-08-27T17:07:06.143",
  "last_change_utc": "2024-08-27T17:07:06Z",
  "league": "bl1",
  "matchday": 1,
  "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
  "season": "2024",
  "used_current_matchday": false
}

Get the last match

Get the most recently played match in a league, or the last one a single team played. With no team this is the league's last kick-off and no season is needed. Pair it with the table for a results round-up. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
Seasonseasontext
Optional. Which season of that league, named for the year it starts in: 2025 is the 2025/2026 season. Leave blank for the most recent season the league has.
Teamteamtext
Optional. One of the teams in the league and season chosen above. Leave blank to cover every team.

Outputs

foundtrue/false
True when there was a match to report. False is a normal answer: a league whose season has not started has no last match, and one that has ended has no next match. Branch on this before reading the match.
leaguetext
The league shortcut the answer is about.
matchobject
One match, with its score, its stage scores and its goals.
teamnumber
The team that was asked about. Null when the league's last match was asked for.
Example output
{
  "found": true,
  "league": "bl1",
  "match": {
    "goal_count": 5,
    "goals": [
      {
        "comment": null,
        "goal_id": 116409,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 12,
        "score_team1": 0,
        "score_team2": 1,
        "scorer_id": 14289,
        "scorer_name": "Granit Xhaka",
        "scoring_team_id": 6
      },
      {
        "comment": null,
        "goal_id": 116410,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 38,
        "score_team1": 0,
        "score_team2": 2,
        "scorer_id": 18494,
        "scorer_name": "F. Wirtz",
        "scoring_team_id": 6
      },
      {
        "comment": null,
        "goal_id": 116412,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 59,
        "score_team1": 1,
        "score_team2": 2,
        "scorer_id": 18490,
        "scorer_name": "N. Elvedi",
        "scoring_team_id": 87
      },
      {
        "comment": null,
        "goal_id": 116413,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 85,
        "score_team1": 2,
        "score_team2": 2,
        "scorer_id": 18551,
        "scorer_name": "T. Kleindienst",
        "scoring_team_id": 87
      },
      {
        "comment": "+11",
        "goal_id": 116414,
        "is_overtime": true,
        "is_own_goal": false,
        "is_penalty": true,
        "minute": 90,
        "score_team1": 2,
        "score_team2": 3,
        "scorer_id": 18494,
        "scorer_name": "F. Wirtz",
        "scoring_team_id": 6
      }
    ],
    "goals_team1": 2,
    "goals_team2": 3,
    "group_id": 45117,
    "half_time_team1": 0,
    "half_time_team2": 2,
    "is_finished": true,
    "kickoff_local": "2024-08-23T20:30:00",
    "kickoff_utc": "2024-08-23T18:30:00Z",
    "last_update": "2024-08-24T11:29:10.647",
    "league_id": 4741,
    "league_name": "1. Fu\u00dfball-Bundesliga 2024/2025",
    "league_season": "2024",
    "league_shortcut": "bl1",
    "location_city": "M\u00f6nchengladbach",
    "location_id": 32,
    "location_stadium": "Borussia Park",
    "match_id": 72214,
    "matchday": 1,
    "matchday_label": "Matchday 1",
    "matchday_name": "1. Spieltag",
    "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
    "number_of_viewers": null,
    "results": [
      {
        "description": "Ergebnis nach Ende der ersten Halbzeit",
        "kind": "HalfTime",
        "label": "Half-time",
        "name": "Halbzeitergebnis",
        "order": 1,
        "points_team1": 0,
        "points_team2": 2,
        "result_id": 111413,
        "result_type_id": 1
      },
      {
        "description": "Ergebnis nach Ende der offiziellen Spielzeit",
        "kind": "After90Minutes",
        "label": "Full-time",
        "name": "Endergebnis",
        "order": 2,
        "points_team1": 2,
        "points_team2": 3,
        "result_id": 111414,
        "result_type_id": 2
      }
    ],
    "score": "2:3",
    "score_source": "result",
    "status": "finished",
    "team1_icon_url": "https://i.imgur.com/KSIk0Eu.png",
    "team1_id": 87,
    "team1_name": "Borussia M\u00f6nchengladbach",
    "team1_short_name": "Gladbach",
    "team2_icon_url": "https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png",
    "team2_id": 6,
    "team2_name": "Bayer 04 Leverkusen",
    "team2_short_name": "Leverkusen",
    "time_zone_id": "W. Europe Standard Time",
    "winner": "team2",
    "winner_name": "Bayer 04 Leverkusen",
    "winner_team_id": 6
  },
  "team": 40
}

Get the league table

Get a league's table for a season: every team with its points, its played, won, drawn and lost, its goals either way and its goal difference, in the order OpenLigaDB ranks them. For a tournament that plays in groups, use Get group tables instead. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.

Outputs

countnumber
How many rows are in this page.
leadertext
The team at the top of the table.
leader_pointsnumber
How many points that team has.
leaguetext
The league shortcut the answer is about.
matches_playednumber
The most matches any team has played, which is how far into the season the table is.
seasontext
The season the answer is about.
tablelist
The table, best placed team first.
Example output
{
  "count": 18,
  "leader": "FC Bayern M\u00fcnchen",
  "leader_points": 82,
  "league": "bl1",
  "matches_played": 34,
  "season": "2024",
  "table": [
    {
      "drawn": 7,
      "goal_difference": 67,
      "goals_against": 32,
      "goals_for": 99,
      "icon_url": "https://upload.wikimedia.org/wikipedia/commons/1/1f/Logo_FC_Bayern_M%C3%BCnchen_%282002%E2%80%932017%29.svg",
      "lost": 2,
      "name": "FC Bayern M\u00fcnchen",
      "played": 34,
      "points": 82,
      "position": 1,
      "short_name": "Bayern",
      "team_id": 40,
      "won": 25
    },
    {
      "drawn": 12,
      "goal_difference": 29,
      "goals_against": 43,
      "goals_for": 72,
      "icon_url": "https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png",
      "lost": 3,
      "name": "Bayer 04 Leverkusen",
      "played": 34,
      "points": 69,
      "position": 2,
      "short_name": "Leverkusen",
      "team_id": 6,
      "won": 19
    }
  ]
}

Get the next match

Get the next match still to be played in a league, or the next one for a single team. With no team this is the league's next kick-off whoever is playing, and no season is needed. This is the action a reminder workflow runs on a schedule. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
Seasonseasontext
Optional. Which season of that league, named for the year it starts in: 2025 is the 2025/2026 season. Leave blank for the most recent season the league has.
Teamteamtext
Optional. One of the teams in the league and season chosen above. Leave blank to cover every team.

Outputs

foundtrue/false
True when there was a match to report. False is a normal answer: a league whose season has not started has no last match, and one that has ended has no next match. Branch on this before reading the match.
leaguetext
The league shortcut the answer is about.
matchobject
One match, with its score, its stage scores and its goals.
teamnumber
The team that was asked about. Null when the league's next match was asked for.
Example output
{
  "found": true,
  "league": "bl1",
  "match": {
    "goal_count": 5,
    "goals": [
      {
        "comment": null,
        "goal_id": 116409,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 12,
        "score_team1": 0,
        "score_team2": 1,
        "scorer_id": 14289,
        "scorer_name": "Granit Xhaka",
        "scoring_team_id": 6
      },
      {
        "comment": null,
        "goal_id": 116410,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 38,
        "score_team1": 0,
        "score_team2": 2,
        "scorer_id": 18494,
        "scorer_name": "F. Wirtz",
        "scoring_team_id": 6
      },
      {
        "comment": null,
        "goal_id": 116412,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 59,
        "score_team1": 1,
        "score_team2": 2,
        "scorer_id": 18490,
        "scorer_name": "N. Elvedi",
        "scoring_team_id": 87
      },
      {
        "comment": null,
        "goal_id": 116413,
        "is_overtime": false,
        "is_own_goal": false,
        "is_penalty": false,
        "minute": 85,
        "score_team1": 2,
        "score_team2": 2,
        "scorer_id": 18551,
        "scorer_name": "T. Kleindienst",
        "scoring_team_id": 87
      },
      {
        "comment": "+11",
        "goal_id": 116414,
        "is_overtime": true,
        "is_own_goal": false,
        "is_penalty": true,
        "minute": 90,
        "score_team1": 2,
        "score_team2": 3,
        "scorer_id": 18494,
        "scorer_name": "F. Wirtz",
        "scoring_team_id": 6
      }
    ],
    "goals_team1": 2,
    "goals_team2": 3,
    "group_id": 45117,
    "half_time_team1": 0,
    "half_time_team2": 2,
    "is_finished": true,
    "kickoff_local": "2024-08-23T20:30:00",
    "kickoff_utc": "2024-08-23T18:30:00Z",
    "last_update": "2024-08-24T11:29:10.647",
    "league_id": 4741,
    "league_name": "1. Fu\u00dfball-Bundesliga 2024/2025",
    "league_season": "2024",
    "league_shortcut": "bl1",
    "location_city": "M\u00f6nchengladbach",
    "location_id": 32,
    "location_stadium": "Borussia Park",
    "match_id": 72214,
    "matchday": 1,
    "matchday_label": "Matchday 1",
    "matchday_name": "1. Spieltag",
    "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
    "number_of_viewers": null,
    "results": [
      {
        "description": "Ergebnis nach Ende der ersten Halbzeit",
        "kind": "HalfTime",
        "label": "Half-time",
        "name": "Halbzeitergebnis",
        "order": 1,
        "points_team1": 0,
        "points_team2": 2,
        "result_id": 111413,
        "result_type_id": 1
      },
      {
        "description": "Ergebnis nach Ende der offiziellen Spielzeit",
        "kind": "After90Minutes",
        "label": "Full-time",
        "name": "Endergebnis",
        "order": 2,
        "points_team1": 2,
        "points_team2": 3,
        "result_id": 111414,
        "result_type_id": 2
      }
    ],
    "score": "2:3",
    "score_source": "result",
    "status": "finished",
    "team1_icon_url": "https://i.imgur.com/KSIk0Eu.png",
    "team1_id": 87,
    "team1_name": "Borussia M\u00f6nchengladbach",
    "team1_short_name": "Gladbach",
    "team2_icon_url": "https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png",
    "team2_id": 6,
    "team2_name": "Bayer 04 Leverkusen",
    "team2_short_name": "Leverkusen",
    "time_zone_id": "W. Europe Standard Time",
    "winner": "team2",
    "winner_name": "Bayer 04 Leverkusen",
    "winner_team_id": 6
  },
  "team": null
}

List a team's matches

Get one club's matches around today across every competition OpenLigaDB holds, so a cup tie, a friendly and a league fixture come back together. Pick the team from a league to get its id, or type part of its name to search without one. The two dates set the window; leave them blank for today plus four weeks. No API key required.

Inputs

Leagueleaguetext
Optional. The league to pick the team from. It only fills the team list: the matches come back from every competition the team plays in, not just this one.
Seasonseasontext
Optional. Which season of that league, named for the year it starts in: 2025 is the 2025/2026 season. Leave blank for the most recent season the league has.
Teamteamtext
Optional. One of the teams in the league and season chosen above. Leave blank to cover every team.
Or search by nameteam_nametext
Optional. Part of a team's name, for a team that is not in the league above. Matching is on any part of the name, so Bayern finds FC Bayern Muenchen. Use this or the team list, not both.
From datefrom_datedate
Optional. Only matches kicking off on or after this day, compared in UTC.
To dateto_datedate
Optional. Only matches kicking off on or before this day, compared in UTC.
Match statusstatuslist
Optional. Keep only matches in these states. A match counts as in progress once its kick-off has passed and OpenLigaDB has not yet marked it finished. Choose none to keep them all.One or more of: finished, live (In progress), upcoming (Not started).
Newest firstnewest_firsttrue/false
Optional. Return the latest kick-off first instead of the earliest. Off by default, which is fixture-list order.Default: false.
Number of rowslimitnumber
Optional. How many rows to return. Between 1 and 500; 25 by default.From 1 to 500. Default: 25.
Skipoffsetnumber
Optional. How many rows to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

countnumber
How many rows are in this page.
from_datetext
The first day of the window that was applied, YYYY-MM-DD.
has_moretrue/false
True when more rows matched than this page holds.
leaguetext
The league the team was picked from, which does not limit the matches returned.
matcheslist
The matches in this page.
next_offsetnumber
The offset that fetches the next page. Null when this is the last one.
seasontext
The season the answer is about.
teamnumber
The team id that was asked about. Null when a name was searched instead.
team_nametext
The name that was searched. Null when a team was picked from the list instead.
to_datetext
The last day of the window that was applied, YYYY-MM-DD.
total_countnumber
How many rows matched in total, across every page.
Example output
{
  "count": 1,
  "from_date": "2024-08-01",
  "has_more": false,
  "league": "bl1",
  "matches": [
    {
      "goal_count": 5,
      "goals": [
        {
          "comment": null,
          "goal_id": 116409,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 12,
          "score_team1": 0,
          "score_team2": 1,
          "scorer_id": 14289,
          "scorer_name": "Granit Xhaka",
          "scoring_team_id": 6
        },
        {
          "comment": null,
          "goal_id": 116410,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 38,
          "score_team1": 0,
          "score_team2": 2,
          "scorer_id": 18494,
          "scorer_name": "F. Wirtz",
          "scoring_team_id": 6
        },
        {
          "comment": null,
          "goal_id": 116412,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 59,
          "score_team1": 1,
          "score_team2": 2,
          "scorer_id": 18490,
          "scorer_name": "N. Elvedi",
          "scoring_team_id": 87
        },
        {
          "comment": null,
          "goal_id": 116413,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 85,
          "score_team1": 2,
          "score_team2": 2,
          "scorer_id": 18551,
          "scorer_name": "T. Kleindienst",
          "scoring_team_id": 87
        },
        {
          "comment": "+11",
          "goal_id": 116414,
          "is_overtime": true,
          "is_own_goal": false,
          "is_penalty": true,
          "minute": 90,
          "score_team1": 2,
          "score_team2": 3,
          "scorer_id": 18494,
          "scorer_name": "F. Wirtz",
          "scoring_team_id": 6
        }
      ],
      "goals_team1": 2,
      "goals_team2": 3,
      "group_id": 45117,
      "half_time_team1": 0,
      "half_time_team2": 2,
      "is_finished": true,
      "kickoff_local": "2024-08-23T20:30:00",
      "kickoff_utc": "2024-08-23T18:30:00Z",
      "last_update": "2024-08-24T11:29:10.647",
      "league_id": 4741,
      "league_name": "1. Fu\u00dfball-Bundesliga 2024/2025",
      "league_season": "2024",
      "league_shortcut": "bl1",
      "location_city": "M\u00f6nchengladbach",
      "location_id": 32,
      "location_stadium": "Borussia Park",
      "match_id": 72214,
      "matchday": 1,
      "matchday_label": "Matchday 1",
      "matchday_name": "1. Spieltag",
      "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
      "number_of_viewers": null,
      "results": [
        {
          "description": "Ergebnis nach Ende der ersten Halbzeit",
          "kind": "HalfTime",
          "label": "Half-time",
          "name": "Halbzeitergebnis",
          "order": 1,
          "points_team1": 0,
          "points_team2": 2,
          "result_id": 111413,
          "result_type_id": 1
        },
        {
          "description": "Ergebnis nach Ende der offiziellen Spielzeit",
          "kind": "After90Minutes",
          "label": "Full-time",
          "name": "Endergebnis",
          "order": 2,
          "points_team1": 2,
          "points_team2": 3,
          "result_id": 111414,
          "result_type_id": 2
        }
      ],
      "score": "2:3",
      "score_source": "result",
      "status": "finished",
      "team1_icon_url": "https://i.imgur.com/KSIk0Eu.png",
      "team1_id": 87,
      "team1_name": "Borussia M\u00f6nchengladbach",
      "team1_short_name": "Gladbach",
      "team2_icon_url": "https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png",
      "team2_id": 6,
      "team2_name": "Bayer 04 Leverkusen",
      "team2_short_name": "Leverkusen",
      "time_zone_id": "W. Europe Standard Time",
      "winner": "team2",
      "winner_name": "Bayer 04 Leverkusen",
      "winner_team_id": 6
    }
  ],
  "next_offset": null,
  "season": "2024",
  "team": 87,
  "team_name": null,
  "to_date": "2024-08-31",
  "total_count": 1
}

List leagues

Find a competition and the shortcut that addresses it. OpenLigaDB holds over 800 league seasons, from the Bundesliga and the DFB-Pokal down to local amateur competitions, so narrow the list by season, sport or a word from the name. Every other action takes the shortcut and season this returns. No API key required.

Inputs

Seasonseasontext
Optional. Only leagues that ran in this season, which is named for the year it starts in: 2025 means 2025/2026. Leave blank for every season, which is a much larger list.
Sportsporttext
Optional. Only leagues in this sport. Leave blank for all of them.
Name containsquerytext
Optional. Only leagues whose name or shortcut contains this text. Matching ignores capitals.
Number of leagueslimitnumber
Optional. How many leagues to return. Between 1 and 500; 50 by default.From 1 to 500. Default: 50.
Skipoffsetnumber
Optional. How many rows to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

countnumber
How many rows are in this page.
has_moretrue/false
True when more rows matched than this page holds.
leagueslist
The leagues in this page, newest season first.
next_offsetnumber
The offset that fetches the next page. Null when this is the last one.
seasontext
The season that was filtered on. Null when every season was searched.
total_countnumber
How many rows matched in total, across every page.
Example output
{
  "count": 1,
  "has_more": false,
  "leagues": [
    {
      "league_id": 4741,
      "matches_url": "https://www.openligadb.de/Matches/bl1/2024/",
      "name": "1. Fu\u00dfball-Bundesliga 2024/2025",
      "season": "2024",
      "shortcut": "bl1",
      "sport_id": 1,
      "sport_label": "Fu\u00dfball (Football)",
      "sport_name": "Fu\u00dfball"
    }
  ],
  "next_offset": null,
  "season": "2024",
  "total_count": 1
}

List matchdays

List the rounds a league's season is played over, each with its number and its name. A German league calls a round a Spieltag and numbers them; a cup names them instead, so a quarter-final comes back under that name. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.

Outputs

countnumber
How many rows are in this page.
leaguetext
The league shortcut the answer is about.
matchdayslist
The matchdays, in the order they are played.
seasontext
The season the answer is about.
Example output
{
  "count": 34,
  "league": "bl1",
  "matchdays": [
    {
      "group_id": 45117,
      "label": "Matchday 1",
      "matchday": 1,
      "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
      "name": "1. Spieltag"
    },
    {
      "group_id": 45118,
      "label": "Matchday 2",
      "matchday": 2,
      "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/2",
      "name": "2. Spieltag"
    }
  ],
  "season": "2024"
}

List matches

Get the fixtures and results of a league's season, each with its kick-off, its score at half-time and full time, and every goal that was scored. Narrow it to one matchday, to one team's whole season, or to the days a weekend covers, and keep only the matches that have finished, are being played, or are still to come. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.
Matchdaymatchdaytext
Optional. One round of the season, called a Spieltag in the German leagues. Leave blank for the whole season.
Teamteam_nametext
Optional. One of the teams in the league and season chosen above. Leave blank for every team's matches.
From datefrom_datedate
Optional. Only matches kicking off on or after this day, compared in UTC.
To dateto_datedate
Optional. Only matches kicking off on or before this day, compared in UTC.
Match statusstatuslist
Optional. Keep only matches in these states. A match counts as in progress once its kick-off has passed and OpenLigaDB has not yet marked it finished. Choose none to keep them all.One or more of: finished, live (In progress), upcoming (Not started).
Newest firstnewest_firsttrue/false
Optional. Return the latest kick-off first instead of the earliest. Off by default, which is fixture-list order.Default: false.
Number of rowslimitnumber
Optional. How many rows to return. Between 1 and 500; 25 by default.From 1 to 500. Default: 25.
Skipoffsetnumber
Optional. How many rows to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

countnumber
How many rows are in this page.
has_moretrue/false
True when more rows matched than this page holds.
leaguetext
The league shortcut the answer is about.
matchdaynumber
The matchday that was filtered on. Null when the whole season was read.
matcheslist
The matches in this page.
next_offsetnumber
The offset that fetches the next page. Null when this is the last one.
seasontext
The season the answer is about.
team_nametext
The team that was filtered on. Null when every team was included.
total_countnumber
How many rows matched in total, across every page.
Example output
{
  "count": 1,
  "has_more": true,
  "league": "bl1",
  "matchday": 1,
  "matches": [
    {
      "goal_count": 5,
      "goals": [
        {
          "comment": null,
          "goal_id": 116409,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 12,
          "score_team1": 0,
          "score_team2": 1,
          "scorer_id": 14289,
          "scorer_name": "Granit Xhaka",
          "scoring_team_id": 6
        },
        {
          "comment": null,
          "goal_id": 116410,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 38,
          "score_team1": 0,
          "score_team2": 2,
          "scorer_id": 18494,
          "scorer_name": "F. Wirtz",
          "scoring_team_id": 6
        },
        {
          "comment": null,
          "goal_id": 116412,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 59,
          "score_team1": 1,
          "score_team2": 2,
          "scorer_id": 18490,
          "scorer_name": "N. Elvedi",
          "scoring_team_id": 87
        },
        {
          "comment": null,
          "goal_id": 116413,
          "is_overtime": false,
          "is_own_goal": false,
          "is_penalty": false,
          "minute": 85,
          "score_team1": 2,
          "score_team2": 2,
          "scorer_id": 18551,
          "scorer_name": "T. Kleindienst",
          "scoring_team_id": 87
        },
        {
          "comment": "+11",
          "goal_id": 116414,
          "is_overtime": true,
          "is_own_goal": false,
          "is_penalty": true,
          "minute": 90,
          "score_team1": 2,
          "score_team2": 3,
          "scorer_id": 18494,
          "scorer_name": "F. Wirtz",
          "scoring_team_id": 6
        }
      ],
      "goals_team1": 2,
      "goals_team2": 3,
      "group_id": 45117,
      "half_time_team1": 0,
      "half_time_team2": 2,
      "is_finished": true,
      "kickoff_local": "2024-08-23T20:30:00",
      "kickoff_utc": "2024-08-23T18:30:00Z",
      "last_update": "2024-08-24T11:29:10.647",
      "league_id": 4741,
      "league_name": "1. Fu\u00dfball-Bundesliga 2024/2025",
      "league_season": "2024",
      "league_shortcut": "bl1",
      "location_city": "M\u00f6nchengladbach",
      "location_id": 32,
      "location_stadium": "Borussia Park",
      "match_id": 72214,
      "matchday": 1,
      "matchday_label": "Matchday 1",
      "matchday_name": "1. Spieltag",
      "matchday_url": "https://www.openligadb.de/Matches/bl1/2024/1",
      "number_of_viewers": null,
      "results": [
        {
          "description": "Ergebnis nach Ende der ersten Halbzeit",
          "kind": "HalfTime",
          "label": "Half-time",
          "name": "Halbzeitergebnis",
          "order": 1,
          "points_team1": 0,
          "points_team2": 2,
          "result_id": 111413,
          "result_type_id": 1
        },
        {
          "description": "Ergebnis nach Ende der offiziellen Spielzeit",
          "kind": "After90Minutes",
          "label": "Full-time",
          "name": "Endergebnis",
          "order": 2,
          "points_team1": 2,
          "points_team2": 3,
          "result_id": 111414,
          "result_type_id": 2
        }
      ],
      "score": "2:3",
      "score_source": "result",
      "status": "finished",
      "team1_icon_url": "https://i.imgur.com/KSIk0Eu.png",
      "team1_id": 87,
      "team1_name": "Borussia M\u00f6nchengladbach",
      "team1_short_name": "Gladbach",
      "team2_icon_url": "https://www.bundesliga-reisefuehrer.de/sites/default/files/B04_Standard_Logo_RGB.png",
      "team2_id": 6,
      "team2_name": "Bayer 04 Leverkusen",
      "team2_short_name": "Leverkusen",
      "time_zone_id": "W. Europe Standard Time",
      "winner": "team2",
      "winner_name": "Bayer 04 Leverkusen",
      "winner_team_id": 6
    }
  ],
  "next_offset": 1,
  "season": "2024",
  "team_name": null,
  "total_count": 9
}

List result types

List the stages a score can be recorded at. With no league this is the five OpenLigaDB shares across the whole database, which is what the kind on a match result refers to. With one it is the stages that league actually records, usually half-time and full time. No API key required.

Inputs

Leagueleaguetext
Optional. Only the stages this league records. Leave blank for the five OpenLigaDB defines globally.
Seasonseasontext
Optional. Which season of that league, named for the year it starts in: 2025 is the 2025/2026 season. Leave blank for the most recent season the league has.

Outputs

countnumber
How many rows are in this page.
leaguetext
The league that was asked about. Null when the global stages were returned.
league_idnumber
The numeric league id the stages were read from. Null for the global stages.
result_typeslist
The result stages, in the order they occur in a match.
seasontext
The season the answer is about.
Example output
{
  "count": 2,
  "league": "bl1",
  "league_id": 4741,
  "result_types": [
    {
      "description": "Ergebnis nach Ende der ersten Halbzeit",
      "global_id": 1,
      "global_name": "Halbzeit",
      "kind": "HalfTime",
      "label": "Half-time",
      "name": "Halbzeitergebnis",
      "order": 1,
      "result_type_id": 5676
    },
    {
      "description": "Ergebnis nach Ende der offiziellen Spielzeit",
      "global_id": 2,
      "global_name": "nach 90 Minuten",
      "kind": "After90Minutes",
      "label": "Full-time",
      "name": "Endergebnis",
      "order": 2,
      "result_type_id": 5677
    }
  ],
  "season": "2024"
}

List sports

List the sports OpenLigaDB holds leagues for: football first and foremost, but also ice hockey, handball, basketball and several more. Each comes back with the id that filters the league list. No API key required.

Inputs

None.

Outputs

countnumber
How many rows are in this page.
sportslist
The sports, as OpenLigaDB numbers them.
Example output
{
  "count": 13,
  "sports": [
    {
      "label": "Fu\u00dfball (Football)",
      "name": "Fu\u00dfball",
      "sport_id": 1
    },
    {
      "label": "Eishockey (Ice Hockey)",
      "name": "Eishockey",
      "sport_id": 2
    }
  ]
}

List teams

List the teams in a league's season, with the crest and the team id that the head-to-head and team fixture actions take. In a tournament each team also comes back with the group it was drawn into. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.

Outputs

countnumber
How many rows are in this page.
leaguetext
The league shortcut the answer is about.
seasontext
The season the answer is about.
teamslist
The teams, in alphabetical order.
Example output
{
  "count": 18,
  "league": "bl1",
  "season": "2024",
  "teams": [
    {
      "group_name": null,
      "icon_url": "https://upload.wikimedia.org/wikipedia/commons/9/9d/1._FC_Heidenheim_1846.svg",
      "name": "1. FC Heidenheim 1846",
      "short_name": "Heidenheim",
      "team_id": 199
    },
    {
      "group_name": null,
      "icon_url": "https://assets.dfb.de/uploads/000/018/232/small_union-Berlin.jpg",
      "name": "1. FC Union Berlin",
      "short_name": "Union Berlin",
      "team_id": 80
    }
  ]
}

List top scorers

Get a league season's scoring charts, most goals first, each player with their goal count and their id. This is the Torjaegerliste OpenLigaDB keeps for the competition. No API key required.

Inputs

LeagueleaguetextRequired
The competition to read, picked from every league OpenLigaDB holds. The list is ordered with the long running competitions first, so the Bundesliga, its lower tiers and the DFB-Pokal are near the top.
SeasonseasontextRequired
Which season of that league. A season is named for the year it starts in, so 2025 is the 2025/2026 season. The list shows only the seasons this league actually has.
Number of rowslimitnumber
Optional. How many rows to return. Between 1 and 500; 25 by default.From 1 to 500. Default: 25.
Skipoffsetnumber
Optional. How many rows to skip before this page. Use the next offset from the previous result to page through. 0 by default.At least 0. Default: 0.

Outputs

countnumber
How many rows are in this page.
has_moretrue/false
True when more rows matched than this page holds.
leaguetext
The league shortcut the answer is about.
next_offsetnumber
The offset that fetches the next page. Null when this is the last one.
scorerslist
The scoring charts, most goals first.
seasontext
The season the answer is about.
top_scorertext
The player at the top of the charts.
top_scorer_goalsnumber
How many goals that player has scored.
total_countnumber
How many rows matched in total, across every page.
Example output
{
  "count": 2,
  "has_more": true,
  "league": "bl1",
  "next_offset": 2,
  "scorers": [
    {
      "goals": 27,
      "name": "H. Kane",
      "player_id": 18898,
      "position": 1
    },
    {
      "goals": 21,
      "name": "S. Guirassy",
      "player_id": 19545,
      "position": 2
    }
  ],
  "season": "2024",
  "top_scorer": "H. Kane",
  "top_scorer_goals": 27,
  "total_count": 321
}

On this page