- What is football statistics and what indicators are there
- Main types of football statistics for betting and analytics
- How key indicators of football statistics (xG, shots, possession) are calculated
- What football data can be obtained through sports statistics API
- How to use football statistics API for match and player analytics
- The best football statistics services and APIs in 2025: overview and comparison of capabilities
What is football statistics and what indicators are there
Football statistics is a formalized description of everything that happens before, during, and after a match: from the score and team line-ups to the number of shots, tackles, key passes, and goalkeeper saves. Modern football relies on numbers as much as on tactics: clubs use data for scouting, analytics, and media content, bettors use it to assess probabilities and find overvalued odds, and developers use it to build real-time applications and services.
Indicators are conditionally divided into several levels. Basic metrics describe the outcome of the match: goals, score by halves, goal scorers, cards, corners, offsides. Advanced metrics reveal the structure of the game: shots (total, on target, off target, from inside the box and outside it), possession, accurate and long passes, crosses, duels, interceptions, clearances, goalkeeper actions. A separate block consists of individual player data: minutes on the field, position, goals, xG component, assists, key passes, tackles, successful dribbles, etc.
An advanced analytics layer builds on the base: expected goals (xG), expected assists (xA), pressing intensity, PPDA, possession share in the final third, duel metrics, and other micro-events. Such parameters are usually calculated using complex models based on «raw» game events. That is why it is especially important to have access to a detailed data feed through a reliable API, such as a comprehensive service by the sports events API api-sport.ru, which aggregates matches, events, and detailed statistics for football and other sports.
Through the API, it is convenient to automatically receive and update figures: for live trackers, widgets, analytical dashboards, and betting platforms. Within football, the Sport Events API provides not only the score and status of the match but also an array matchStatistics with a breakdown by groups of indicators (shots, passes, duels, defense, goalkeeper line, etc.), as well as live events and bookmaker odds. All this makes the data ready for use in products of any scale — from a small Telegram bot to a large analytical service.
// Пример: получить список сегодняшних футбольных матчей с базовой статистикой
fetch('https://api.api-sport.ru/v2/football/matches?date=2025-09-03', {
headers: {
'Authorization': 'YOUR_API_KEY'
}
})
.then(res => res.json())
.then(data => {
data.matches.forEach(match => {
console.log(match.id, match.homeTeam.name, 'vs', match.awayTeam.name);
console.log('Текущая минута:', match.currentMatchMinute);
console.log('Статистика матча:', match.matchStatistics);
});
});
Main types of football statistics for betting and analytics
For betting and applied analytics, indicators directly related to the probability of outcomes are especially important. The key block is performance: goals, expected goals (if they are calculated on your side), shots on target, total attempts, share of shots from the penalty area. These metrics allow assessing the attacking potential of teams and the sustainability of their finishing moments. Through the Sport Events API, they are presented in the group Shots of the array matchStatistics (for example, totalShotsOnGoal, shotsOnGoal, totalShotsInsideBox, totalShotsOutsideBox).
The second group of important data for betting is discipline and set pieces: the number of yellow and red cards, fouls, free kicks, corners, offsides. They are critical for total markets on cards, fouls, and corners, as well as for assessing the style of refereeing and the aggressiveness of teams. In the API, these indicators are included in the overview groups of match statistics and can be analyzed both for the entire match and by halves (fields with periods 1ST, 2ND в matchStatistics).
For deeper analytics, game trends are revealed through data on ball possession, its movement into the final third, passing accuracy, the number of key passes, success in duels, and defensive work. In the Sport Events API, this is reflected, in particular, in the groups Passes, Duels, Defending, Goalkeeping. For example, the fields accuratePasses, finalThirdEntries, aerialDuelsPercentage, ballRecovery allow assessing ball control and tackling efficiency. Combined with the block oddsBase, which contains betting markets and bookmaker odds, developers can build value-betting models, track line movements, and compare them with actual game statistics.
The feature of the sports statistics API is that all this data is available in a single request and in a unified format. This simplifies the construction of custom dashboards, pre-match and live evaluation algorithms, as well as automated alert systems when there is a discrepancy between the statistical picture of the match and the bookmaker’s line.
// Пример: матчи в лайве с ключевой статистикой и коэффициентами
fetch('https://api.api-sport.ru/v2/football/matches?status=inprogress', {
headers: {
'Authorization': 'YOUR_API_KEY'
}
})
.then(res => res.json())
.then(data => {
data.matches.forEach(match => {
const stats = match.matchStatistics;
const odds = match.oddsBase;
console.log('Матч:', match.id, match.homeTeam.name, '-', match.awayTeam.name);
console.log('Статистика блок Shots:', stats.find(s => s.period === 'ALL'));
console.log('Рынки ставок:', odds);
});
});
How key indicators of football statistics (xG, shots, possession) are calculated
Shots are one of the basic metrics on which much in football is built. The standard approach to counting is as follows: each recorded attempt to shoot on goal is counted as an event. Depending on the outcome, it is classified into different subcategories: «on target» (the ball was heading towards the goal and required goalkeeper intervention or resulted in a goal), «off target,» «blocked,» etc. In the Sport Events API, the final count in these categories is available in the group Shots of the array matchStatistics — fields totalShotsOnGoal, shotsOnGoal, shotsOffGoal, blockedScoringAttempt, and also a breakdown of shots from the penalty area (totalShotsInsideBox) and from outside (totalShotsOutsideBox).
The ball possession indicator in the industry is usually calculated as the share of time or the share of controlled actions with the ball performed by each team. In practice, this can be a combination of control time and the number of passes. In the Sport Events API data, you get a ready-made aggregated indicator «Ball possession» in percentage for each period of the match (for example, 53%–47%), as well as auxiliary parameters such as the total number of passes (passes) and accurate passes (accuratePasses). This allows you to either use the ready-made possession value or build your own derived metrics, such as the share of passes in the final third from the total number of passes.
Expected goals (xG) is an advanced metric that describes the likelihood that a specific shot will result in a goal. In professional analytics, xG is calculated using statistical or machine-learning models based on a number of factors: distance to the goal, angle, type of shot, type of pass before the shot, positioning of defenders, etc. The Sport Events API does not impose a specific xG model but provides a foundation for its construction: the number of shots by type, shot zone (from the penalty area or not), information about big chances (bigChanceCreated, bigChanceScored, bigChanceMissed) and contextual metrics on attacks. By summing the probabilities across all strikes, you can obtain the team’s xG component and use it in your own betting models or sports analytics.
A typical workflow looks like this: you request a match with detailed statistics, go through the structure matchStatistics, collect the necessary fields (shots, possession, big moments), then run them through your formula or model. This approach provides flexibility: you control the math, and the football events API guarantees a stable and structured data source.
// Пример: упрощённый расчёт доли ударов из штрафной и владения
fetch('https://api.api-sport.ru/v2/football/matches/14570728', {
headers: {
'Authorization': 'YOUR_API_KEY'
}
})
.then(res => res.json())
.then(match => {
const allPeriod = match.matchStatistics.find(s => s.period === 'ALL');
const shotsGroup = allPeriod.groups.find(g => g.groupName === 'Shots');
const overviewGroup = allPeriod.groups.find(g => g.groupName === 'Match overview');
const totalShots = shotsGroup.statisticsItems.find(i => i.key === 'totalShotsOnGoal');
const insideBox = shotsGroup.statisticsItems.find(i => i.key === 'totalShotsInsideBox');
const possession = overviewGroup.statisticsItems.find(i => i.key === 'ballPossession');
console.log('Доля ударов из штрафной (хозяева):', insideBox.homeValue / totalShots.homeValue);
console.log('Владение мячом (хозяева):', possession.homeValue + '%');
});
What football data can be obtained through sports statistics API
The Sport Events API for football covers the entire match lifecycle: from tournament structure to detailed post-match statistics. Through the endpoints /v2/football/categories и /v2/football/tournament/{tournamentId} you get a tree of countries and leagues, seasons, information about playoffs and group stages. This allows for quick navigation through tournaments in the application — from top championships to reserve divisions and youth leagues.
The central element is matches. A request to /v2/football/matches returns a list of games with filters by date, tournament, season, team, status (not started, in progress, completed, etc.). The response includes: the identifier and status of the meeting, dates and times of the start, stadium, round, current score, and scores by halves, team lineups (homeTeam и awayTeam with the object lineup), live events (liveEvents), detailed match statistics (matchStatistics), bookmaker odds (oddsBase) and links to video reviews (highlights). This set makes the API a complete foundation for live trackers, match center, and advanced analytical panels.
Separate endpoints allow you to get complete information about teams and players. Through /v2/football/teams Clubs with basic data, stadium, coach, and all players are returned by the ID list. Endpoint /v2/football/players allows you to get football players by ID or by team, including position, height, citizenship, dominant foot, date of birth, number, market value. This data can be easily combined with match statistics, opening up opportunities for scouting, rankings, player career cards, and advanced visualizations.
To start working with the complete set of football data in 24/7 mode, simply register and obtain an access key in your personal account app.api-sport.ru. After that, you can instantly connect the API to your application, and later expand functionality with new features that are constantly being added: WebSocket subscriptions for instant updates, AI tools for intelligent analytics and personalized predictions.
// Пример: получить детальную информацию о матче
fetch('https://api.api-sport.ru/v2/football/matches/14570728', {
headers: {
'Authorization': 'YOUR_API_KEY'
}
})
.then(res => res.json())
.then(match => {
console.log('Турнир:', match.tournament.name);
console.log('Стадион:', match.venue.name, '-', match.venue.city.name);
console.log('Состав хозяев:', match.homeTeam.lineup.players);
console.log('Live-события:', match.liveEvents);
console.log('Полная статистика:', match.matchStatistics);
console.log('Коэффициенты букмекеров:', match.oddsBase);
});
How to use football statistics API for match and player analytics
The football statistics API opens up a wide range of application scenarios for analysts, betting companies, media, and developers. At the match level, a full analysis cycle can be built: preliminary assessment of team strength based on history, finding value in odds, live monitoring of statistical changes during the game, and post-match analysis. At the player level — identifying hidden leaders, objective assessment of contribution to the team, comparing footballers by roles, and creating individual rankings.
Technically, the workflow usually looks like this. First, you define the pool of tournaments and seasons through category and tournament endpoints. Then you regularly request matches by filters (date, status, team) and save the data in your database. The array matchStatistics is normalized by structure (period, group, key indicator), after which derived metrics are calculated based on it: shots and xG per 90 minutes, pressing intensity index, set-piece efficiency, conversion of chances, etc. Then these metrics are combined with odds from oddsBase, allowing for the construction of quantitative betting models and analytical reports.
For player analysis, data from /v2/football/players and compositions in lineup matches are linked to their actions on the field (goals, assists, tackles, interceptions, shots). As a result, one can consider, for example, shots and assists per 90 minutes, participation in big chances, won duels in the air, dribbling efficiency. Based on such metrics, scouting profiles, player selections for specific game models, and visual «spider» characteristics are built. All this can be easily integrated into web interfaces, bots, internal tools of clubs, and betting analytical departments, using a stable data feed from api-sport.ru.
In the near future, the real-time mode will be even more important: a WebSocket stream for instant delivery of new events and updates of statistics without constant polling of the server, as well as AI tools that can automatically find anomalies, trends, and potential value situations based on a dataset of historical matches. Preparing the infrastructure for these capabilities already provides a significant competitive advantage.
// Пример: базовый отчёт по игрокам команды в турнире
fetch('https://api.api-sport.ru/v2/football/players?team_id=195801', {
headers: {
'Authorization': 'YOUR_API_KEY'
}
})
.then(res => res.json())
.then(data => {
data.players.forEach(player => {
console.log(player.name, '-', player.position, '№', player.shirtNumber);
// Здесь вы можете дополнительно связать игрока с его матчевой статистикой
// и посчитать показатели на 90 минут, xG-цепочки и др.
});
});
The best football statistics services and APIs in 2025: overview and comparison of capabilities
In 2025, the football statistics market will be represented by several groups of solutions: large global data providers, niche services focusing on specific leagues or metrics, and flexible API platforms aimed at developers and startups. When choosing a provider, it is important to look not only at the brand but also at a set of criteria: depth and breadth of tournament coverage, detail of statistics, availability of live data, speed of updates, integration with bookmaker odds, convenience of documentation, and transparency of pricing.
From a developer’s perspective, APIs with a unified format for different sports, clear response schemas, and a rich set of fields are particularly valuable. In this context, the Sport Events API from api-sport.ru stands out favorably with its combination of functionality and simplicity. For football, you get: a structured tree of tournaments and seasons, detailed match objects with lineups, live events, and a dataset matchStatistics, an integrated block oddsBase with markets and bookmaker odds, as well as links to video highlights. At the same time, the same API schema supports hockey, basketball, tennis, table tennis, esports, and other sports, which is convenient for multi-sport projects.
An additional advantage is the focus on future functionality. Transitioning to WebSocket subscriptions will reduce the load on the infrastructure and allow for updates to be received as they occur, which is critical for live betting and real-time visualizations. At the same time, the development of AI tools will enable automatic segmentation of matches, pattern recognition, and probabilistic event assessment based on historical data. Thanks to transparent documentation and clear endpoints, integration with such capabilities does not require complex onboarding.
For a quick start, you can focus on recommended tournaments (top leagues), which the API provides through the field defaultTournaments in category endpoints. This allows gathering a pool of the most in-demand championships with several requests and building an MVP product on them, and then gradually expanding the coverage.
// Пример: получить популярные футбольные турниры по странам
fetch('https://api.api-sport.ru/v2/football/categories', {
headers: {
'Authorization': 'YOUR_API_KEY'
}
})
.then(res => res.json())
.then(data => {
console.log('Категории (страны/регионы):', data.categories.length);
console.log('Рекомендованные турниры (RU):', data.defaultTournaments.ru);
});




