Football — особенности данных
Футбол — «первоклассный» вид спорта в API: насыщенные live-данные, единственный спорт с Match.referee, наиболее богатый matchStatistics. Структура Match — без отдельного sport-specific объекта (Match.tennis / Match.esports отсутствуют).
Поля Match под футбол — в интерактивном дереве ниже (источник — спека, синхронизируется автоматически). Подсвечены поля, специфичные для футбола; неприменимые — приглушены. Блоки кода на странице иллюстративны: показывают смысл и типичные значения, а не полный перечень полей.
Sport Schema Explorer
Выберите вид спорта — поля, специфичные для него, подсветятся и раскроются; неприменимые приглушатся. Поля без бейджей — общие для всех видов спорта.
MatchidintegerstatusstringstatusDescriptionstringnullabledateEventstringstartTimestampintegercurrentMatchMinuteintegercurrentMatchSecondintegerovertimeLengthintegertournamentTournamentBriefidintegernamestringtranslationsobjectimagestringcategoryCategoryBriefidintegernamestringtranslationsobjectimagestringroundInfoRoundInfonamestringroundintegerseasonSeasonBriefidintegernamestringyearstringvenueVenueidintegernullablenamestringnullabletranslationsobjectcapacityintegernullablecityobjectcountryobjectrefereeRefereeФутболidintegernullablenamestringyellowCardsintegerredCardsintegeryellowRedCardsintegergamesintegercountryobjecttranslationsobjecthomeTeamTeamWithLineupidintegernullablenamestringnullablefullNamestringnullabletranslationsobjectgenderstringnullablecountrystringnullablemanagerManagernullableimagestringlineupLineupnullableФутболХоккейБаскетболВолейболawayTeamTeamWithLineupidintegernullablenamestringnullablefullNamestringnullabletranslationsobjectgenderstringnullablecountrystringnullablemanagerManagernullableimagestringlineupLineupnullableФутболХоккейБаскетболВолейболhomeScoreScorecurrentintegerperiod1integerperiod2integerperiod3integernullableperiod4integernullableperiod5integernullableperiod6integernullableБаскетболНастольный теннисperiod7integernullableБаскетболНастольный теннисperiod1TieBreakintegernullableТеннисperiod2TieBreakintegernullableТеннисperiod3TieBreakintegernullableТеннисperiod4TieBreakintegernullableТеннисperiod5TieBreakintegernullableТеннисpenaltiesintegernullableФутболХоккейdisplaystringnullablepointstringnullableТеннисawayScoreScorecurrentintegerperiod1integerperiod2integerperiod3integernullableperiod4integernullableperiod5integernullableperiod6integernullableБаскетболНастольный теннисperiod7integernullableБаскетболНастольный теннисperiod1TieBreakintegernullableТеннисperiod2TieBreakintegernullableТеннисperiod3TieBreakintegernullableТеннисperiod4TieBreakintegernullableТеннисperiod5TieBreakintegernullableТеннисpenaltiesintegernullableФутболХоккейdisplaystringnullablepointstringnullableТеннисliveEventsLiveEvent[]ФутболХоккейБаскетболВолейболНастольный теннисtimeintegertimeSecondsintegertypestringclassstringteamstringplayerobjectplayerInobjectplayerOutobjectreasonstringfromstringhomeScoreintegerawayScoreintegerperiodintegernullabledescriptionstringplayerNamestringassist1Namestringassist2NamestringmanagerobjectrescindedbooleanplayerInNamestringplayerOutNamestringinjurybooleansequenceintegernullableconfirmedbooleannullableaddedTimeintegerlengthintegernullabletextstringisLivebooleanmatchStatisticsobject[]oddsBaseOddsMarket[]namestringgroupstringperiodstringisLivebooleansuspendedbooleanchoicesOddsChoice[]highlightsHighlight[]titlestringurlstringimagestringesportsEsportsDatanullableКиберспортbestOfintegernullablegamesEsportsGame[]tennisTennisDatanullableТеннисbestOfintegernullablegroundTypestringnullablefirstToServestringnullablehomePlayerSeedstringnullableawayPlayerSeedstringnullablesetsTennisSet[]nullablemomentumTennisMomentumItem[]nullablepointByPointTennisPointByPointSet[]nullablehasBkOddsobjectmelbetbooleanoddsBkBookmakerOddsnullablemelbetBookmakerOddsDataScore
homeScore: {
current: 2,
period1: 1, // первый тайм
period2: 2, // второй тайм (накопительно)
period3: 2, // овертайм (если был, накопительно)
penalties: 5, // только если была серия пенальти
display: "2-2 (5-4 pen.)"
}
current— итоговый счёт основного времени + овертайма (без пенальти).penalties— счёт серии пенальти отдельно. Присутствует только если матч решался пенальти.
Match.referee
referee: {
id: 13456,
name: "Felix Zwayer",
country: { name: "Germany" },
translations: { ru: "Феликс Цвайер" },
yellowCards: 4.2, // среднее за матч в текущем сезоне
redCards: 0.3,
yellowRedCards: 0.1,
games: 28
}
Только в футболе. Для остальных видов спорта поле либо отсутствует, либо пустое. Может быть null если данных по арбитру нет.
Match.liveEvents
Приходит только в /v2/football/matches/{matchId} (не в списке). Каждое событие:
{
time: 23, // минута матча (может перескакивать через injuryTime)
timeSeconds: 1380, // секунды от старта тайма
type: "card", // см. ниже
class: "yellow", // подтип
team: "away", // "home" | "away"
player: { id, name, translations.ru },
playerIn: { ... }, // только для substitution
playerOut: { ... }, // только для substitution
reason: "...", // только для card / inGamePenalty / varDecision
homeScore: 0,
awayScore: 1 // снимок счёта на момент события
}
Возможные значения type:
| type | class / reason | Описание |
|---|---|---|
goal | regular, penalty, ownGoal | Гол (в classification — кто, как) |
card | yellow, red, yellowRed | Жёлтая / красная / вторая жёлтая → красная |
substitution | — | Замена; см. playerIn / playerOut |
inGamePenalty | scored, missed | Назначенный пенальти по ходу матча |
penaltyShootout | scored, missed, saved | Серия пенальти после матча |
varDecision | goalCancelled, penaltyAwarded, cardChanged и т. д. | Решение VAR |
injuryTime | — | Объявление добавленного времени |
period | firstHalfStart, firstHalfEnd, secondHalfStart, … | Свистки старта / конца тайма |
Составы — травмы и дисквалификации
Состав команды (homeTeam.lineup / awayTeam.lineup) помимо players и formation содержит
missingPlayers — список отсутствующих игроков. Для футбола причиной может быть травма, болезнь или
дисквалификация (в т.ч. перебор жёлтых карточек или удаление). Полный справочник причин и уточнений с
переводами на RU/ES — Словарь причин отсутствия игроков.
Match.matchStatistics
Самый богатый набор групп среди всех спортов. Структура: массив групп, каждая — { group, items[] }.
- Группа
all— за весь матч. - Группа
1st_half— первый тайм. - Группа
2nd_half— второй тайм. - Группа
extra_time— овертайм (если был).
В items[] ключи (key) — camelCase идентификаторы, например (фрагмент из spec):
ballPossession, bigChanceCreated, bigChanceMissed, bigChanceScored,
cornerKicks, fouls, freeKicks, goalkeeperSaves, hitWoodwork,
totalShotsOnGoal, shotsOffGoal, blockedShots, shotsInsideBox, shotsOutsideBox,
yellowCards, accuratePasses, throwIns, finalThirdEntries,
accurateLongBalls, accurateCross, duelWonPercent, dispossessed,
groundDuelsPercentage, aerialDuelsPercentage, dribblesPercentage,
totalTackle, wonTacklePercent, interceptionWon, ballRecovery,
totalClearance, punches, goalKicks, penaltySaves, touchesInPenaltyArea,
fouledInFinalThird, offsides, ...
Каждый item:
{
key: "ballPossession",
name: "Ball possession",
home: "58%",
away: "42%",
homeValue: 58,
awayValue: 42,
homeTotal: null, // для метрик с дробями: "5/9" → 5 (home), 9 (homeTotal)
awayTotal: null,
compareCode: 1, // 1 = home лучше, 2 = away лучше, 3 = ничья
statisticsType: "positive",
valueType: "team",
renderType: 1
}
Match.oddsBase / Match.oddsBk (Melbet)
Футбол — самый широкий ассортимент рынков:
oddsBase(всегда возвращается): 1×2, тотал голов, азиатский гандикап, обе забьют.oddsBk(поwith_bk_odds=true): расширенные рынки от Melbet (1×2, тоталы, гандикапы, корнеры, карточки, статистика игроков, особые ставки).
См. Concepts → Bookmaker Odds.
Permission-проверка для тарифов
Если ваш тариф не включает football — REST вернёт 400 с error: "user_has_no_access"; WebSocket-подписка на sport:football или match:football:* упадёт с code: "NO_ACCESS". Подробнее — Getting Started → Rate limits.
Связанные ссылки
- API Reference — выберите
sportSlug=footballв каждой operation - Recipes → Live feed матчей
- Recipes → Календарь за месяц