Возвращает JSON-массив текущих коэффициентов на баскетбольные матчи Лиги ВТБ. Данные предварительно кешируются на сервере и обновляются автоматически.
| Параметр | Тип | Описание |
|---|---|---|
| lang | string | Необязательный. Значения: ru или en. Если указан, все локализованные поля (homeTeamName, awayTeamName, displayHomeLabel, displayAwayLabel, totalHomeLabel, totalAwayLabel) возвращаются как строки вместо объектов. Без параметра — полный объект с ключами ru и en. |
Content-Type: application/json
Возвращает массив объектов матчей. Если матчей нет, возвращается пустой массив [].
| Поле | Тип | Описание |
|---|---|---|
| betId | number | Идентификатор ставки Winline для данного матча |
| matchId | number | Идентификатор матча Лиги ВТБ |
| matchStatus | string | "scheduled" или "in_progress" |
| league | string | Идентификатор лиги: "wbc" (WINLINE Basket Cup) или "vtb" (Единая лига ВТБ) |
| homeTeamId | number | ID команды ВТБ для хозяев |
| homeTeamName | object | Локализованное название команды хозяев с ключами ru и en |
| homeTeamLogo | string | URL логотипа команды хозяев |
| awayTeamId | number | ID команды ВТБ для гостей |
| awayTeamName | object | Локализованное название команды гостей с ключами ru и en |
| awayTeamLogo | string | URL логотипа команды гостей |
| homeWin | number | null | Коэффициент на победу хозяев |
| awayWin | number | null | Коэффициент на победу гостей |
| spreadHomeValue | number | null | Значение форы для хозяев (напр. -3.5) |
| spreadHomeOdds | number | null | Коэффициент на фору хозяев |
| spreadAwayValue | number | null | Значение форы для гостей (напр. +3.5) |
| spreadAwayOdds | number | null | Коэффициент на фору гостей |
| totalOverValue | number | null | Значение линии тотала (напр. 165.5) |
| totalOverOdds | number | null | Коэффициент на тотал больше |
| totalUnderValue | number | null | Значение линии тотала (то же, что и больше) |
| totalUnderOdds | number | null | Коэффициент на тотал меньше |
| displayHome | number | null | Основной отображаемый коэффициент для хозяев (каскадный) |
| displayHomeLabel | object | Локализованная метка с ключами ru и en |
| displayAway | number | null | Основной отображаемый коэффициент для гостей (каскадный) |
| displayAwayLabel | object | Локализованная метка с ключами ru и en |
| totalHome | number | null | Дополнительный: коэффициент тотала больше |
| totalHomeLabel | object | Локализованная метка для тотала больше |
| totalAway | number | null | Дополнительный: коэффициент тотала меньше |
| totalAwayLabel | object | Локализованная метка для тотала меньше |
| url | string | null | Ссылка на страницу матча на Winline (null, если недоступна) |
Поля displayHome/displayAway показывают наиболее релевантную пару коэффициентов, выбранную по приоритету:
[
{
"betId": 1234567,
"matchId": 98765,
"matchStatus": "scheduled",
"league": "vtb",
"homeTeamId": 101,
"homeTeamName": { "ru": "ЦСКА", "en": "CSKA" },
"homeTeamLogo": "https://vtb-league.com/media/logos/cska.png",
"awayTeamId": 202,
"awayTeamName": { "ru": "Зенит", "en": "Zenit" },
"awayTeamLogo": "https://vtb-league.com/media/logos/zenit.png",
"homeWin": 1.45,
"awayWin": 2.80,
"spreadHomeValue": -5.5,
"spreadHomeOdds": 1.90,
"spreadAwayValue": 5.5,
"spreadAwayOdds": 1.90,
"totalOverValue": 165.5,
"totalOverOdds": 1.85,
"totalUnderValue": 165.5,
"totalUnderOdds": 1.95,
"displayHome": 1.45,
"displayHomeLabel": { "ru": "П1", "en": "1" },
"displayAway": 2.80,
"displayAwayLabel": { "ru": "П2", "en": "2" },
"totalHome": 1.85,
"totalHomeLabel": { "ru": "ТБ(165.5)", "en": "TO(165.5)" },
"totalAway": 1.95,
"totalAwayLabel": { "ru": "ТМ(165.5)", "en": "TU(165.5)" },
"url": "https://winline.ru/match/1234567"
}
]
Возвращает один JSON-объект с коэффициентами для конкретного матча. Если матч не найден, возвращает HTTP 404.
| Параметр | Тип | Описание |
|---|---|---|
| matchId | number | Обязательный. Идентификатор матча Лиги ВТБ (поле matchId из ответа /v1/odds). |
| Параметр | Тип | Описание |
|---|---|---|
| lang | string | Необязательный. Значения: ru или en. Работает так же, как в /v1/odds. |
Content-Type: application/json
Возвращает один объект матча (не массив). Поля ответа идентичны элементу массива из /v1/odds.
GET /v1/odds/games/98765?lang=ru
{
"betId": 1234567,
"matchId": 98765,
"matchStatus": "scheduled",
"league": "vtb",
"homeTeamName": "ЦСКА",
"awayTeamName": "Зенит",
"homeWin": 1.45,
"awayWin": 2.80,
"displayHome": 1.45,
"displayHomeLabel": "П1",
"displayAway": 2.80,
"displayAwayLabel": "П2",
...
}
{
"error": "Match not found"
}
Возвращает статус работоспособности сервиса. Полезно для мониторинга и проверки деплоя.
{
"status": "ok"
}
| Сценарий | Поведение |
|---|---|
| API ВТБ недоступен | Предыдущий кеш матчей сохраняется. Коэффициенты продолжают отдаваться из последнего успешного запроса. |
| API Winline недоступен | Предыдущий кеш коэффициентов сохраняется. Матчи отдаются с последними известными коэффициентами. |
| Оба API недоступны | Сервис продолжает возвращать закешированные данные, пока кеш не устареет. |
| Матчи не найдены | Возвращается пустой массив [] с HTTP 200. |
| Матч не найден по ID | /v1/odds/games/:matchId возвращает HTTP 404 с { "error": "Match not found" }. |
| Матч без коэффициентов Winline | Матч включается в ответ со всеми полями коэффициентов, установленными в null. |
| Одна из лиг ВТБ не отвечает | Матчи другой лиги по-прежнему возвращаются (мягкая деградация). |
Сервис объединяет данные из трёх независимо опрашиваемых источников:
Когда для матча существуют и прематч, и лайв-коэффициенты, лайв-коэффициенты имеют приоритет. Матчи с лайв-коэффициентами отображаются первыми в массиве ответа.
Все эндпоинты возвращают заголовок Access-Control-Allow-Origin: *, разрешая запросы с любого источника.