{"id":1171,"date":"2025-12-17T20:07:38","date_gmt":"2025-12-17T17:07:38","guid":{"rendered":"http:\/\/api-sport.pro\/?p=1171"},"modified":"2025-12-17T20:07:38","modified_gmt":"2025-12-17T17:07:38","slug":"what-metrics-really-affect-the-outcome-of-a-football-match-2","status":"publish","type":"post","link":"https:\/\/api-sport.pro\/es\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/","title":{"rendered":"What metrics really affect the outcome of a football match?"},"content":{"rendered":"<div class=\"table-of-contents\">\n<div class=\"table-of-contents-title\">Contenidos<\/div>\n<ul class=\"table-of-contents-ul\">\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-1\">What statistical metrics really affect the outcome of a football match<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-2\">Which xG metrics and shots on goal are important for predicting the match result<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-3\">What data on ball possession and passing accuracy should be considered when analyzing a football match<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-4\">What advanced metrics like pressing, PPDA, and xThreat are available through the football API<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-5\">How to use the football statistics API to get real-time match data<\/a><\/li>\n<li class=\"table-of-contents-li\"><a class=\"table-of-contents-a\" href=\"#contents-6\">How to use data from the football API to build a model for predicting match outcomes<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-1\">What statistical metrics really affect the outcome of a football match<\/h2>\n<p>The result of a football match is influenced not only by the goals on the scoreboard but also by a whole range of quantitative indicators: the quantity and quality of shots, the structure of attacks, the balance of duels, discipline, and goalkeeper performance. It is this data that allows us to separate random results from systematic ones. Through the football API service <a href=\"http:\/\/api-sport.pro\/es\/\">api-sport.pro<\/a> you can obtain detailed statistics for each match: from basic indicators (shots, fouls, offsides) to detailed groups like \u00abAttack,\u00bb \u00abPasses,\u00bb \u00abDuels,\u00bb \u00abDefending\u00bb with breakdowns by halves and totals for the game.<\/p>\n<p>The structure of the endpoint <code>\/v2\/f\u00fatbol\/partidos<\/code> is designed so that in one response you receive not only the score and status of the match but also an array <code>estad\u00edsticasDelPartido<\/code>. Inside it, metrics are organized by periods (ALL, 1ST, 2ND) and thematic groups. For example, you can immediately see the number of big goal-scoring chances (<code>granOportunidadCreada<\/code>), the share of duels won (<code>dueloGanadoPorcentaje<\/code>), the number of touches in the penalty area (<code>touchesEnCajaOpuesta<\/code>), successful tackles (<code>wonTacklePercent<\/code>) and goalkeeper saves (<code>goalkeeperSaves<\/code>). These parameters have a direct correlation with the probability of scoring or conceding and, consequently, with the final outcome of the match.<\/p>\n<p>Using this data, analysts and developers build their own team strength models: assessing who created more danger, who controlled the pace, who used possession more effectively. Based on the sports events API, it is easy to implement dashboards for scouting and advanced statistics, recommendation systems for betting, and your own team rankings. Since <a href=\"http:\/\/api-sport.pro\/es\/\">api-sport.pro<\/a> it supports multiple tournaments and countries, you can scale your algorithms from one championship to dozens of leagues without changing the logic of the code, simply by changing the filters of the API requests.<\/p>\n<h3>Example of a request for key match metrics via Football API<\/h3>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nconst API_KEY = 'YOUR_API_KEY';\nasync function getMatchWithStats(matchId) {\n  const url = `https:\/\/api.api-sport.ru\/v2\/football\/matches\/${matchId}`;\n  const res = await fetch(url, {\n    headers: {\n      'Authorization': API_KEY\n    }\n  });\n  if (!res.ok) {\n    throw new Error('\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a Sport Events API');\n  }\n  const match = await res.json();\n  \/\/ \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u0435\u0442\u0440\u0438\u043a, \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0445 \u043d\u0430 \u0438\u0441\u0445\u043e\u0434\n  const statistics = match.matchStatistics;\n  const odds = match.oddsBase; \/\/ \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0431\u0443\u043a\u043c\u0435\u043a\u0435\u0440\u043e\u0432\n  console.log('\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0447\u0435\u0442:', match.homeScore.current, ':', match.awayScore.current);\n  console.log('\u041c\u0438\u043d\u0443\u0442a \u043c\u0430\u0442\u0447\u0430:', match.currentMatchMinute);\n  console.log('\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043c\u0430\u0442\u0447\u0430:', statistics);\n  console.log('\u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0431\u0443\u043a\u043c\u0435\u043a\u0435\u0440\u043e\u0432:', odds);\n}\ngetMatchWithStats(14570728).catch(console.error);\n<\/pre>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-2\">Which xG metrics and shots on goal are important for predicting the match result<\/h2>\n<p>The concept of expected goals (xG) has become a standard in modern football, but not every API returns a ready-made xG value. In the Sport Events API from api-sport.ru, the xG indicator is not yet provided as a separate field, but you receive all the raw data for calculation or approximate estimation: the total number of shots (<code>totalDisparosALaPorter\u00eda<\/code>), tiros a puerta (<code>disparosALaPorter\u00eda<\/code>), tiros desde el \u00e1rea penal (<code>totalDisparosDentroDel\u00c1rea<\/code>) y m\u00e1s all\u00e1 de sus l\u00edmites (<code>totalTirosFueraDel\u00c1rea<\/code>), tiros que golpean el marco de la porter\u00eda (<code>golpe\u00f3ElTravesa\u00f1o<\/code>), as well as the number of big moments (<code>granOportunidadCreada<\/code>, <code>granOportunidadMarcada<\/code>, <code>granOportunidadFallada<\/code>). In practice, it is this combination of metrics that provides the greatest predictive power.<\/p>\n<p>If we simplify them into a basic model, then shots on target and shots from favorable positions will have a greater \u00abweight\u00bb than long-range and blocked attempts. For example, each <code>granOportunidadCreada<\/code> can be assessed as a high expected goal value, while a simple cross with a shot from outside the penalty area is assessed as low. Based on the API data, you can build your own xG model: set weights for types of shots, consider whether the shot was from inside the penalty area, whether the goalkeeper saved the ball or it went wide, and thus obtain an estimate of the \u00abdeserved\u00bb result of each match. This is especially useful in betting and long-term assessment of team strength when the current tournament result and actual score can be misleading.<\/p>\n<p>For predicting future matches, dynamic indicators are also important: how often a team creates many shots but converts few chances, how consistently it allows shots on its goal. Shot and chance statistics, available through endpoints <code>\/v2\/f\u00fatbol\/partidos<\/code> \u0438 <code>\/v2\/f\u00fatbol\/partidos\/{matchId}<\/code>, can be easily aggregated over a season or a series of rounds, allowing for the formation of complex features for machine learning models. By combining your own xG calculation with the frequency of hitting the woodwork, the share of shots from the penalty area, and the conversion of big moments, you build a much more accurate prediction than by using just the score and average number of shots.<\/p>\n<h3>An example of calculating a simplified \u00abpseudo-xG\u00bb based on API data<\/h3>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nfunction estimatePseudoXG(statsGroup) {\n  \/\/ \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0430\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\n  let totalShots = 0;\n  let shotsOnTarget = 0;\n  let shotsInsideBox = 0;\n  let bigChances = 0;\n  statsGroup.statisticsItems.forEach(item =&gt; {\n    switch (item.key) {\n      case 'totalShotsOnGoal':\n        totalShots = item.homeValue; \/\/ \u0438\u043b\u0438 awayValue \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b\n        break;\n      case 'shotsOnGoal':\n        shotsOnTarget = item.homeValue;\n        break;\n      case 'totalShotsInsideBox':\n        shotsInsideBox = item.homeValue;\n        break;\n      case 'bigChanceCreated':\n        bigChances = item.homeValue;\n        break;\n    }\n  });\n  \/\/ \u0412\u0435\u0441\u043e\u0432\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u044b \u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445 \u043e\u043d\u0438 \u043e\u0431\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445\n  const xgEstimate =\n    totalShots * 0.03 +\n    shotsOnTarget * 0.08 +\n    shotsInsideBox * 0.05 +\n    bigChances * 0.35;\n  return xgEstimate;\n}\n<\/pre>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-3\">What data on ball possession and passing accuracy should be considered when analyzing a football match<\/h2>\n<p>Ball possession has long been a common metric in broadcasts, but in itself, it weakly correlates with the match outcome. Much more important is how the team uses possession in the final third, how quickly it advances the ball, and how accurate its passes are in dangerous areas. In the sports events API <a href=\"http:\/\/api-sport.pro\/es\/\">api-sport.pro<\/a> you get not only the percentage of possession (<code>posesi\u00f3nDelBal\u00f3n<\/code>), but also a whole block of metrics on passes: total number of passes (<code>pases<\/code>), accurate passes (<code>pasesPrecisos<\/code>), entradas en el tercio final (<code>entradasEnElTercerCuarto<\/code>), effectiveness of play in the final third (<code>finalThirdPhaseStatistic<\/code>), accurate long passes (<code>balonesLargosPreciso<\/code>) and accurate crosses (<code>accurateCross est\u00e1n disponibles en la API de Eventos Deportivos.<\/code>).<\/p>\n<p>By combining these indicators, teams can be divided into those that \u00abhold the ball for possession\u00bb and those that truly dominate through positional play. For example, a high possession percentage with a low number of entries into the final third and a small number of touches in the penalty area (<code>touchesEnCajaOpuesta<\/code>) indicates sterile control. In contrast, moderate possession with a large number of sharp passes and frequent entries into the final third often proves to be more effective. Models for assessing team strength based on Sport Events API data take into account not only possession share but also the structure of the passing network: how successfully the team advances the ball forward, whether it wins the battle for second balls, and how often it loses possession under pressure from the opponent.<\/p>\n<p>An additional advantage of the API is that all these metrics are available by halves. This allows for analysis of how a team reacts to a conceded or scored goal, whether the ratio of possession and accuracy of passes changes after substitutions or adjustments by the coach. In practice, this is important for live analytics: if after the break there is a sharp increase in accurate passes and entries into the final third combined with an increase in the share of won duels, the team is likely to be increasing pressure and raising its chances of scoring. Such signals can be automated by regularly polling the endpoint. <code>\/v2\/f\u00fatbol\/partidos<\/code> con estado <code>en progreso<\/code> and reassessing the probabilities of match outcomes during the game.<\/p>\n<h3>Example of ball possession and passing statistics<\/h3>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nasync function getPossessionAndPasses(matchId) {\n  const res = await fetch(`https:\/\/api.api-sport.ru\/v2\/football\/matches\/${matchId}`, {\n    headers: { 'Authorization': 'YOUR_API_KEY' }\n  });\n  const match = await res.json();\n  const allPeriod = match.matchStatistics.find(s =&gt; s.period === 'ALL');\n  const overview = allPeriod.groups.find(g =&gt; g.groupName === 'Match overview');\n  const passesGroup = allPeriod.groups.find(g =&gt; g.groupName === 'Passes');\n  const possession = overview.statisticsItems.find(i =&gt; i.key === 'ballPossession');\n  const accuratePasses = passesGroup.statisticsItems.find(i =&gt; i.key === 'accuratePasses');\n  const finalThirdEntries = passesGroup.statisticsItems.find(i =&gt; i.key === 'finalThirdEntries');\n  console.log('\u0412\u043b\u0430\u0434\u0435\u043d\u0438\u0435 (\u0434\u043e\u043c):', possession.homeValue, '%');\n  console.log('\u0412\u043b\u0430\u0434\u0435\u043d\u0438\u0435 (\u0433\u043e\u0441\u0442\u0438):', possession.awayValue, '%');\n  console.log('\u0422\u043e\u0447\u043d\u044b\u0435 \u043f\u0430\u0441\u044b (\u0434\u043e\u043c):', accuratePasses.homeValue);\n  console.log('\u0412\u0445\u043e\u0434\u044b \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0440\u0435\u0442\u044c (\u0434\u043e\u043c):', finalThirdEntries.homeValue);\n}\n<\/pre>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-4\">What advanced metrics like pressing, PPDA, and xThreat are available through the football API<\/h2>\n<p>High-level metrics such as pressing intensity, PPDA (passes allowed per defensive action), and xThreat are not returned as ready-made fields in the Sport Events API. However, the API provides a rich set of basic statistics to build advanced analytical models based on it. In particular, data on tackles (<code>totalTackle<\/code>, <code>wonTacklePercent<\/code>), interceptions (<code>interceptionWon<\/code>), interceptions and ball recoveries (<code>recuperaci\u00f3nDeBal\u00f3n<\/code>), won duels (<code>dueloGanadoPorcentaje<\/code>), entradas en el tercio final (<code>entradasEnElTercerCuarto<\/code>) and touches in the opponent\u2019s penalty area (<code>touchesEnCajaOpuesta<\/code>) are available. These indicators form the basis for calculating pressing intensity and territorial advantage.<\/p>\n<p>Classic PPDA requires knowledge of the number of opponent\u2019s passes in the attacking zone and the number of defensive actions by the team in that area. Within the api-sport.ru API, approximate metrics can be constructed using total interceptions, tackles, and the total number of opponent passes. The higher the share of the opponent\u2019s defensive actions against their own passing activity, the more aggressive the pressing appears. Similarly for xThreat: although there is no explicit field map or expected threat by zones, the combination of metrics on entries into the final third, touches in the penalty area, number of shots from dangerous positions, and quality of passes in the finishing stage allows for building one\u2019s own threat models, training them on historical data obtained through the football API.<\/p>\n<p>The approach of most professional analytical teams is to regularly export match statistics for tournaments through <code>\/v2\/f\u00fatbol\/partidos<\/code> with filtering by season and tournament, normalize metrics per minute of play or per possession, and then build calculated indices for pressing, PPDA, and xThreat for each team and match. Since the API response structure is stable and detailed by halves, such metrics can be calculated both for the match as a whole and separately for the first and second halves, which is especially important for assessing team adaptation and the effectiveness of tactical changes.<\/p>\n<h3>Example of extracting basic data for calculating pressing and PPDA<\/h3>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nasync function getDefensiveBaseStats(matchId) {\n  const res = await fetch(`https:\/\/api.api-sport.ru\/v2\/football\/matches\/${matchId}`, {\n    headers: { 'Authorization': 'YOUR_API_KEY' }\n  });\n  const match = await res.json();\n  const all = match.matchStatistics.find(s =&gt; s.period === 'ALL');\n  const defending = all.groups.find(g =&gt; g.groupName === 'Defending');\n  const passesOverview = all.groups.find(g =&gt; g.groupName === 'Match overview');\n  const interceptions = defending.statisticsItems.find(i =&gt; i.key === 'interceptionWon');\n  const tackles = defending.statisticsItems.find(i =&gt; i.key === 'totalTackle');\n  const recoveries = defending.statisticsItems.find(i =&gt; i.key === 'ballRecovery');\n  const totalPasses = passesOverview.statisticsItems.find(i =&gt; i.key === 'passes');\n  const defensiveActionsHome = interceptions.homeValue + tackles.homeValue + recoveries.homeValue;\n  const defensiveActionsAway = interceptions.awayValue + tackles.awayValue + recoveries.awayValue;\n  console.log('\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u0431\u043e\u0440\u043e\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (\u0434\u043e\u043c):', defensiveActionsHome);\n  console.log('\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u0431\u043e\u0440\u043e\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (\u0433\u043e\u0441\u0442\u0438):', defensiveActionsAway);\n  console.log('\u041e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u0430\u0441\u043e\u0432 (\u0434\u043e\u043c):', totalPasses.homeValue);\n  console.log('\u041e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u0430\u0441\u043e\u0432 (\u0433\u043e\u0441\u0442\u0438):', totalPasses.awayValue);\n}\n<\/pre>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-5\">How to use the football statistics API to get real-time match data<\/h2>\n<p>For live analytics, it is critical to receive not only the final match statistics but also operational data during the game. The endpoint <code>\/v2\/f\u00fatbol\/partidos<\/code> in the Sport Events API supports filtering by status, so you can request only the ongoing matches by specifying <code>estado=enprogreso<\/code>. In the response for each match, the current minute will be available (<code>minutoDelPartidoActual<\/code>), the updated score, detailed statistics on shots, possession, and duels, as well as an array <code>eventosEnVivo<\/code> with the chronology of events: goals, cards, substitutions, penalties, VAR decisions. This allows you to build your own match trackers, push notifications, and live betting algorithms.<\/p>\n<p>The current version of the API implements a polling model: you determine the frequency of requests and balance between timeliness and system load. In upcoming releases, <a href=\"https:\/\/app.api-sport.ru\">tu cuenta personal en api-sport.ru<\/a> support for WebSocket connections will be added, allowing real-time updates without constant HTTP requests. For most analytics tasks, polling the endpoint every 10-20 seconds is sufficient, reassessing outcome probabilities considering new events and changes in statistics (for example, an increase in pressure from one team after conceding a goal) and comparing this with the movement of bookmaker odds, which are also available in the field <code>oddsBase<\/code>.<\/p>\n<p>The integration of live data is especially valuable for automated strategies: you can track threshold values (for example, a sharp increase in the share of shots from one team or an increase in the number of touches in the penalty area), and as soon as the metrics cross a predefined level, trigger actions in your application\u2014from highlighting the match in the interface to automatically generating betting tips. Since the API supports several sports (football, hockey, basketball, tennis, esports, and others), a unified approach to working with live events can be scaled across the entire product without changing the architecture.<\/p>\n<h3>Example of a periodic request for live data on matches<\/h3>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nconst API_KEY = 'YOUR_API_KEY';\nasync function pollLiveMatches() {\n  const url = 'https:\/\/api.api-sport.ru\/v2\/football\/matches?status=inprogress';\n  const res = await fetch(url, {\n    headers: { 'Authorization': API_KEY }\n  });\n  if (!res.ok) {\n    console.error('\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f live-\u043c\u0430\u0442\u0447\u0435\u0439');\n    return;\n  }\n  const data = await res.json();\n  data.matches.forEach(match =&gt; {\n    console.log(`\u041c\u0430\u0442\u0447 ${match.homeTeam.name} - ${match.awayTeam.name}`);\n    console.log('\u041c\u0438\u043d\u0443\u0442\u0430:', match.currentMatchMinute);\n    console.log('\u0421\u0447\u0435\u0442:', match.homeScore.current, ':', match.awayScore.current);\n    console.log('\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f:', match.liveEvents.slice(-3));\n  });\n}\n\/\/ \u041e\u043f\u0440\u043e\u0441 \u043a\u0430\u0436\u0434\u044b\u0435 15 \u0441\u0435\u043a\u0443\u043d\u0434 (\u0434\u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f WebSocket)\nsetInterval(pollLiveMatches, 15000);\n<\/pre>\n<\/div>\n<div class=\"universal_article\">\n<h2 id=\"contents-6\">How to use data from the football API to build a model for predicting match outcomes<\/h2>\n<p>Building a quality model for predicting match outcomes starts with a reliable data source. The Football API service api-sport.ru provides all the necessary components: match results with detailed statistics, data on tournaments, teams, and players, as well as bookmaker odds in the field <code>oddsBase<\/code>. The basic workflow includes several steps: bulk downloading historical matches for the tournaments of interest, generating features from statistics, adding information about the strength of opponents and context (home\/away, schedule density, tournament stage), and then training and validating the model (from simple logistic regression to gradient boosting or neural networks).<\/p>\n<p>To obtain a data corpus, you can use the endpoint <code>\/v2\/f\u00fatbol\/partidos<\/code> with filtering by season and tournament, going through dates or pages of the calendar and saving the results to your database. From the field <code>estad\u00edsticasDelPartido<\/code> quantitative features are formed: shots on target, share of shots from the penalty area, number of big chances, percentage of duels won, efficiency in the final third, share of long passes, and so on. From <code>oddsBase<\/code> the initial and current odds are taken as market estimates of probabilities. The combination of \u00abraw\u00bb statistical metrics and market quotes usually provides significantly better predictive power than each source individually.<\/p>\n<p>After training the model, it is important to organize its operation in production. Here again, the sports events API helps: for each upcoming match, you can get the latest available data on teams, their results in the current season, live statistics during the game, and updated bookmaker odds. This allows for assessing pre-match probabilities as well as adapting predictions after the starting whistle. In the future, based on the same data, it is possible to build higher-level AI services \u2014 for example, betting recommendations or tips for the coaching staff that combine historical and live analytics.<\/p>\n<h3>Example of preparing a dataset for the prediction model<\/h3>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\" data-no-translation=\"\">\nimport requests\nAPI_KEY = 'YOUR_API_KEY'\nBASE_URL = 'https:\/\/api.api-sport.ru\/v2\/football\/matches'\nheaders = {\n    'Authorization': API_KEY\n}\n\ndef fetch_matches_by_date(date: str):\n    params = {\n        'date': date,\n        'status': 'finished'\n    }\n    r = requests.get(BASE_URL, headers=headers, params=params, timeout=10)\n    r.raise_for_status()\n    return r.json()&#x5B;'matches']\n\ndef build_features(match):\n    stats_all = next(s for s in match&#x5B;'matchStatistics'] if s&#x5B;'period'] == 'ALL')\n    overview = next(g for g in stats_all&#x5B;'groups'] if g&#x5B;'groupName'] == 'Match overview')\n    shots = next(g for g in stats_all&#x5B;'groups'] if g&#x5B;'groupName'] == 'Shots')\n    def get_item(group, key):\n        return next(i for i in group&#x5B;'statisticsItems'] if i&#x5B;'key'] == key)\n    ball_possession = get_item(overview, 'ballPossession')\n    total_shots = get_item(shots, 'totalShotsOnGoal')\n    shots_on_target = get_item(shots, 'shotsOnGoal')\n    # \u041f\u0440\u0438\u043c\u0435\u0440 \u0444\u0438\u0447\u0435\u0439 \u0434\u043b\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b\n    features_home = {\n        'ball_possession_home': ball_possession&#x5B;'homeValue'],\n        'total_shots_home': total_shots&#x5B;'homeValue'],\n        'shots_on_target_home': shots_on_target&#x5B;'homeValue'],\n        'goals_home': match&#x5B;'homeScore']&#x5B;'current'],\n        'goals_away': match&#x5B;'awayScore']&#x5B;'current'],\n    }\n    return features_home\n\nif __name__ == '__main__':\n    matches = fetch_matches_by_date('2025-09-03')\n    dataset = &#x5B;build_features(m) for m in matches]\n    print('\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0435:', len(dataset))\n<\/pre>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Content What statistical metrics really affect the outcome of a football match What xG metrics and shots on goal are important for predicting the match result What data on ball possession and passing accuracy should be considered when analyzing a football match What advanced metrics pressing, PPDA, and xThreat are available through the football API How to use the football statistics API to obtain data on [\u2026]<\/p>","protected":false},"author":1,"featured_media":1170,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","faq":"[{\"question\":\"\u041a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u0445\u043e\u0434 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0447\u0430?\",\"answer\":\"\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438: \u0443\u0434\u0430\u0440\u044b \u0432 \u0441\u0442\u0432\u043e\u0440 \u0438 \u0438\u0437 \u0448\u0442\u0440\u0430\u0444\u043d\u043e\u0439, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f (\u0432\u0445\u043e\u0434\u044b \u0432 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u0441\u0430\u043d\u0438\u044f \u0432 \u0448\u0442\u0440\u0430\u0444\u043d\u043e\u0439), \u0434\u043e\u043b\u044f \u0432\u044b\u0438\u0433\u0440\u0430\u043d\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u043e\u0431\u043e\u0440\u0441\u0442\u0432 \u0438 \u0432\u0440\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0435 \u0441\u0435\u0439\u0432\u044b. \u0412 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u043d\u0438 \u0434\u0430\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u0443\u044e \u043e\u0446\u0435\u043d\u043a\u0443 \u0441\u0438\u043b\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0447\u0435\u0442 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043c \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f \u043c\u044f\u0447\u043e\u043c.\"},{\"question\":\"\u0415\u0441\u0442\u044c \u043b\u0438 \u0432 api-sport.ru \u0433\u043e\u0442\u043e\u0432\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 xG (\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0433\u043e\u043b\u044b)?\",\"answer\":\"\u0413\u043e\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 xG \u0432 Sport Events API \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f. \u041e\u0434\u043d\u0430\u043a\u043e API \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0443\u0434\u0430\u0440\u043e\u0432 \u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 (totalShotsOnGoal, shotsOnGoal, totalShotsInsideBox, bigChanceCreated \u0438 \u0434\u0440.), \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e xG-\u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u043e\u0431\u0443\u0447\u0438\u0442\u044c \u0435\u0435 \u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\"},{\"question\":\"\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0435 API \u0441\u0447\u0438\u0442\u0430\u0442\u044c pressing \u0438 PPDA?\",\"answer\":\"\u041d\u0430\u043f\u0440\u044f\u043c\u0443\u044e pressing \u0438 PPDA \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0435 \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f, \u043d\u043e API \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u0431\u043e\u0440\u043e\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438: \u043e\u0442\u0431\u043e\u0440\u044b, \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b, \u043f\u043e\u0434\u0431\u043e\u0440\u044b \u043c\u044f\u0447\u0430, \u0432\u044b\u0438\u0433\u0440\u0430\u043d\u043d\u044b\u0435 \u0435\u0434\u0438\u043d\u043e\u0431\u043e\u0440\u0441\u0442\u0432\u0430 \u0438 \u043e\u0431\u0449\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438. \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 pressing \u0438 PPDA \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.\"},{\"question\":\"\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043b\u0438 api-sport.ru live-\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0442\u0447\u0435\u0439?\",\"answer\":\"\u0414\u0430, \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442 \/v2\/football\/matches \u0441\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c inprogress \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043c\u0438\u043d\u0443\u0442\u0443, \u0441\u0447\u0435\u0442, live-\u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443. \u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c WebSocket-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0435\u0437 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u043e\u0441\u0430.\"},{\"question\":\"\u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043b\u0438 Sport Events API \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0444\u0443\u0442\u0431\u043e\u043b\u0443?\",\"answer\":\"\u0414\u0430. API \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043c\u0430\u0442\u0447\u0430\u043c, \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443, \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u0443\u0440\u043d\u0438\u0440\u0430\u0445, \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u0445 \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u0445 \u0431\u0443\u043a\u043c\u0435\u043a\u0435\u0440\u043e\u0432. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u044b \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043e\u0432, \u0442\u043e\u0442\u0430\u043b\u043e\u0432, \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u0430\u0434\u0430\u0447.\"}]","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1171","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<title>What metrics influence the outcome of a football match \u2014 statistics API<\/title>\n<meta name=\"description\" content=\"Analysis of xG metrics, shots, possession, and pressing in football and how to obtain them through a sports API for analytics, prediction models, and betting.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/api-sport.pro\/es\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What metrics influence the outcome of a football match \u2014 statistics API\" \/>\n<meta property=\"og:description\" content=\"Analysis of xG metrics, shots, possession, and pressing in football and how to obtain them through a sports API for analytics, prediction models, and betting.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/api-sport.pro\/es\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Sports Events API\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-17T17:07:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1408\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/\",\"url\":\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/\",\"name\":\"What metrics influence the outcome of a football match \u2014 statistics API\",\"isPartOf\":{\"@id\":\"https:\/\/api-sport.pro\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg\",\"datePublished\":\"2025-12-17T17:07:38+00:00\",\"author\":{\"@id\":\"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601\"},\"description\":\"Analysis of xG metrics, shots, possession, and pressing in football and how to obtain them through a sports API for analytics, prediction models, and betting.\",\"breadcrumb\":{\"@id\":\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#primaryimage\",\"url\":\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg\",\"contentUrl\":\"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg\",\"width\":1408,\"height\":768,\"caption\":\"\u041a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0438\u0441\u0445\u043e\u0434 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0447\u0430?\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/api-sport.pro\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What metrics really affect the outcome of a football match?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/api-sport.pro\/#website\",\"url\":\"https:\/\/api-sport.pro\/\",\"name\":\"Sports Events API\",\"description\":\"Sports Events API\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/api-sport.pro\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/api-sport.pro\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/api-sport.pro\"],\"url\":\"https:\/\/api-sport.pro\/es\/author\/admin\/\"}]}<\/script>","yoast_head_json":{"title":"What metrics influence the outcome of a football match \u2014 statistics API","description":"Analysis of xG metrics, shots, possession, and pressing in football and how to obtain them through a sports API for analytics, prediction models, and betting.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/api-sport.pro\/es\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/","og_locale":"es_ES","og_type":"article","og_title":"What metrics influence the outcome of a football match \u2014 statistics API","og_description":"Analysis of xG metrics, shots, possession, and pressing in football and how to obtain them through a sports API for analytics, prediction models, and betting.","og_url":"https:\/\/api-sport.pro\/es\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/","og_site_name":"Sports Events API","article_published_time":"2025-12-17T17:07:38+00:00","og_image":[{"width":1408,"height":768,"url":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/","url":"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/","name":"What metrics influence the outcome of a football match \u2014 statistics API","isPartOf":{"@id":"https:\/\/api-sport.pro\/#website"},"primaryImageOfPage":{"@id":"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#primaryimage"},"image":{"@id":"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#primaryimage"},"thumbnailUrl":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg","datePublished":"2025-12-17T17:07:38+00:00","author":{"@id":"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601"},"description":"Analysis of xG metrics, shots, possession, and pressing in football and how to obtain them through a sports API for analytics, prediction models, and betting.","breadcrumb":{"@id":"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#primaryimage","url":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg","contentUrl":"https:\/\/api-sport.pro\/wp-content\/uploads\/2025\/11\/kakie-metriki-realno-vliyayut-na-iskhod-futbolnogo-matcha_posts-4.jpg","width":1408,"height":768,"caption":"\u041a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0438\u0441\u0445\u043e\u0434 \u0444\u0443\u0442\u0431\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0442\u0447\u0430?"},{"@type":"BreadcrumbList","@id":"https:\/\/api-sport.pro\/what-metrics-really-affect-the-outcome-of-a-football-match-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/api-sport.pro\/"},{"@type":"ListItem","position":2,"name":"What metrics really affect the outcome of a football match?"}]},{"@type":"WebSite","@id":"https:\/\/api-sport.pro\/#website","url":"https:\/\/api-sport.pro\/","name":"API de Eventos Deportivos","description":"API de Eventos Deportivos","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/api-sport.pro\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/api-sport.pro\/#\/schema\/person\/bc93f449b3753a5f254264da266fb601","name":"administrador","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/api-sport.pro\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8f3dce32feb8659c1f1c917db74325481c6133714f03d5a9433ba6df23a857ab?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/api-sport.pro"],"url":"https:\/\/api-sport.pro\/es\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts\/1171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/comments?post=1171"}],"version-history":[{"count":4,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts\/1171\/revisions"}],"predecessor-version":[{"id":1718,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/posts\/1171\/revisions\/1718"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/media\/1170"}],"wp:attachment":[{"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/media?parent=1171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/categories?post=1171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/api-sport.pro\/es\/wp-json\/wp\/v2\/tags?post=1171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}