Букмекерские коэффициенты
API возвращает коэффициенты двух уровней:
oddsBase— базовые рынки (1×2, Over/Under, Handicap). Бесплатно для всех тарифов.oddsBk— расширенные рынки от конкретных букмекеров. На v2.0.8 поддерживается единственный букмекер: Melbet (slugmelbet). Список slug'ов из текущей версии API:bookmaker_idsпринимаетmelbet. Дополнительные букмекеры будут добавлены в следующих версиях — следите за Changelog.
Фильтрация матчей с коэффициентами
# Только матчи с букмекерскими коэффициентами
curl -H "Authorization: YOUR_KEY" \
"https://api.api-sport.ru/v2/football/matches?has_bk_odds=true"
# Включить рынки Melbet в payload
curl -H "Authorization: YOUR_KEY" \
"https://api.api-sport.ru/v2/football/matches/12345678?with_bk_odds=true&bookmaker_ids=melbet"
Структура oddsBk
oddsBk — объект, где ключи — слаги букмекеров (сейчас единственный — melbet). Значение —
данные букмекера (BookmakerOddsData):
{
"oddsBk": {
"melbet": {
"slug": "melbet",
"name": { "en": "Melbet", "ru": "Мелбет" },
"updatedAt": 1717000000000,
"isBettingActive": true,
"markets": {
"match_result": {
"name": { "en": "Match Result", "ru": "Исход матча" },
"hasArgument": false,
"stakeKeys": ["home_win", "draw", "away_win"],
"stakes": {
"home_win": { "name": { "en": "Home Win", "ru": "Победа хозяев" }, "factor": 1.85 },
"draw": { "name": { "en": "Draw", "ru": "Ничья" }, "factor": 3.40 },
"away_win": { "name": { "en": "Away Win", "ru": "Победа гостей" }, "factor": 4.20 }
}
},
"total_goals": {
"name": { "en": "Total Goals", "ru": "Тотал голов" },
"hasArgument": true,
"stakeKeys": ["over", "under"],
"stakes": {
"over": { "name": { "en": "Over", "ru": "Больше" }, "lines": [ { "argument": 2.5, "factor": 1.95, "dateUpdateMs": 1717000000000 } ] },
"under": { "name": { "en": "Under", "ru": "Меньше" }, "lines": [ { "argument": 2.5, "factor": 1.88, "dateUpdateMs": 1717000000000 } ] }
}
}
}
}
}
}
Ключевые моменты (схемы BookmakerOdds / BookmakerOddsData / BkOddsMarket / BkOddsStake / BkOddsLine):
markets— это объект, ключи которого — слаги рынков (match_result,total_goals,handicap, …), а не массив. Порядок исходов — вstakeKeys.stakes— тоже объект, ключи — слаги исходов (home_win,over, …).hasArgument: false→ у исхода полеfactor(коэффициент).hasArgument: true→ вместоfactorу исхода массивlines[]: каждый элемент имеетargument(значение тотала/гандикапа),factor(коэффициент) иdateUpdateMs.linesотсортирован поargument.nameвезде — мультиязычный объект{ en, ru }.updatedAt— время обновления коэффициентов (timestamp в мс);isBettingActive— активны ли ставки сейчас.
⚠️ Не путайте с
oddsBase: там другой формат — массивOddsMarket[]сchoices[].decimal. УoddsBkкоэффициенты лежат вmarkets→stakes→factor/lines[].factor, как показано выше.
Поле hasBkOdds
Всегда присутствует в Match:
{ "hasBkOdds": { "melbet": true } }
Это позволяет быстро отфильтровать матчи без загрузки полных коэффициентов.
Словарь рынков
Полное описание market'ов (английские названия, ID, переводы) — /v2/BkOddsDict.json:
curl https://api.api-sport.ru/v2/BkOddsDict.json
Это статический файл (~МБ), кэшируйте на 24 часа.
Изменение коэффициентов в реальном времени
Коэффициенты приходят в match_snapshot и match_delta через WebSocket. См. WebSocket → snapshot vs delta.