Метод event — конкретный матч
Для чего нужен метод
Метод event возвращает подробные данные одного матча по его game_id.
В отличие от events, где для каждого матча предоставляется краткий список
основных групп и лучших коэффициентов, event возвращает полный доступный список групп и
исходов выбранного матча.
Метод также используется, чтобы:
- открыть страницу конкретного матча;
- регулярно обновлять открытый Live-матч;
- получить основные текущие показатели Live-матча из
stat_list; - получить список субматчей;
- запросить полный список коэффициентов выбранного субматча;
- проверить доступность видеотрансляции и Live 3D Tracker.
Полное описание каждого JSON-поля находится в «Едином справочнике полей Sport Line API».
Запрос
GET https://YOUR_API_DOMAIN/v1/event/{gameId}/group/{type}/{lang}
API-ключ необходимо передавать в HTTP-заголовке:
Package: YOUR_API_KEY
Параметры пути
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
gameId | number | да | ID матча или субматча, полученный из events или sub_games |
group | string | да | Единственный формат метода event. Группирует коэффициенты по группам и вложенным колонкам исходов |
type | string | да | Тип спортивной линии: live или line |
lang | string | да | Язык названий. Язык должен поддерживаться API и входить в тариф клиента |
Для метода event используется только формат group.
Почему используется group
Формат group рекомендуется для конкретного матча, потому что API уже подготавливает
коэффициенты для отображения:
- разделяет исходы по группам ставок;
- формирует колонки внутри каждой группы;
- передаёт рекомендуемое количество колонок в поле
columns; - сортирует исходы по их значениям.
Разработчику не нужно самостоятельно группировать исходы, восстанавливать колонки или повторно сортировать значения. Рекомендуется сохранять порядок групп, колонок и исходов, полученный от API.
ID нужно запрашивать в том типе линии, из которого он был получен:
- для Live-матча используйте
live; - для Prematch-матча используйте
line.
Prematch- и Live-версии одного матча имеют разные game_id. Нельзя взять Prematch-ID и
после начала матча продолжить запрашивать его как Live-ID.
Пример запроса Live
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/event/746146992/group/live/ru' \
--header 'Package: YOUR_API_KEY'
Пример запроса Prematch
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/event/730321837/group/line/ru' \
--header 'Package: YOUR_API_KEY'
Сокращённый пример ответа Live
Ниже показан фрагмент реального ответа матча 746146992. Для компактности оставлены
одна группа ставок и первые три субматча.
{
"status": 1,
"page": "/v1/event",
"body": {
"game_id": 746146992,
"game_mid": 746146992,
"game_start": 1787338800,
"sport_id": 1,
"sport_name": "Футбол",
"country_id": 231,
"country_name": "Англия",
"tournament_id": 88637,
"tournament_name": "Чемпионат Англии. Премьер-лига",
"opp_1_name": "Арсенал",
"opp_2_name": "Ковентри Сити",
"game_oc_counter": 278,
"game_oc_list": [
{
"group_id": 19,
"group_name": "Обе забьют",
"columns": 2,
"oc_list": [
[
{
"oc_group_name": "Обе забьют",
"oc_name": "Да",
"oc_rate": 3.336,
"oc_size": 0,
"oc_pointer": "746146992|19|180|0",
"oc_block": false,
"op_id": null
}
],
[
{
"oc_group_name": "Обе забьют",
"oc_name": "Нет",
"oc_rate": 1.33,
"oc_size": 0,
"oc_pointer": "746146992|19|181|0",
"oc_block": false,
"op_id": null
}
]
]
}
],
"timer": 3376,
"score_full": "3:0",
"score_period": "2:0;1:0",
"period_name": "2-й тайм",
"sub_games": [
{
"game_id": 746147013,
"game_num": 150080,
"game_name": "2-й тайм"
},
{
"game_id": 746147010,
"game_num": 205978,
"game_name": "Угловые"
},
{
"game_id": 746147037,
"game_num": 207011,
"game_name": "Быстрые события"
}
],
"va": null,
"vi": null,
"zp": 746146992,
"finale": false
}
}
Это сокращённый фрагмент. Полный ответ содержит все поля матча, 49 групп коэффициентов, 13 субматчей и 15 показателей статистики.
Верхний уровень ответа
| Поле | Тип | Описание |
|---|---|---|
status | number | Статус выполнения запроса. В успешном ответе возвращается 1 |
page | string | Название метода. Для конкретного матча возвращается /v1/event |
body | object | Подробный объект выбранного матча |
В events поле body содержит массив турниров. В event поле body содержит один
объект матча без дополнительной обёртки турнира.
Основные поля матча
| Поле | Тип | Описание |
|---|---|---|
game_id | number | ID запрошенного матча или субматча |
game_mid | number или null | ID основного матча. У главного матча обычно совпадает с game_id |
game_start | number | Время начала в формате Unix Timestamp, в секундах |
sport_id | number | ID вида спорта |
sport_name | string | Название вида спорта |
country_id | number | ID страны |
country_name | string | Название страны |
tournament_id | number | ID турнира |
tournament_name | string | Название турнира |
opp_1_name | string | Первая команда или участник |
opp_2_name | string | Вторая команда или участник |
timer | number | Таймер матча в секундах. Для получения минут разделите на 60. В Prematch обычно 0 |
score_full | string | Общий счёт |
score_period | string | Счёт текущего периода |
period_name | string | Название текущего периода |
game_oc_counter | number | Общий счётчик доступных ставок или исходов |
game_oc_list | array | Полный доступный список групп коэффициентов матча |
sub_games | array | Ссылки на доступные субматчи |
va | number или null | 1 — есть видео; null — видео отсутствует |
vi | string или null | ID видеотрансляции |
zp | number или null | ID Live 3D Tracker |
Назначение остальных полей, их типы и допустимые значения описаны в едином справочнике.
Полный список коэффициентов
event используется после выбора матча в списке events:
events → краткий список лучших коэффициентов
↓ пользователь открывает матч
event → полный доступный список групп и исходов
В формате group поле game_oc_list сгруппировано и имеет дополнительный уровень
вложенности внутри oc_list:
game_oc_list
└── группа ставок
└── oc_list
└── колонка
└── исходы и коэффициенты этой колонки
Группа ставок
| Поле | Тип | Описание |
|---|---|---|
group_id | number | ID группы |
group_name | string | Название группы |
columns | number | Рекомендуемое количество колонок для отображения; не обязано совпадать с количеством вложенных массивов oc_list |
oc_list | array of arrays | Колонки исходов внутри группы; каждый вложенный массив содержит исходы и коэффициенты одной колонки |
Исход
| Поле | Тип | Описание |
|---|---|---|
oc_name | string | Название исхода |
oc_rate | number | Коэффициент |
oc_size | string или number | Значение форы, тотала или другого параметра |
oc_pointer | string | Основной код ставки или исхода. Используется при передаче выбранной ставки в отдельную систему приёма и расчёта ставок |
oc_block | boolean | true — исход заблокирован; false — доступен |
op_id | number или null | ID игрока или участника для персонального исхода, если применимо |
Состав групп зависит от вида спорта и конкретного матча. Не привязывайте интерфейс к одинаковым названиям, количеству или порядку групп.
При подсчёте и обработке исходов учитывайте оба уровня oc_list: сначала массив колонок,
затем массив исходов внутри каждой колонки.
game_oc_counter может отличаться от фактического количества возвращённых исходов.
Используйте его как счётчик API, а сами исходы обрабатывайте по содержимому
game_oc_list.
Данные сохранённых матчей
| Ответ | Группы | Колонки в oc_list | Исходы | game_oc_counter |
|---|---|---|---|---|
Live, 746146992 | 49 | 95 | 278 | 278 |
Prematch, 730321837 | 204 | 387 | 1294 | 1337 |
Значения относятся только к моменту получения ответов и изменяются вместе со спортивной линией.
Субматчи
В конкретном event поле sub_games содержит список доступных субматчей. Например:
- отдельный тайм;
- угловые;
- жёлтые карточки;
- фолы;
- статистика игроков;
- другие доступные части и варианты матча.
Каждый элемент sub_games содержит:
| Поле | Тип | Описание |
|---|---|---|
game_id | number или null | ID субматча |
game_num | number или null | Старое служебное поле, которое планируется удалить |
game_name | string или null | Название субматча |
Сам массив sub_games не содержит коэффициенты. Чтобы получить полный список
коэффициентов субматча, выполните новый запрос event по его game_id.
Пример запроса субматча «Угловые»
Основной Live-матч 746146992 вернул:
{
"game_id": 746147010,
"game_num": 205978,
"game_name": "Угловые"
}
Запрос субматча:
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/event/746147010/group/live/ru' \
--header 'Package: YOUR_API_KEY'
Проверенный ответ субматча содержит:
{
"game_id": 746147010,
"game_mid": 746146992,
"game_dop_name": "Угловые",
"game_desk": "Тайм",
"game_oc_counter": 175
}
В полном ответе этого субматча было 23 группы, 51 колонка и 166 исходов. Поле game_mid связывает
субматч с основным матчем 746146992.
Полный проверочный ответ: субматч «Угловые», Live, русский язык.
Полная схема связи с основным матчем и правила работы с sub_games:
«Дополнительные матчи и субматчи».
Групповые матчи и event_plan
Поле event_plan заполняется только в ответе конкретного матча event. В списке матчей
events оно не используется и возвращается как [].
event_plan предназначен для групповых матчей. Основной матч может называться
«Хозяева — Гости», а внутри event_plan передаётся полный список конкретных команд,
которые играют на стороне хозяев и на стороне гостей. Каждый объект описывает одну пару
команд и время её встречи.
| Поле | Тип | Описание |
|---|---|---|
opp_1_name | string | Команда со стороны хозяев |
opp_2_name | string | Команда со стороны гостей |
opp_1_id | number или null | ID команды со стороны хозяев |
opp_2_id | number или null | ID команды со стороны гостей |
opp_1_country_id | number или null | ID страны команды со стороны хозяев |
opp_2_country_id | number или null | ID страны команды со стороны гостей |
opp_1_icon | string | Иконка команды со стороны хозяев |
opp_2_icon | string | Иконка команды со стороны гостей |
opp_1_date | number или null | Дата и время команды со стороны хозяев в формате Unix Timestamp |
opp_2_date | number или null | Дата и время команды со стороны гостей в формате Unix Timestamp |
game_start | number или null | Время начала встречи этой пары в формате Unix Timestamp |
Пример двух пар команд внутри группового матча:
"event_plan": [
{
"opp_1_name": "Anzoategui",
"opp_2_name": "Trujillanos",
"opp_1_id": 6354451,
"opp_2_id": 2792,
"opp_1_country_id": 41,
"opp_2_country_id": 41,
"opp_1_icon": "b85e2e3631e4b873b1d74975e6dd4e93.png",
"opp_2_icon": "2792.png",
"opp_1_date": 1787342400,
"opp_2_date": 1787342400,
"game_start": 1787342400
},
{
"opp_1_name": "Caracas",
"opp_2_name": "Carabobo",
"opp_1_id": 2776,
"opp_2_id": 29081,
"opp_1_country_id": 41,
"opp_2_country_id": 41,
"opp_1_icon": "6309ee8475d59f87fff70fd08858e36f.png",
"opp_2_icon": "56b11c23ac71e2f6934a7e0feb46dd5e.png",
"opp_1_date": 1787353200,
"opp_2_date": 1787353200,
"game_start": 1787353200
}
]
Live и Prematch
Структура ответа одинаковая, но заполнение данных отличается.
В Live обычно обновляются:
timer;score_fullиscore_period;period_name;stat_list;- коэффициенты и
oc_block; - доступность видео и трекера.
В Prematch таймер, счёт, период и статистика обычно содержат начальные или пустые значения.
Для сохранённого Live-матча zp равен 746146992, поэтому Live 3D Tracker доступен и
это значение можно передать в трекер как gameid. Поля va и vi равны null, поэтому
видеотрансляция для этого матча не предоставлена.
Подробные правила:
Матч больше недоступен
Если матч исчез из выбранного типа линии, метод может вернуть:
{
"status": 1,
"page": "/v1/event",
"body": {
"message": "Game id finished"
}
}
Сообщение не объясняет причину. Матч мог завершиться, быть отменён или перейти из
Prematch в Live с новым game_id. После такого ответа прекратите обновлять прежний ID.
Сохранённые полные ответы
| Ответ | Матч | Субматчи | Группы коэффициентов |
|---|---|---|---|
| Live | Арсенал — Ковентри Сити | 13 | 49 |
| Prematch | Манчестер Сити — Борнмут | 24 | 204 |
Полные ответы без сокращений:
- Live
746146992, русский язык - Live
746146992, английский язык - Prematch
730321837, русский язык - Prematch
730321837, английский язык - Субматч «Угловые»
746147010, русский язык
Файлы содержат только тело ответа API. API-ключ в них не сохраняется.
Частота обновления
Рекомендуется запрашивать event:
- Live — не чаще одного раза в 5 секунд;
- Prematch (
line) — не чаще одного раза в 30 секунд.
Подробнее: «Рекомендации по обновлению данных».
Ошибки ключа, тарифа и параметров описаны в документе «Обработка ошибок».