Календарь матчей — events по периоду
Для чего нужен
Календарь возвращает Prematch-матчи, которые начнутся в выбранный период:
- в ближайшие 2, 4, 6 или 12 часов;
- сегодня — от текущего момента до конца суток;
- в конкретный день: завтра, послезавтра и так далее, до 5 дней вперёд.
Это удобно для блоков «Ближайшие матчи», «Сегодня», «Завтра» и вкладок по дням: не нужно загружать всю линию вида спорта и фильтровать её на своей стороне.
Календарь — это тот же метод events с двумя дополнительными сегментами пути.
Ответ имеет ту же структуру, в нём только матчи выбранного периода.
Запрос
GET https://YOUR_API_DOMAIN/v1/events/{sportId}/{tournamentId}/{format}/{count}/line/{hours}/{days}/{lang}
API-ключ передаётся в HTTP-заголовке:
Package: YOUR_API_KEY
Параметры пути
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
sportId | number | да | ID вида спорта — из menu или sports для line |
tournamentId | number | да | ID турнира или 0 — все турниры вида спорта |
format | string | да | sub — матчи сгруппированы по турнирам, как в events |
count | number | да | Передавайте 50. Значение не влияет на ответ |
type | string | да | Только line: календарь работает для Prematch |
hours | number | да | Период в часах от текущего момента: 2, 4, 6 или 12. 0 — период задаётся days |
days | number | да | День: 0 — сегодня (до конца суток), 1 — завтра, 2 — послезавтра … 5 |
lang | string | да | Язык названий; должен входить в тариф клиента |
Как выбирается период
hours | days | Какие матчи возвращаются |
|---|---|---|
2, 4, 6, 12 | любое | Начало от текущего момента до «сейчас + N часов» (days не учитывается) |
0 | 0 | Сегодня: от текущего момента до конца суток |
0 | 1…5 | Только этот календарный день целиком, 00:00–24:00 (1 — завтра) |
0 | больше 5 | Пустой список: календарь смотрит не дальше 5 дней вперёд |
Правила периода:
- Сутки считаются по киевскому времени (
Europe/Kyiv: UTC+3 летом, UTC+2 зимой). - Уже начавшиеся матчи в календарь не попадают — они в Live.
- Другие значения
hours(например3) не дают ошибки: период определяется поdays, как приhours=0. - Турниры без матчей в выбранном периоде в ответ не попадают.
- Правило «Топ» из
eventsк календарю не применяется: возвращаются все матчи периода. Турниры упорядочены по популярности (сначала топ-лиги), матчи в турнире — по времени начала.
Необязательные query-параметры
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
odds | boolean | true | false — ответ без коэффициентов: у матчей нет game_oc_list, остальные поля те же |
Для расписания без ставок передавайте odds=false — ответ в несколько раз меньше. Киберспорт календарь
не поддерживает: для него используйте events с cybersport=true.
Примеры запросов
Футбол, матчи ближайших 2 часов:
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/events/1/0/sub/50/line/2/0/ru' \
--header 'Package: YOUR_API_KEY'
Футбол, все матчи сегодня (до конца суток), без коэффициентов:
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/events/1/0/sub/50/line/0/0/ru?odds=false' \
--header 'Package: YOUR_API_KEY'
Футбол, все матчи завтра:
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/events/1/0/sub/50/line/0/1/en' \
--header 'Package: YOUR_API_KEY'
Матчи одного турнира на послезавтра — замените 0 на tournamentId:
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/events/1/1706694/sub/50/line/0/2/ru' \
--header 'Package: YOUR_API_KEY'
Ответ
Структура ответа такая же, как у events: body — список турниров,
в каждом events_list с матчами. Поля матча описаны в модели матча.
{
"status": 1,
"page": "/v1/events",
"body": [
{
"tournament_id": 1706694,
"tournament_name": "Лига Наций УЕФА",
"events_list": [
{
"game_id": 758182302,
"game_start": 1791295200,
"opp_1_name": "Казахстан",
"opp_2_name": "Фарерские острова",
"game_oc_counter": 1261
}
]
}
]
}
Пример сокращён: в ответе у матча те же поля, что и в events.
Если в выбранном периоде матчей нет, приходит успешный ответ с пустым списком:
{
"status": 1,
"page": "/v1/events",
"body": []
}
Ошибки ключа, языка и доступа — те же, что у остальных методов: Обработка ошибок.
Сколько матчей в ответе
Пример для футбола (6 октября 2026 года, около 16:20 по Киеву):
| Запрос | Период | Турниры | Матчи |
|---|---|---|---|
.../line/2/0/ru | ближайшие 2 часа | 25 | 34 |
.../line/4/0/ru | ближайшие 4 часа | 31 | 73 |
.../line/12/0/ru | ближайшие 12 часов | 67 | 223 |
.../line/0/0/ru | сегодня до конца суток | 61 | 204 |
.../line/0/1/ru | завтра | 78 | 199 |
.../line/0/5/ru | через 5 дней | 94 | 351 |
Это статистика конкретных ответов, а не постоянный состав API.
Частота обновления
Календарь строится из той же Prematch-линии, что и events, поэтому данные в нём такие же свежие.
Период сдвигается со временем, поэтому запрашивать календарь достаточно раз в 1–2 минуты. Матчи,
которые начались, переходят в Live — их нужно получать через events с type=live.