---
id: api-event
title: Метод `event` — конкретный матч
description: Описание метода event для получения полной информации о конкретном матче по идентификатору game_id.
version: v1
language: ru
---

# Метод `event` — конкретный матч


## Для чего нужен метод

Метод `event` возвращает подробные данные одного матча по его `game_id`.

В отличие от [`events`](events.md), где для каждого матча предоставляется краткий список
основных групп и лучших коэффициентов, `event` возвращает полный доступный список групп и
исходов выбранного матча.

Метод также используется, чтобы:

- открыть страницу конкретного матча;
- регулярно обновлять открытый Live-матч;
- получить основные текущие показатели Live-матча из `stat_list`;
- получить список субматчей;
- запросить полный список коэффициентов выбранного субматча;
- проверить доступность видеотрансляции и Live 3D Tracker.

Полное описание каждого JSON-поля находится в
[«Едином справочнике полей Sport Line API»](../data-models/field-reference.md).

## Запрос

```http
GET https://YOUR_API_DOMAIN/v1/event/{gameId}/group/{type}/{lang}
```

API-ключ необходимо передавать в HTTP-заголовке:

```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

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/event/746146992/group/live/ru' \
  --header 'Package: YOUR_API_KEY'
```

## Пример запроса Prematch

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/event/730321837/group/line/ru' \
  --header 'Package: YOUR_API_KEY'
```

## Сокращённый пример ответа Live

Ниже показан фрагмент реального ответа матча `746146992`. Для компактности оставлены
одна группа ставок и первые три субматча.

```json
{
  "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 |

Назначение остальных полей, их типы и допустимые значения описаны в
[едином справочнике](../data-models/field-reference.md).

## Полный список коэффициентов

`event` используется после выбора матча в списке `events`:

```text
events → краткий список лучших коэффициентов
   ↓ пользователь открывает матч
event → полный доступный список групп и исходов
```

В формате `group` поле `game_oc_list` сгруппировано и имеет дополнительный уровень
вложенности внутри `oc_list`:

```text
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`](https://sportapi.net/ru/docs/coupon/bet-placement/bet-pointer.html) | 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` вернул:

```json
{
  "game_id": 746147010,
  "game_num": 205978,
  "game_name": "Угловые"
}
```

Запрос субматча:

```bash
curl --request GET \
  --url 'https://YOUR_API_DOMAIN/v1/event/746147010/group/live/ru' \
  --header 'Package: YOUR_API_KEY'
```

Проверенный ответ субматча содержит:

```json
{
  "game_id": 746147010,
  "game_mid": 746146992,
  "game_dop_name": "Угловые",
  "game_desk": "Тайм",
  "game_oc_counter": 175
}
```

В полном ответе этого субматча было 23 группы, 51 колонка и 166 исходов. Поле `game_mid` связывает
субматч с основным матчем `746146992`.

Полный проверочный ответ:
[субматч «Угловые», Live, русский язык](../examples/json-responses/event.subgame-746147010.corners.group.live.ru.json).

Полная схема связи с основным матчем и правила работы с `sub_games`:
[«Дополнительные матчи и субматчи»](../data-models/sub-events.md).

## Групповые матчи и `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 |

Пример двух пар команд внутри группового матча:

```json
"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`, поэтому
видеотрансляция для этого матча не предоставлена.

Подробные правила:

- [Live 3D Tracker в Sport Line API](../additional-services/live-3d-tracker.md);
- [видеотрансляции в Sport Line API](../additional-services/video-streaming.md).

## Матч больше недоступен

Если матч исчез из выбранного типа линии, метод может вернуть:

```json
{
  "status": 1,
  "page": "/v1/event",
  "body": {
    "message": "Game id finished"
  }
}
```

Сообщение не объясняет причину. Матч мог завершиться, быть отменён или перейти из
Prematch в Live с новым `game_id`. После такого ответа прекратите обновлять прежний ID.

## Сохранённые полные ответы

| Ответ | Матч | Субматчи | Группы коэффициентов |
|---|---|---:|---:|
| Live | Арсенал — Ковентри Сити | 13 | 49 |
| Prematch | Манчестер Сити — Борнмут | 24 | 204 |

Полные ответы без сокращений:

- [Live `746146992`, русский язык](../examples/json-responses/event.game-746146992.group.live.ru.json)
- [Live `746146992`, английский язык](../examples/json-responses/event.game-746146992.group.live.en.json)
- [Prematch `730321837`, русский язык](../examples/json-responses/event.game-730321837.group.line.ru.json)
- [Prematch `730321837`, английский язык](../examples/json-responses/event.game-730321837.group.line.en.json)
- [Субматч «Угловые» `746147010`, русский язык](../examples/json-responses/event.subgame-746147010.corners.group.live.ru.json)

Файлы содержат только тело ответа API. API-ключ в них не сохраняется.

## Частота обновления

Рекомендуется запрашивать `event`:

- Live — не чаще одного раза в 5 секунд;
- Prematch (`line`) — не чаще одного раза в 30 секунд.

Подробнее: [«Рекомендации по обновлению данных»](../getting-started/update-guidelines.md).

Ошибки ключа, тарифа и параметров описаны в документе
[«Обработка ошибок»](../getting-started/error-handling.md).
