Live now!

xG Data API

Use the Expected goals metrics from Sportmonks to highlight the hottest statistics in Football and leave your competitors behind speechless.

What is xG?

The Expected Goals (xG) statistic measures the chance quality of a team’s/player’s shots and defines the probability that a specific chance will result in a goal. xG per shot/chance is based on a scale from 0 to 1. The closer the xG value is to 0, the less likely a chance will result in a goal. The closer the value is to 1, the more likely the chance will result in a goal. Remember, the total xG of a player or team can be higher than 1. The total xG of a team or player is the total sum of xG for the individual chances (for that specific team or player).

The xG metrics have had a major impact on all aspects of the football industry. xG has changed how coaches, scouts, players, data analysts, and supporters view football. Overall, xG has revolutionised football analysis by providing a more nuanced understanding of the sport, impacting everything from tactical approaches to player evaluation and fan engagement.

The possibilities are endless. We can't wait to see what you will develop with our new xG feature, as there are many use cases. We will explain some of them here shortly.

What can you do with xG?

Evaluate performance icon

Evaluate performance

xG can be used to evaluate the performance of teams and individual players. It provides insight into how well a team or player creates and converts scoring opportunities. You can compare the xG of a team with the actual number of goals scored by a team to see if the team is over- or underperforming. The same goes for players; if a specific player has a xG of 18, while scoring 22 in this season, he is considered overperforming. Keep in mind that it is possible that the over- or underperformance is highly likely to revert back to its mean.

tactical analysis icon

Tactical analysis

Coaches and analysts use xG to analyse tactical decisions made during a match. It helps them understand which strategies create the most dangerous scoring opportunities and which defensive tactics minimise high-value chances conceded.

scouting icon

Scouting

xG can aid in player scouting and recruitment. Teams can use it to identify players who consistently generate high-quality scoring opportunities or are adept at finishing such chances.

Match analysis icon

Match analysis

Analysts use xG to break down individual matches, providing insights into which team deserved to win based on the quality of chances created and conceded.

*Note: Expected goals needs to be applied correctly. A common mistake at fixture level is that a team with a higher xG should have won the game. That is not necessarily true as xG only measures the chance quality and not the expected outcome of that particular fixture. We have another API for the predicted outcome, which is the Prediction API.

predictive modeling icon

Predictive Modeling

xG can be used as a component in predictive models to forecast match outcomes or simulate tournament results. It provides a quantitative basis for assessing team strengths and weaknesses.

Player development icon

Keep track of player development

By analysing xG data, coaches can identify areas for improvement in players’ decision-making, shooting accuracy, positioning, and other skills related to creating and converting scoring opportunities.

Fan engagement icon

Enhance your fan engagement

xG statistics can enhance fan engagement by providing deeper insights into a match’s dynamics beyond just goals scored. Fans can use xG to understand their team’s performance better and engage in discussions and debates about strategy and player effectiveness.

Overall, xG is a valuable tool for understanding the nuances of soccer matches and can be applied in various contexts, from tactical analysis to player development and fan engagement.

What is included in the xG Metrics add-on?

The xG Metrics add-on has three categories: Basic, Standard, and Advanced.

The Basic xG Metrics have xG available 12 hours after a match has ended. The Standard xG Metrics have xG and xG On Target available straight after a match, and the Advanced package has all our xG Metrics Live.

{
  "data": {
    "id": 19380880,
    "sport_id": 1,
    "league_id": 2,
    "season_id": 23619,
    "stage_id": 77471316,
    "group_id": null,
    "aggregate_id": 58589,
    "round_id": null,
    "state_id": 5,
    "venue_id": 2020,
    "name": "Real Madrid vs Manchester City",
    "starting_at": "2025-02-19 20:00:00",
    "result_info": "Real Madrid won after full-time.",
    "leg": "2/2",
    "details": null,
    "length": 90,
    "placeholder": false,
    "has_odds": true,
    "has_premium_odds": true,
    "starting_at_timestamp": 1739995200,
    "xgfixture": [
      {
        "id": 271643644,
        "fixture_id": 19380880,
        "type_id": 5304,
        "participant_id": 9,
        "data": {
          "value": 0.9964
        },
        "location": "away",
        "type": {
          "id": 5304,
          "name": "Expected Goals (xG)",
          "code": "expected-goals",
          "developer_name": "EXPECTED_GOALS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643643,
        "fixture_id": 19380880,
        "type_id": 5304,
        "participant_id": 3468,
        "data": {
          "value": 1.7922
        },
        "location": "home",
        "type": {
          "id": 5304,
          "name": "Expected Goals (xG)",
          "code": "expected-goals",
          "developer_name": "EXPECTED_GOALS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643932,
        "fixture_id": 19380880,
        "type_id": 5305,
        "participant_id": 9,
        "data": {
          "value": 0.9831
        },
        "location": "away",
        "type": {
          "id": 5305,
          "name": "Expected Goals on Target (xGoT)",
          "code": "expected-goals-on-target",
          "developer_name": "EXPECTED_GOALS_ON_TARGET",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643931,
        "fixture_id": 19380880,
        "type_id": 5305,
        "participant_id": 3468,
        "data": {
          "value": 3.1765
        },
        "location": "home",
        "type": {
          "id": 5305,
          "name": "Expected Goals on Target (xGoT)",
          "code": "expected-goals-on-target",
          "developer_name": "EXPECTED_GOALS_ON_TARGET",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643652,
        "fixture_id": 19380880,
        "type_id": 7939,
        "participant_id": 9,
        "data": {
          "value": 0.86
        },
        "location": "away",
        "type": {
          "id": 7939,
          "name": "Expected Points (xPTS)",
          "code": "expected-points",
          "developer_name": "EXPECTED_POINTS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643651,
        "fixture_id": 19380880,
        "type_id": 7939,
        "participant_id": 3468,
        "data": {
          "value": 1.91
        },
        "location": "home",
        "type": {
          "id": 7939,
          "name": "Expected Points (xPTS)",
          "code": "expected-points",
          "developer_name": "EXPECTED_POINTS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 272899322,
        "fixture_id": 19380880,
        "type_id": 7940,
        "participant_id": 9,
        "data": {
          "value": 0
        },
        "location": "away",
        "type": {
          "id": 7940,
          "name": "Expected Goals Penalties (xGP)",
          "code": "expected-goals-penalties",
          "developer_name": "EXPECTED_GOALS_PENALTIES",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 272899321,
        "fixture_id": 19380880,
        "type_id": 7940,
        "participant_id": 3468,
        "data": {
          "value": 0
        },
        "location": "home",
        "type": {
          "id": 7940,
          "name": "Expected Goals Penalties (xGP)",
          "code": "expected-goals-penalties",
          "developer_name": "EXPECTED_GOALS_PENALTIES",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271740374,
        "fixture_id": 19380880,
        "type_id": 7941,
        "participant_id": 9,
        "data": {
          "value": 0.096
        },
        "location": "away",
        "type": {
          "id": 7941,
          "name": "Expected Goals Free Kicks (xGFK)",
          "code": "expected-goals-free-kicks",
          "developer_name": "EXPECTED_GOALS_FREE_KICKS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271740373,
        "fixture_id": 19380880,
        "type_id": 7941,
        "participant_id": 3468,
        "data": {
          "value": 0
        },
        "location": "home",
        "type": {
          "id": 7941,
          "name": "Expected Goals Free Kicks (xGFK)",
          "code": "expected-goals-free-kicks",
          "developer_name": "EXPECTED_GOALS_FREE_KICKS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271656664,
        "fixture_id": 19380880,
        "type_id": 7942,
        "participant_id": 9,
        "data": {
          "value": 0.076
        },
        "location": "away",
        "type": {
          "id": 7942,
          "name": "Expected Goals Corners (xGC)",
          "code": "expected-goals-corners",
          "developer_name": "EXPECTED_GOALS_CORNERS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271656663,
        "fixture_id": 19380880,
        "type_id": 7942,
        "participant_id": 3468,
        "data": {
          "value": 0.081
        },
        "location": "home",
        "type": {
          "id": 7942,
          "name": "Expected Goals Corners (xGC)",
          "code": "expected-goals-corners",
          "developer_name": "EXPECTED_GOALS_CORNERS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643648,
        "fixture_id": 19380880,
        "type_id": 7943,
        "participant_id": 9,
        "data": {
          "value": 0.9964
        },
        "location": "away",
        "type": {
          "id": 7943,
          "name": "Expected Goals Non Penalty Goals (npxG)",
          "code": "expected-non-penalty-goals",
          "developer_name": "EXPECTED_NON_PENALTY_GOALS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643647,
        "fixture_id": 19380880,
        "type_id": 7943,
        "participant_id": 3468,
        "data": {
          "value": 1.7922
        },
        "location": "home",
        "type": {
          "id": 7943,
          "name": "Expected Goals Non Penalty Goals (npxG)",
          "code": "expected-non-penalty-goals",
          "developer_name": "EXPECTED_NON_PENALTY_GOALS",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271656662,
        "fixture_id": 19380880,
        "type_id": 7944,
        "participant_id": 9,
        "data": {
          "value": 0.675
        },
        "location": "away",
        "type": {
          "id": 7944,
          "name": "Expected Goals Set Play (xGSP)",
          "code": "expected-goals-set-play",
          "developer_name": "EXPECTED_GOALS_SET_PLAY",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271656661,
        "fixture_id": 19380880,
        "type_id": 7944,
        "participant_id": 3468,
        "data": {
          "value": 0.081
        },
        "location": "home",
        "type": {
          "id": 7944,
          "name": "Expected Goals Set Play (xGSP)",
          "code": "expected-goals-set-play",
          "developer_name": "EXPECTED_GOALS_SET_PLAY",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643646,
        "fixture_id": 19380880,
        "type_id": 7945,
        "participant_id": 9,
        "data": {
          "value": 0.319
        },
        "location": "away",
        "type": {
          "id": 7945,
          "name": "Expected Goals Open Play (xGOP)",
          "code": "expected-goals-open-play",
          "developer_name": "EXPECTED_GOALS_OPEN_PLAY",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643645,
        "fixture_id": 19380880,
        "type_id": 7945,
        "participant_id": 3468,
        "data": {
          "value": 1.71
        },
        "location": "home",
        "type": {
          "id": 7945,
          "name": "Expected Goals Open Play (xGOP)",
          "code": "expected-goals-open-play",
          "developer_name": "EXPECTED_GOALS_OPEN_PLAY",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 272899334,
        "fixture_id": 19380880,
        "type_id": 9684,
        "participant_id": 9,
        "data": {
          "value": -0.7958
        },
        "location": "away",
        "type": {
          "id": 9684,
          "name": "Expected Goals Difference (xGD)",
          "code": "expected-goals-difference",
          "developer_name": "EXPECTED_GOALS_DIFFERENCE",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 272899333,
        "fixture_id": 19380880,
        "type_id": 9684,
        "participant_id": 3468,
        "data": {
          "value": 0.7958
        },
        "location": "home",
        "type": {
          "id": 9684,
          "name": "Expected Goals Difference (xGD)",
          "code": "expected-goals-difference",
          "developer_name": "EXPECTED_GOALS_DIFFERENCE",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643936,
        "fixture_id": 19380880,
        "type_id": 9685,
        "participant_id": 9,
        "data": {
          "value": -0.0133
        },
        "location": "away",
        "type": {
          "id": 9685,
          "name": "Shooting Performance (SP)",
          "code": "shooting-performance",
          "developer_name": "SHOOTING_PERFORMANCE",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643935,
        "fixture_id": 19380880,
        "type_id": 9685,
        "participant_id": 3468,
        "data": {
          "value": 1.3843
        },
        "location": "home",
        "type": {
          "id": 9685,
          "name": "Shooting Performance (SP)",
          "code": "shooting-performance",
          "developer_name": "SHOOTING_PERFORMANCE",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 272899338,
        "fixture_id": 19380880,
        "type_id": 9686,
        "participant_id": 9,
        "data": {
          "value": 0.1765
        },
        "location": "away",
        "type": {
          "id": 9686,
          "name": "Expected Goals Prevented (xGP)",
          "code": "expected-goals-prevented",
          "developer_name": "EXPECTED_GOALS_PREVENTED",
          "model_type": "statistic",
          "stat_group": "defensive"
        }
      },
      {
        "id": 272899337,
        "fixture_id": 19380880,
        "type_id": 9686,
        "participant_id": 3468,
        "data": {
          "value": -0.0169
        },
        "location": "home",
        "type": {
          "id": 9686,
          "name": "Expected Goals Prevented (xGP)",
          "code": "expected-goals-prevented",
          "developer_name": "EXPECTED_GOALS_PREVENTED",
          "model_type": "statistic",
          "stat_group": "defensive"
        }
      },
      {
        "id": 271643650,
        "fixture_id": 19380880,
        "type_id": 9687,
        "participant_id": 9,
        "data": {
          "value": 1.7922
        },
        "location": "away",
        "type": {
          "id": 9687,
          "name": "Expected Goals Against (xGA)",
          "code": "expected-goals-against",
          "developer_name": "EXPECTED_GOALS_AGAINST",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      },
      {
        "id": 271643649,
        "fixture_id": 19380880,
        "type_id": 9687,
        "participant_id": 3468,
        "data": {
          "value": 0.9964
        },
        "location": "home",
        "type": {
          "id": 9687,
          "name": "Expected Goals Against (xGA)",
          "code": "expected-goals-against",
          "developer_name": "EXPECTED_GOALS_AGAINST",
          "model_type": "statistic",
          "stat_group": "offensive"
        }
      }
    ],
    "lineups": [
      {
        "id": 14668983581,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 162536,
        "team_id": 9,
        "position_id": 25,
        "formation_field": "2:2",
        "type_id": 11,
        "formation_position": 4,
        "player_name": "Rúben Santos Gato Alves Dias",
        "jersey_number": 3,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668987276,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 982,
        "team_id": 9,
        "position_id": 25,
        "formation_field": "2:3",
        "type_id": 11,
        "formation_position": 3,
        "player_name": "John Stones",
        "jersey_number": 5,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668990261,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 294000,
        "team_id": 9,
        "position_id": 27,
        "formation_field": "5:2",
        "type_id": 11,
        "formation_position": 10,
        "player_name": "Omar Marmoush",
        "jersey_number": 7,
        "xglineup": [
          {
            "id": 1423813145,
            "fixture_id": 19380880,
            "player_id": 294000,
            "team_id": 9,
            "lineup_id": 14668990261,
            "type_id": 5305,
            "data": {
              "value": 0.0012
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423813147,
            "fixture_id": 19380880,
            "player_id": 294000,
            "team_id": 9,
            "lineup_id": 14668990261,
            "type_id": 9685,
            "data": {
              "value": -0.0956
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423812821,
            "fixture_id": 19380880,
            "player_id": 294000,
            "team_id": 9,
            "lineup_id": 14668990261,
            "type_id": 5304,
            "data": {
              "value": 0.0968
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668990262,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 23269737,
        "team_id": 9,
        "position_id": 26,
        "formation_field": "3:2",
        "type_id": 11,
        "formation_position": 7,
        "player_name": "Nicolás González Iglesias",
        "jersey_number": 14,
        "xglineup": [
          {
            "id": 1423815499,
            "fixture_id": 19380880,
            "player_id": 23269737,
            "team_id": 9,
            "lineup_id": 14668990262,
            "type_id": 5304,
            "data": {
              "value": 0.5036
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423815660,
            "fixture_id": 19380880,
            "player_id": 23269737,
            "team_id": 9,
            "lineup_id": 14668990262,
            "type_id": 5305,
            "data": {
              "value": 0.8052
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423815672,
            "fixture_id": 19380880,
            "player_id": 23269737,
            "team_id": 9,
            "lineup_id": 14668990262,
            "type_id": 9685,
            "data": {
              "value": 0.3016
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668997911,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 4842,
        "team_id": 9,
        "position_id": 26,
        "formation_field": "4:1",
        "type_id": 11,
        "formation_position": 9,
        "player_name": "İlkay Gündoğan",
        "jersey_number": 19,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668983587,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 96353,
        "team_id": 9,
        "position_id": 26,
        "formation_field": "3:1",
        "type_id": 11,
        "formation_position": 8,
        "player_name": "Bernardo Mota Veiga de Carvalho e Silva",
        "jersey_number": 20,
        "xglineup": [
          {
            "id": 1423798227,
            "fixture_id": 19380880,
            "player_id": 96353,
            "team_id": 9,
            "lineup_id": 14668983587,
            "type_id": 5304,
            "data": {
              "value": 0.0609
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983588,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 24838191,
        "team_id": 9,
        "position_id": 25,
        "formation_field": "2:1",
        "type_id": 11,
        "formation_position": 5,
        "player_name": "Joško Gvardiol",
        "jersey_number": 24,
        "xglineup": [
          {
            "id": 1423734052,
            "fixture_id": 19380880,
            "player_id": 24838191,
            "team_id": 9,
            "lineup_id": 14668983588,
            "type_id": 9685,
            "data": {
              "value": -0.0679
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423734050,
            "fixture_id": 19380880,
            "player_id": 24838191,
            "team_id": 9,
            "lineup_id": 14668983588,
            "type_id": 5305,
            "data": {
              "value": 0.0007
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423734048,
            "fixture_id": 19380880,
            "player_id": 24838191,
            "team_id": 9,
            "lineup_id": 14668983588,
            "type_id": 5304,
            "data": {
              "value": 0.0686
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983589,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 37527169,
        "team_id": 9,
        "position_id": 27,
        "formation_field": "5:1",
        "type_id": 11,
        "formation_position": 11,
        "player_name": "Sávio Moreira de Oliveira",
        "jersey_number": 26,
        "xglineup": [
          {
            "id": 1423798229,
            "fixture_id": 19380880,
            "player_id": 37527169,
            "team_id": 9,
            "lineup_id": 14668983589,
            "type_id": 5304,
            "data": {
              "value": 0.0765
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423798237,
            "fixture_id": 19380880,
            "player_id": 37527169,
            "team_id": 9,
            "lineup_id": 14668983589,
            "type_id": 5305,
            "data": {
              "value": 0.0067
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423798244,
            "fixture_id": 19380880,
            "player_id": 37527169,
            "team_id": 9,
            "lineup_id": 14668983589,
            "type_id": 9685,
            "data": {
              "value": -0.0698
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983591,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 159142,
        "team_id": 9,
        "position_id": 24,
        "formation_field": "1:1",
        "type_id": 11,
        "formation_position": 1,
        "player_name": "Ederson Santana de Moraes",
        "jersey_number": 31,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668997914,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 37623459,
        "team_id": 9,
        "position_id": 25,
        "formation_field": "2:4",
        "type_id": 11,
        "formation_position": 2,
        "player_name": "Abdukodir Khusanov",
        "jersey_number": 45,
        "xglineup": [
          {
            "id": 1423811990,
            "fixture_id": 19380880,
            "player_id": 37623459,
            "team_id": 9,
            "lineup_id": 14668997914,
            "type_id": 9685,
            "data": {
              "value": 0.039
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423811815,
            "fixture_id": 19380880,
            "player_id": 37623459,
            "team_id": 9,
            "lineup_id": 14668997914,
            "type_id": 5304,
            "data": {
              "value": 0.0291
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423811980,
            "fixture_id": 19380880,
            "player_id": 37623459,
            "team_id": 9,
            "lineup_id": 14668997914,
            "type_id": 5305,
            "data": {
              "value": 0.0681
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668987277,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 336133,
        "team_id": 9,
        "position_id": 26,
        "formation_field": "3:3",
        "type_id": 11,
        "formation_position": 6,
        "player_name": "Philip Foden",
        "jersey_number": 47,
        "xglineup": [
          {
            "id": 1423788713,
            "fixture_id": 19380880,
            "player_id": 336133,
            "team_id": 9,
            "lineup_id": 14668987277,
            "type_id": 5304,
            "data": {
              "value": 0.0844
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423788719,
            "fixture_id": 19380880,
            "player_id": 336133,
            "team_id": 9,
            "lineup_id": 14668987277,
            "type_id": 5305,
            "data": {
              "value": 0.0506
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423788724,
            "fixture_id": 19380880,
            "player_id": 336133,
            "team_id": 9,
            "lineup_id": 14668987277,
            "type_id": 9685,
            "data": {
              "value": -0.0338
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983592,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 1314,
        "team_id": 3468,
        "position_id": 24,
        "formation_field": "1:1",
        "type_id": 11,
        "formation_position": 1,
        "player_name": "Thibaut Courtois",
        "jersey_number": 1,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668983593,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 37255840,
        "team_id": 3468,
        "position_id": 26,
        "formation_field": "3:4",
        "type_id": 11,
        "formation_position": 9,
        "player_name": "Jude Bellingham",
        "jersey_number": 5,
        "xglineup": [
          {
            "id": 1423737833,
            "fixture_id": 19380880,
            "player_id": 37255840,
            "team_id": 3468,
            "lineup_id": 14668983593,
            "type_id": 5304,
            "data": {
              "value": 0.0434
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983595,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 600687,
        "team_id": 3468,
        "position_id": 27,
        "formation_field": "4:2",
        "type_id": 11,
        "formation_position": 11,
        "player_name": "Vinícius José Paixão de Oliveira Júnior",
        "jersey_number": 7,
        "xglineup": [
          {
            "id": 1423793008,
            "fixture_id": 19380880,
            "player_id": 600687,
            "team_id": 3468,
            "lineup_id": 14668983595,
            "type_id": 5304,
            "data": {
              "value": 0.4114
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423793300,
            "fixture_id": 19380880,
            "player_id": 600687,
            "team_id": 3468,
            "lineup_id": 14668983595,
            "type_id": 5305,
            "data": {
              "value": 0.729
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423793306,
            "fixture_id": 19380880,
            "player_id": 600687,
            "team_id": 3468,
            "lineup_id": 14668983595,
            "type_id": 9685,
            "data": {
              "value": 0.3176
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983596,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 260862,
        "team_id": 3468,
        "position_id": 25,
        "formation_field": "2:1",
        "type_id": 11,
        "formation_position": 2,
        "player_name": "Federico Santiago Valverde Dipetta",
        "jersey_number": 8,
        "xglineup": [
          {
            "id": 1423739131,
            "fixture_id": 19380880,
            "player_id": 260862,
            "team_id": 3468,
            "lineup_id": 14668983596,
            "type_id": 9685,
            "data": {
              "value": -0.0155
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423739129,
            "fixture_id": 19380880,
            "player_id": 260862,
            "team_id": 3468,
            "lineup_id": 14668983596,
            "type_id": 5304,
            "data": {
              "value": 0.0159
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423739130,
            "fixture_id": 19380880,
            "player_id": 260862,
            "team_id": 3468,
            "lineup_id": 14668983596,
            "type_id": 5305,
            "data": {
              "value": 0.0004
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983597,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 96611,
        "team_id": 3468,
        "position_id": 27,
        "formation_field": "4:1",
        "type_id": 11,
        "formation_position": 10,
        "player_name": "Kylian Mbappé Lottin",
        "jersey_number": 9,
        "xglineup": [
          {
            "id": 1423732050,
            "fixture_id": 19380880,
            "player_id": 96611,
            "team_id": 3468,
            "lineup_id": 14668983597,
            "type_id": 5304,
            "data": {
              "value": 1.1247
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423732176,
            "fixture_id": 19380880,
            "player_id": 96611,
            "team_id": 3468,
            "lineup_id": 14668983597,
            "type_id": 9685,
            "data": {
              "value": 1.1674
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423732174,
            "fixture_id": 19380880,
            "player_id": 96611,
            "team_id": 3468,
            "lineup_id": 14668983597,
            "type_id": 5305,
            "data": {
              "value": 2.2921
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983598,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 7346228,
        "team_id": 3468,
        "position_id": 26,
        "formation_field": "3:1",
        "type_id": 11,
        "formation_position": 6,
        "player_name": "Rodrygo Silva de Goes",
        "jersey_number": 11,
        "xglineup": [
          {
            "id": 1423776890,
            "fixture_id": 19380880,
            "player_id": 7346228,
            "team_id": 3468,
            "lineup_id": 14668983598,
            "type_id": 5304,
            "data": {
              "value": 0.1968
            },
            "type": {
              "id": 5304,
              "name": "Expected Goals (xG)",
              "code": "expected-goals",
              "developer_name": "EXPECTED_GOALS",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423780238,
            "fixture_id": 19380880,
            "player_id": 7346228,
            "team_id": 3468,
            "lineup_id": 14668983598,
            "type_id": 5305,
            "data": {
              "value": 0.1549
            },
            "type": {
              "id": 5305,
              "name": "Expected Goals on Target (xGoT)",
              "code": "expected-goals-on-target",
              "developer_name": "EXPECTED_GOALS_ON_TARGET",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          },
          {
            "id": 1423780242,
            "fixture_id": 19380880,
            "player_id": 7346228,
            "team_id": 3468,
            "lineup_id": 14668983598,
            "type_id": 9685,
            "data": {
              "value": -0.0419
            },
            "type": {
              "id": 9685,
              "name": "Shooting Performance (SP)",
              "code": "shooting-performance",
              "developer_name": "SHOOTING_PERFORMANCE",
              "model_type": "statistic",
              "stat_group": "offensive"
            }
          }
        ]
      },
      {
        "id": 14668983599,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 5270371,
        "team_id": 3468,
        "position_id": 26,
        "formation_field": "3:2",
        "type_id": 11,
        "formation_position": 7,
        "player_name": "Aurélien Tchouaméni",
        "jersey_number": 14,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668990263,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 186734,
        "team_id": 3468,
        "position_id": 26,
        "formation_field": "3:3",
        "type_id": 11,
        "formation_position": 8,
        "player_name": "Daniel Ceballos Fernández",
        "jersey_number": 19,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668997925,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 31837,
        "team_id": 3468,
        "position_id": 25,
        "formation_field": "2:3",
        "type_id": 11,
        "formation_position": 4,
        "player_name": "Antonio Rüdiger",
        "jersey_number": 22,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668983601,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 98903,
        "team_id": 3468,
        "position_id": 25,
        "formation_field": "2:4",
        "type_id": 11,
        "formation_position": 5,
        "player_name": "Ferland Mendy",
        "jersey_number": 23,
        "xglineup": [
          
        ]
      },
      {
        "id": 14668983602,
        "sport_id": 1,
        "fixture_id": 19380880,
        "player_id": 37596373,
        "team_id": 3468,
        "position_id": 25,
        "formation_field": "2:2",
        "type_id": 11,
        "formation_position": 3,
        "player_name": "Raúl Asencio del Rosario",
        "jersey_number": 35,
        "xglineup": [
          
        ]
      }
    ]
  },

See the xG Data API in Action

Get detailed expected goals (xG) metrics per team and player with Sportmonks’ xG Football Data API. Whether you’re developing a betting model, performance analytics tool, or football insights platform, our API ensures accurate, real-time xG statistics for deeper analysis.

How It Works

Our RESTful API delivers structured JSON responses, making integration easy for developers, analysts, and data scientists. You can retrieve:

✔ xG metrics per team – Understand how well teams performed vs. expected performance
✔ xG per player – Analyze individual player contributions
✔ Expected Points (xP) for custom standings – Rank teams based on their underlying performance
and much more!

Check the API response on the left for the example request of the Real Madrid – Manchester City match (19 February, 2025) in the UEFA Champions League.

Want to see the full API documentation? Navigate to our Football documentation page.

Check our developer docs

How to gain access to expected goals in three steps

1. Choose

Pick your plan and choose the xG Metrics add-on.

2. Integrate

Implement the xG Metrics and amaze your users and fans.

3. Outshine

Surpass your competitors and leave them speechless.

xG add-on pricing

Choose the add-on that works for you.

Monthly
Yearly
xG Basic

A great start to get to know how Expected Goals work.

Starting at
€ 39
€ 34
paid monthly per month paid yearly
  • xG per fixture
  • Available 12 hours post-match
xG Standard

For people that understand xG and want tot build their way into analysis even further.

Starting at
€ 129
€ 113
paid monthly per month paid yearly
  • xG and xG on Target per fixture
  • Available straight after the match
xG Advanced

For xG experts, all xG Metrics are available live. *Lineup access is required to access Advanced xG.

Starting at
€ 269
€ 235
paid monthly per month paid yearly
  • All xG metrics available
  • Available Live
  • xG, xGoT, npxG, xGOP, xGSP, xGC, xGFK, xGP, xPTS, xGA, xGP, xGD, SP. More coming soon.
* All prices are exclusive of VAT and, where applicable, VAT will be applied at the standard rate.

Gain the Competitive Edge with xG Data

Unlock advanced football analytics with Sportmonks’ xG (Expected Goals) data—the key to smarter predictions and deeper match insights. Whether you’re building a betting platform, sports analysis tool, or football app, our xG data helps you outshine the competition with precision-driven insights.

✔ Accurate expected goals (xG) metrics for smarter decision-making
✔ Enhance match analysis with deeper statistical insights
✔ Seamless API integration for developers and analysts

Start using xG today and take your football platform to the next level.

Start your free trial now

FAQ xG Metrics

How are xG values calculated?
xG values are calculated using historical shot data. The calculations are made based on the shot's location, angle, and distance. Next, the type of shot (for example, header or foot) is considered. The position of the goalkeeper and players is also used in the calculations. This data and additional information are used to create the different xG metrics, providing a comprehensive understanding of goal-scoring probabilities.

Expected goals is usually expressed as a value between 0 and 1, where 0 indicates a very low probability of scoring and 1 indicates a very high probability. For example, a clear one-on-one chance with the goalkeeper might have a high xG value close to 1, while a long-range speculative shot might have a low xG value closer to 0. An xG value above 0.38 for a specific shot is considered a big chance. For example, a penalty has an average xG of 0.79 to be scored.

Keep in mind that the quality of a player is not accounted for. So, for expected goals, it does not matter if Lionel Messi is the one taking a shot or if the data scientist of Sportmonks takes the shot.
How can I get access to xG Data?
You can simply get access by going to MySportmonks and adding the Expected Goal add-on to your subscription. Not yet registered to MySportmonks? Create your account and start with Expected Goals by creating your New Subscription.
How does speed impact the availability of xG values?
The availability of xG values is influenced by the speed of data processing. Since xG calculations require match statistics like shots, there may be a delay before xG values become available. Patience is key as relevant match data is processed to generate accurate xG insights.
How does the reliability of xG values depend on the context of the match?
The reliability of xG values is contingent on various factors, including the context of the match. A nuanced understanding of the game's flow, tempo, and dynamics enhances the interpretation of xG values, providing valuable insights into the scoring probabilities.
What are the numeric values associated with xG?
xG statistics generate numeric values that show the chance of scoring based on the quality of chances created or conceded. These values for one specific player usually range between 0 and 1.5 for a specific fixture. For example, Erling Haaland had an xG value of 1.1634 in the Manchester Derby (18842545). In that fixture, he scored 1 goal in total. Pretty accurate, right? For that same fixture, the xG for both teams was as follows: Manchester City: 3.6439 - Manchester United: 0.3841. As you can see, the xG values are pretty accurate to the actual outcome, which was 3-1. However, Marcus Rashford's wonder strike shows that xG doesn't always tell the full story. He had an xG of 0.3553 for that match but did manage to score 1 goal. Remember: This will not always be the case. You may expect Erlin Haaland to finish a 0,89 chance or to score at least once or twice if he has a total of 3,10 xG. However, that doesn't mean the xG metrics are wrong if he doesn't. xG metrics are just parameters to calculate the quality of a chance or multiple chances. Even if a chance has a 99% chance of resulting in a goal, there is a 1% chance it will not.
What can I use xG Corner/Free Kick/Penalty for?
Of course, we offer xG Open Play and xG Set Play. But if you want to dive deeper into xG Set Play, the metrics xG Corner, xG Free Kick, and xG Penalty will come in handy. These statistics have particular use cases. For example, in the 2023/2024 season, Arsenal scored many goals from set pieces. For some people, it might be very interesting to see if the XG Arsenal generates is higher than the XG for other title contenders (like Manchester City and Liverpool). At the moment of writing, they are only 1 point apart and are numbers one to three in the league standings. As you can imagine, the over- and underperformance of these teams from set pieces might have a small or big influence on the rest of the season. It might be interesting to show which of the set pieces generates the most xG for certain teams and to find out if there are any differences. For one team, free kicks might be way more dangerous (maybe because they have a free-kick specialist), while others have a way higher xG from corners (maybe because they have two giants as centre-backs who join the attack when they have a corner). As you can see, these use cases can be really interesting to get a better understanding of the tactics of specific teams and to find out if a late free kick or corner is actually as interesting as it seems when the whole stadium is cheering to support their team with this late chance to score.
What is the pricing for the xG metrics add-on?
At Sportmonks, we use three types of packages: a basic package, a Standard package, and an Advanced package. In the Basic package, xG per fixture will be available 12 hours post-match. In the Standard package, xG per fixture and xG on Target per Fixture will be available straight after a match. The xG advanced package will have all our xG metrics, including xG per Fixture, xG On Target, Non-Penalty xG, xG Open Play, xG Set Play, xG Corners, xG Free kick, xG Penalty, Expected Points, Expected Points Table, Expected Goals Conceded, Expected Goal difference, Over/Underperformance players, Over/Underperformance team, Expected Goals Saved. The Advanced package has all metrics live.
What is the update frequency for xG values?
xG values are continuously calculated and processed throughout the match, with updates occurring every couple of minutes. The maximum time between these updates should not exceed 5 minutes. Stay informed with real-time insights into evolving goal-scoring probabilities.
What leagues have xG available?
We have a list available in our documentation. Please keep in mind this list is not yet complete, as not all leagues that will have xG available is active. Once leagues like the European Championship have played xG will also be available here.