Метод tournaments — список турниров и чемпионатов
Рекомендация: обычно лучше использовать menu
Метод tournaments возвращает турниры только для одного вида спорта и одной страны.
Эти же турниры уже находятся внутри ответа метода menu.
Для обычной интеграции рекомендуется использовать menu, потому что за один запрос он
возвращает всю структуру:
вид спорта → страна → турнир
При пошаговой загрузке потребуются отдельные запросы:
1. sports → получить sportId
2. countries → получить countryId
3. tournaments → получить tournamentId
4. events → получить матчи турнира
Метод tournaments является дополнительным. Используйте его, если турниры должны
загружаться только после выбора вида спорта и страны. Если проекту сразу нужна полная
спортивная структура, используйте menu.
Запрос
GET https://YOUR_API_DOMAIN/v1/tournaments/{sportId}/{countryId}/{type}/{lang}
API-ключ необходимо передавать в HTTP-заголовке:
Package: YOUR_API_KEY
Параметры пути
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
sportId | number | да | ID вида спорта, полученный из sports или menu |
countryId | number | да | ID страны, полученный из countries или menu |
type | string | да | Тип спортивной линии: live или line |
lang | string | да | Язык названий. Язык должен поддерживаться API и входить в тариф клиента |
Значения параметра type:
| Значение | Какие данные возвращаются |
|---|---|
live | Турниры, в которых доступны Live-матчи |
line | Турниры, в которых доступны Prematch-матчи |
Необязательный query-параметр
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
cybersport | boolean | false | Переключает метод на турниры киберспорта |
Пример запроса киберспортивных данных:
GET https://YOUR_API_DOMAIN/v1/tournaments/{sportId}/{countryId}/live/ru?cybersport=true
Сохранённые в этой документации полные ответы получены без query-параметров, то есть
при cybersport=false.
Пример запроса Live
В примере используются футбол (sportId=1) и Россия (countryId=1):
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/tournaments/1/1/live/ru' \
--header 'Package: YOUR_API_KEY'
Пример запроса Prematch
curl --request GET \
--url 'https://YOUR_API_DOMAIN/v1/tournaments/1/1/line/ru' \
--header 'Package: YOUR_API_KEY'
Реальный пример ответа Live
В момент запроса для выбранных параметров был доступен один турнир, поэтому ниже показан полный ответ без сокращений.
{
"status": 1,
"page": "/v1/tournaments",
"body": [
{
"id": 2916716,
"name": "Чемпионат России. Молодежное первенство. Дивизион А",
"counter": 1,
"sport_id": 1,
"countryId": 1
}
]
}
Сокращённый пример ответа Prematch
Ниже показан фрагмент реального ответа. Значения сохранены без изменений, но массив
body сокращён до трёх турниров.
{
"status": 1,
"page": "/v1/tournaments",
"body": [
{
"id": 176125,
"name": "Кубок России",
"counter": 8,
"sport_id": 1,
"countryId": 1
},
{
"id": 225733,
"name": "Чемпионат России. Премьер-лига",
"counter": 18,
"sport_id": 1,
"countryId": 1
},
{
"id": 30079,
"name": "Чемпионат России. Премьер-лига. Статистика тура",
"counter": 1,
"sport_id": 1,
"countryId": 1
}
]
}
Значения counter показывают состояние линии только в момент получения ответа и
постоянно изменяются.
Поля ответа
Верхний уровень
| Поле | Тип | Описание |
|---|---|---|
status | number | Статус выполнения запроса. В успешном ответе возвращается 1 |
page | string | Название метода. Для tournaments возвращается /v1/tournaments |
body | array | Массив доступных турниров выбранного вида спорта и страны |
Объект турнира
| Поле | Тип | Описание |
|---|---|---|
id | number | ID турнира. Используется как tournamentId в других методах |
name | string | Название турнира на языке, указанном в lang |
counter | number | Количество доступных матчей этого турнира |
sport_id | number | ID вида спорта, к которому относится турнир |
countryId | number | ID страны, к которой относится турнир |
Обратите внимание на точное написание полей в JSON:
- ID вида спорта называется
sport_id; - ID страны называется
countryIdс заглавной буквойI.
Не заменяйте countryId на country_id при чтении ответа.
Готовые иконки турниров
Для каждого турнира или чемпионата можно использовать стандартную иконку SportAPI.
Возьмите значение поля id из ответа и подставьте его вместо {tournamentId}:
https://cdn.sportapi.net/tournaments/v1/color/{tournamentId}.webp
Например, для турнира с id: 118737:
https://cdn.sportapi.net/tournaments/v1/color/118737.webp
Связь с методом menu
Объекты из массива body метода tournaments содержат те же поля, что и объекты
турниров внутри menu для выбранного вида спорта и страны.
Если вызвать методы в разное время, состав турниров и значения counter могут
отличаться, поскольку спортивная линия постоянно изменяется.
Что делать с полученным id
После выбора турнира возьмите его поле id. В URL метода получения матчей этот
идентификатор обозначается как tournamentId.
Для запроса матчей выбранного турнира понадобятся:
sportIdиз выбранного вида спорта;tournamentIdиз поляidвыбранного турнира;- тип линии
liveилиline; - язык ответа.
При использовании menu нужные sportId и tournamentId уже находятся в одном
ответе, поэтому предварительные запросы sports, countries и tournaments не нужны.
Не запрашивайте матчи по заранее сохранённому tournamentId, не проверив актуальный
ответ tournaments или menu. Турнир возвращается только пока в нём есть доступные
матчи выбранного типа линии.
Если единственный матч турнира закончился, перешёл из Prematch в Live или исчез по
другой причине, этот турнир перестанет возвращаться в соответствующей выдаче. Передавайте
в events только tournamentId из актуальной навигационной цепочки.
Снимок сохранённых ответов
Во всех примерах использованы футбол (sportId=1) и Россия (countryId=1).
| Тип линии | Русский ответ | Английский ответ |
|---|---|---|
| Live | 1 турнир | 1 турнир |
Prematch (line) | 14 турниров | 14 турниров |
Это статистика конкретных ответов от 21 августа 2026 года, а не постоянный состав API.
Полные ответы без сокращений:
Файлы содержат только тело ответа API. API-ключ в них не сохраняется.
Частота обновления
Рекомендуется запрашивать tournaments:
- Live — не чаще одного раза в 60 секунд;
- Prematch (
line) — не чаще одного раза в 120 секунд.
Подробнее: «Рекомендации по обновлению данных».
Ошибки ключа, тарифа и параметров описаны в документе «Обработка ошибок».