2026 BALLON D’OR: HOW TO RETRIEVE PODIUM STATISTICS USING API-FOOTBALL

- Posted in Tutorials by

Harry Kane won the 2026 Ballon d'Or after an exceptional season with Bayern Munich and England. In the communications published after the announcement of the result, one figure particularly sums up his campaign: 73 goals in 65 games.

However, the Ballon d'Or is not awarded using a formula based solely on goals, assists or the number of appearances. Its ranking results from a vote that takes several aspects of the players' season into account. The statistics presented in this article can therefore illustrate some of the performances of the podium players, but they cannot explain their ranking on their own.

Once the official result is known, the figures associated with Harry Kane's season can be retrieved with API-FOOTBALL. However, this exercise requires more than a single call. Club competitions and international competitions do not all follow the same API season. To obtain the published total, you need to define the period being studied, combine several competitions and, in some cases, work on a match-by-match basis.

This guide shows how to retrieve the following figures for the 2025/2026 campaign:

  • Bayern Munich: 51 games, 61 goals and 7 assists
  • England: 14 games, 12 goals and 1 assist
  • Total: 65 games, 73 goals and 8 assists

The calls shown use the base URL https://v3.football.api-sports.io. The API key must be sent in the x-apisports-key header from your backend or testing tool.

Define the scope

A season statistic only makes sense when its scope is clearly defined. Here, the objective is to retrieve the published total of 73 goals in 65 appearances for the 2025/2026 campaign.

The expression “2025/2026 season” is an editorial convention. It does not correspond to a single season value that can be applied to every competition in the API.

We will use the following IDs:

  • Harry Kane → player=184
  • Bayern Munich → team=157
  • England → team=10

Retrieve the statistics with Bayern Munich

The four selected competitions use season=2025, which in this case corresponds to the 2025/2026 season. They are the Bundesliga, the Champions League, the DFB-Pokal and the German Super Cup.

Bundesliga

The Bundesliga uses league=78:

GET https://v3.football.api-sports.io/players?id=184&league=78&season=2025&team=157

The useful block is located in response[].statistics[]. Here is an extract from the response:

...
},
                    "games": {
                        "appearences": 31,
                        "lineups": 25,
                        "minutes": 2382,
                        "number": 9,
                        "position": "Attacker",
                        "rating": "7.87",
                        "captain": false
                    },
                    "substitutes": {
                        "in": 6,
                        "out": 8,
                        "bench": 7
                    },
                    "shots": {
                        "total": 91,
                        "on": 67
                    },
                    "goals": {
                        "total": 36,
                        "conceded": 0,
                        "assists": 5,
                        "saves": null
                    },
                    "passes": {
                        "total": 727,
                        "key": 40,
                        "accuracy": 81
                    },
...

This block shows 31 appearances, 36 goals and 5 assists.

UEFA Champions League

The Champions League uses league=2:

GET https://v3.football.api-sports.io/players?id=184&league=2&season=2025&team=157
            },
            "statistics": [
                {
                    "team": {
                        "id": 157,
                        "name": "Bayern München",
                        "logo": "https://media.api-sports.io/football/teams/157.png"
                    },
                    "league": {
                        "id": 2,
                        "name": "UEFA Champions League",
                        "country": "World",
                        "logo": "https://media.api-sports.io/football/leagues/2.png",
                        "flag": null,
                        "season": 2025
                    },

This block shows 13 appearances, 14 goals and 2 assists.

DFB-Pokal

The German Cup uses league=81:

GET https://v3.football.api-sports.io/players?id=184&league=81&season=2025&team=157
            },
            "statistics": [
                {
                    "team": {
                        "id": 157,
                        "name": "Bayern München",
                        "logo": "https://media.api-sports.io/football/teams/157.png"
                    },
                    "league": {
                        "id": 81,
                        "name": "DFB Pokal",
                        "country": "Germany",
                        "logo": "https://media.api-sports.io/football/leagues/81.png",
                        "flag": "https://media.api-sports.io/flags/de.svg",
                        "season": 2025
                    },

This block shows 6 appearances, 10 goals and no assists.

German Super Cup

The German Super Cup, officially presented as the Franz Beckenbauer Supercup since 2025, uses league=529:

GET https://v3.football.api-sports.io/players?id=184&league=529&season=2025&team=157
            },
            "statistics": [
                {
                    "team": {
                        "id": 157,
                        "name": "Bayern München",
                        "logo": "https://media.api-sports.io/football/teams/157.png"
                    },
                    "league": {
                        "id": 529,
                        "name": "Super Cup",
                        "country": "Germany",
                        "logo": "https://media.api-sports.io/football/leagues/529.png",
                        "flag": "https://media.api-sports.io/flags/de.svg",
                        "season": 2025
                    },

This block shows 1 appearance, 1 goal and no assists.

Total with Bayern Munich

Adding the four competitions gives us a total of 51 games, 61 goals and 7 assists.

Competition Games Goals Assists
Bundesliga 31 36 5
UEFA Champions League 13 14 2
DFB-Pokal 6 10 0
German Super Cup 1 1 0

Two other competitions appear in the data, but they must not be added to the total being calculated:

  • FIFA Club World Cup
  • Friendlies Clubs

The 2025 Club World Cup also uses season=2025, but it belongs to a different sporting period from the one selected for this total. Club friendlies are not part of the 51 official games either.

Therefore, the same season value does not mean that every competition must be added together.

Retrieve the statistics with England

The international section includes the European World Cup qualifiers, international friendlies and the 2026 World Cup. These competitions do not all use the same season value.

European World Cup qualifiers

The qualifiers use league=32 and season=2024:

GET https://v3.football.api-sports.io/players?id=184&league=32&season=2024&team=10

This call returns 8 games and 8 goals. The result is correct for the entire qualifying campaign, but it is too broad for the period studied here. It includes games played before the beginning of our 2025/2026 scope.

You must therefore start by selecting the fixtures between the required dates using the from and to filters:

GET https://v3.football.api-sports.io/fixtures?league=32&season=2024&team=10&from=2025-08-03&to=2026-03-31

The response contains the following five games:

  • England vs Andorra → fixture=1323291
  • Serbia vs England → fixture=1323310
  • Latvia vs England → fixture=1323342
  • England vs Serbia → fixture=1323347
  • Albania vs England → fixture=1323361

To obtain Kane's statistics in each game, then call /fixtures/players:

GET https://v3.football.api-sports.io/fixtures/players?fixture={FIXTURE_ID}&team=10

Replace {FIXTURE_ID} with the game ID, then look for the entry where player.id is 184.

Match Fixture ID Goals Assists
England vs Andorra 1323291 0 0
Serbia vs England 1323310 1 0
Latvia vs England 1323342 2 0
England vs Serbia 1323347 0 0
Albania vs England 1323361 2 0

Kane totals 5 appearances and 5 goals in the selected part of the qualifying campaign.

This method requires several calls, but it gives you precise control over the period. It prevents every game from a broader API season from being automatically attributed to the 2025/2026 campaign.

International friendlies

National team friendlies use league=10 and season=2026:

GET https://v3.football.api-sports.io/players?id=184&league=10&season=2026&team=10

The result shows 2 appearances, 1 goal and no assists.

Opponent Fixture ID Goals
New Zealand 1525492 1
Costa Rica 1525494 0

Harry Kane does not appear in the player data for the games against Uruguay and Japan. These two games are therefore not counted as player appearances.

2026 World Cup

The World Cup uses league=1 and season=2026:

GET https://v3.football.api-sports.io/players?id=184&league=1&season=2026&team=10

The result shows 7 appearances, 6 goals and 1 assist.

Total with England

Adding the three groups gives us a total of 14 games, 12 goals and 1 assist.

Competition API season Games Goals Assists
World Cup - Qualification Europe 2024 5 5 0
Friendlies 2026 2 1 0
World Cup 2026 7 6 1

Two competitions with similar names must be distinguished here. Friendlies Clubs, with league=667, corresponds to the club friendlies excluded from Bayern's total. Friendlies, with league=10, corresponds to the international friendlies included in England's total.

Understand the season parameter

In API-FOOTBALL, season represents the season of the requested competition. It is not a universal season attached to the player.

To reconstruct the same 2025/2026 campaign, we used:

  • season=2025 for Bayern's competitions
  • season=2024 for the European World Cup qualifiers
  • season=2026 for the international friendlies and the World Cup

A single call with season=2025 or season=2026 cannot therefore return Kane's entire international season.

The reliable method is to:

  1. Identify the competitions included in the total
  2. Check the season value for each competition with /leagues
  3. Use /players when the entire competition season matches the required scope
  4. Use /fixtures with from and to when only part of the season should be retained
  5. Call /fixtures/players to verify the statistics match by match
  6. Add the results after applying the same inclusion rules to every competition

The European qualifiers are a good summary of this logic. The season=2024 aggregate contains 8 appearances and 8 goals. Filtering by date reduces the result to the 5 appearances and 5 goals that belong to the selected scope.

Summary

Harry Kane

Team Competition League ID API season
Bayern Munich Bundesliga 78 2025
Bayern Munich UEFA Champions League 2 2025
Bayern Munich DFB-Pokal 81 2025
Bayern Munich German Super Cup 529 2025
England World Cup - Qualification Europe 32 2024
England Friendlies 10 2026
England World Cup 1 2026

Compare the other players on the podium

Kylian Mbappé finished second and Lamine Yamal third in the official 2026 Ballon d'Or ranking. To complete the study, we can retrieve some of their statistics with API-FOOTBALL. This comparison is based on the already established podium.

Mbappé and Yamal both played in La Liga during the 2025/2026 season. This competition therefore provides a shared scope for comparing indicators such as appearances, goals, assists, shots, key passes and dribbles.

This scope is intentionally limited. It does not cover their other club competitions, international games, team results or every factor considered in the vote.

La Liga uses league=140, and the 2025/2026 season corresponds to season=2025.

Second place

Kylian Mbappé uses ID=278:

GET https://v3.football.api-sports.io/players?id=278&league=140&season=2025
"response": [
        {
            "player": {
                "id": 278,
                "name": "Kylian Mbappé",
                "firstname": "Kylian",
                "lastname": "Mbappé Lottin",
                "age": 27,
                "birth": {
                    "date": "1998-12-20",
                    "place": "Paris",
                    "country": "France"
                },
                "nationality": "France",
                "height": "178",
                "weight": "75",
                "injured": false,
                "photo": "https://media.api-sports.io/football/players/278.png"
            },
            "statistics": [
                {
                    "team": {
                        "id": 541,
                        "name": "Real Madrid",
                        "logo": "https://media.api-sports.io/football/teams/541.png"
                    },
                    "league": {
                        "id": 140,
                        "name": "La Liga",
                        "country": "Spain",
                        "logo": "https://media.api-sports.io/football/leagues/140.png",
                        "flag": "https://media.api-sports.io/flags/es.svg",
                        "season": 2025
                    },
...

Mbappé ends his La Liga season with 25 goals and 5 assists in 31 appearances. He also recorded 63 shots on target from 110 attempts.

Third place

Lamine Yamal uses ID=386828:

GET https://v3.football.api-sports.io/players?id=386828&league=140&season=2025
"response": [
        {
            "player": {
                "id": 386828,
                "name": "Lamine Yamal",
                "firstname": "Lamine",
                "lastname": "Yamal Nasraoui Ebana",
                "age": 18,
                "birth": {
                    "date": "2007-07-13",
                    "place": "Mataró",
                    "country": "Spain"
                },
                "nationality": "Spain",
                "height": "179",
                "weight": "72",
                "injured": false,
                "photo": "https://media.api-sports.io/football/players/386828.png"
            },
            "statistics": [
                {
                    "team": {
                        "id": 529,
                        "name": "Barcelona",
                        "logo": "https://media.api-sports.io/football/teams/529.png"
                    },
                    "league": {
                        "id": 140,
                        "name": "La Liga",
                        "country": "Spain",
                        "logo": "https://media.api-sports.io/football/leagues/140.png",
                        "flag": "https://media.api-sports.io/flags/es.svg",
                        "season": 2025
                    },
...

Yamal ends his La Liga season with 16 goals and 11 assists in 28 appearances. He also put 37 of his 85 shots on target.

Comparison of the two players

Statistics Kylian Mbappé Lamine Yamal
Appearances 31 28
Minutes 2,604 2,268
Average rating 7.53 7.95
Goals 25 16
Assists 5 11
Goals + assists 30 27
Shots 110 85
Shots on target 63 37
Key passes 65 72
Dribbles attempted 148 244
Successful dribbles 78 135

The two players recorded a fairly similar volume of attacking contributions in La Liga, but with different profiles. Mbappé scored more goals, while Yamal stood out for his assists, key passes and dribbles.

This comparison covers La Liga only. It illustrates part of their season without covering all their performances or the different factors considered in the Ballon d'Or vote.

Conclusion

API-FOOTBALL makes it possible to retrieve and analyze the data behind the statistics highlighted after the announcement of the 2026 Ballon d'Or.

In Harry Kane's case, the main difficulty is combining several competitions and several season values to reconstruct the total of 73 goals in 65 games. The /players endpoint provides aggregated statistics, while /fixtures and /fixtures/players make it possible to isolate a specific period when an API season covers a broader scope.

You can reproduce all the calls in this guide with the API-FOOTBALL Live Tester. Select the endpoint, add the specified parameters and view the response directly.

If you do not have an API key yet, you can create an API-SPORTS account here.

The API-SPORTS Team