Sport-specific данные
REST API использует единую базовую структуру Match, общую для всех 7 видов спорта. Каждый вид добавляет к ней свои специфичные поля и интерпретирует общие поля по-своему — например, что именно лежит в homeScore.period1 или какие группы появляются в matchStatistics[].
Чтобы корректно распарсить ответ для своего вида спорта, держите рядом две вещи:
- Базовая Match-структура — Concepts → Matches.
- Эта секция — расхождения и расширения для конкретного спорта.
Ниже — интерактивное дерево: переключайте вид спорта, чтобы увидеть, какие поля Match и
SeasonDetails появляются, приглушаются или меняют смысл. Это канонический список полей
(синхронизирован со спекой); таблица и правила под ним объясняют детали и интерпретацию.
Sport Schema Explorer
Выберите вид спорта — поля, специфичные для него, подсветятся и раскроются; неприменимые приглушатся. Поля без бейджей — общие для всех видов спорта.
idintegerstatusstringstatusDescriptionstringnullabledateEventstringstartTimestampintegercurrentMatchMinuteintegercurrentMatchSecondintegerovertimeLengthintegertournamentTournamentBriefidintegernamestringtranslationsobjectimagestringcategoryCategoryBriefidintegernamestringtranslationsobjectimagestringroundInfoRoundInfonamestringroundintegerseasonSeasonBriefidintegernamestringyearstringvenueVenueidintegernullablenamestringnullabletranslationsobjectcapacityintegernullablecityobjectcountryobjectrefereeRefereeФутбол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[]nullablehasBkOddsobjectmelbetbooleanoddsBkBookmakerOddsnullablemelbetBookmakerOddsDataКратко по всем спортам
| Спорт | Доп. объект в Match | Score periods | Live-события | Особое |
|---|---|---|---|---|
| Football | — | period1, period2, period3 (OT), penalties | Голы, карточки, замены, пенальти, VAR | referee, насыщенный matchStatistics |
| Ice Hockey | — | period1–period3, OT, shootout | Голы, штрафы, замены | — |
| Basketball | — | period1–period4, OT (period5+) | Броски, фолы, тайм-ауты | По-четвертная разбивка статистики |
| Tennis | tennis: TennisData | period1–period5 (сеты), point, tiebreak в periodNTieBreak | — | pointByPoint только в single-match endpoint |
| Table Tennis | — | period1–period5+ (сеты до 11) | — | Минимальная структура |
| Volleyball | — | period1–period5 (сеты) | — | Sport-specific поля в разработке |
| Esports | esports: EsportsData | На уровне games (CS2: раунды → period1/period2; Dota 2/LoL: kills) | Нет массива liveEvents — live-данные в esports.games[*] | CS2 / Dota 2 / LoL — разная структура EsportsGame |
Когда поля отсутствуют
Чтобы не «накручивать» обработку с try/except, держите следующие правила:
Match.tennis— присутствует только уtennis-матчей; размеченоx-sports: ["tennis"]. В API Reference поле видно всегда (единый бандл), а Sport Schema Explorer приглушает его для остальных видов.Match.esports— присутствует только уesports-матчей; размеченоx-sports: ["esports"]. Механика та же.Match.referee— заполняется у football. Для остальных может быть пустым / отсутствовать.Match.liveEvents— приходит только в детальном эндпоинте/v2/{sportSlug}/matches/{matchId}. В списке матчей поле пустое или отсутствует.tennis.pointByPoint— приходит только в/v2/tennis/matches/{matchId}(детальный матч). В спискеGET /v2/tennis/matchesполе опускается.
Связанные концепции
- Concepts → Matches — общая структура Match.
- Concepts → Bookmaker Odds —
oddsBasevsoddsBk. - WebSocket → Snapshot vs Delta — какие sport-specific поля приходят в
match_delta.