Можно использовать параметр parentId из запроса Get Fixtures для группировки связанных событий с “parent” событием.
Некоторые факты, которые могут помочь:
- У нас есть разные события для доигрового и живого времени, которые можно различить по параметру
liveStatus. - В некоторых случаях может быть несколько живых событий для одного фактического события, но мы никогда не предложим один и тот же рынок для обоих событий одновременно.
- Parent events — это те, у которых нет параметра
parentId. - Parent events всегда относятся к доигровым (
liveStatus=0 илиliveStatus=2), за исключением некоторых случаев для лиги MLB и киберспорта, где для живых событий (liveStatus=1) может отсутствовать parentId.
Например:
{
"sportId": 29,
"last": 148671597,
"league": [
{
"id": 2331,
"name": "Norway - 1st Division",
"events": [
{
"id": 837721686,
"starts": "2018-04-10T17:00:00Z",
"home": "Viking Fk",
"away": "Mjondalen",
"rotNum": "6751",
"liveStatus": 1,
"status": "O",
"parlayRestriction": 2,
"parentId": 834342247,
"altTeaser": false
},
{
"id": 834342247,
"starts": "2018-04-10T17:00:00Z",
"home": "Viking Fk",
"away": "Mjondalen",
"rotNum": "6751",
"liveStatus": 2,
"status": "I",
"parlayRestriction": 2,
"altTeaser": false
}
]
},
{
"id": 6816,
"name": "Norway - 1st Division Corners",
"events": [
{
"id": 837721684,
"starts": "2018-04-10T17:00:00Z",
"home": "Viking Fk (Corners)",
"away": "Mjondalen (Corners)",
"rotNum": "6751",
"liveStatus": 1,
"status": "O",
"parlayRestriction": 1,
"parentId": 834342247,
"altTeaser": false
},
{
"id": 837721615,
"starts": "2018-04-10T17:00:00Z",
"home": "Viking Fk (Corners)",
"away": "Mjondalen (Corners)",
"rotNum": "6751",
"liveStatus": 2,
"status": "I",
"parlayRestriction": 1,
"parentId": 834342247,
"altTeaser": false
}
]
}
]
} Есть pre-game parent event с идентификатором 834342247, который связан с живым событием с идентификатором 837721686, но также включает два угловых события в разных лигах — одно из которых является живым событием (837721684), а другое — до игры (837721615).
Введение parent event устраняет необходимость в номерах ротации. Обратите внимание, что в следующей версии /fixtures свойство rotNum будет отменено.
Рынок ( moneyline , spreads, totals, teamtotal ) в периоде открыт для ставок, если в ответе Get Odds выполняются все эти условия:
- Статус периода = 1
- Рынок существует
- Cutoff периода в будущем.
Пример: Когда рынок moneyline не предложен, весь объект будет отсутствовать. То же самое касается других типов рынков.
{
"lineId": 527557614,
"number": 1,
"cutoff": "2018-06-30T21:00:00Z",
"maxSpread": 250,
"maxTotal": 250,
"status": 1,
"spreads": [
{
"hdp": -0.25,
"home": 140,
"away": -172
}
],
"totals": [
{
"points": 0.75,
"over": -128,
"under": 107
}
]
}
Обратите внимание, что для живых событий коэффициенты меняются довольно часто, а также изменяется статус периода.
Из-за этих частых изменений возможно, что вы будете получать статус NOT_EXISTS в ответе Get Line чаще, чем для pre-game событий.
Ставки, сделанные на события с задержкой в реальном времени, обрабатываются иначе, чем другие ставки. Они получают betId только после того, как ставка будет ПРИНЯТА.
Единственный способ узнать статус такой ставки это запросить Get Bets по уникальным RequestIds.
/v1/bets?uniqueRequestIds=86a90ab9-fca1-4703-a11c-ce329a85584e
Пока ставка находится в статусе PENDING_ACCEPTANCE, ответ будет следующим:
{
"straightBets": [
{
"uniqueRequestId": "86a90ab9-fca1-4703-a11c-ce329a85584e",
"betStatus": "PENDING_ACCEPTANCE"
}
]
}
ПРИМЕЧАНИЕ: Статус может измениться с PENDING_ACCEPTANCE на NOT_ACCEPTED или ACCEPTED.
Если ставка была НЕ ПРИНЯТА, ответ будет следующим:
{
"straightBets": [
{
"uniqueRequestId": "86a90ab9-fca1-4703-a11c-ce329a85584e",
"betStatus": "NOT_ACCEPTED"
}
]
}
Если ставка была ПРИНЯТА, ответ будет содержать полные детали ставки:
{
"straightBets": [
{
"betId": 800110193,
"uniqueRequestId": "86a90ab9-fca1-4703-a11c-ce329a85584e",
"wagerNumber": 1,
"placedAt": "2017-12-20T21:57:22Z",
"betStatus": "ACCEPTED",
"betType": "MONEYLINE",
"win": 2519.25,
"risk": 11991.63,
"oddsFormat": "AMERICAN",
"updateSequence": 175277412,
"sportId": 29,
"leagueId": 5595,
"eventId": 799939900,
"price": -476,
"teamName": "Universitario",
"team1": "Universitario",
"team2": "Club Petrolero",
"periodNumber": 0,
"isLive": "TRUE"
}
]
}
Мы применяем задержку в реальном времени около 6 секунд, поэтому первый запрос к Get Bets V2 должен быть выполнен через 6 секунд после размещения ставки.
Через 30 минут после размещения ставки мы прекратим возвращать ответ для указанного uniqueRequestId. Это связано с очисткой кэша для поддержания оптимальной производительности.
Также обратите внимание, что список ставок со статусом RUNNING не возвращает ставки с задержкой в реальном времени, которые находятся в статусе PENDING_ACCEPTANCE или NOT_ACCEPTED.
Пожалуйста, ознакомьтесь с нашей политикой справедливого использования.
Все запросы команд ленты, которые имеют одинаковые параметры (например, одинаковый клиентский ID/API ключ/sport ID), кэшируются на одну минуту.
Запросы Get Odds и Get Fixtures snapshot кэшируются на 60 секунд.
Запросы Get Odds и Get Fixtures delta не кэшируются.
Операции Get Sports и Get Leagues имеют свойство hasOfferings, которое указывает на наличие рынков.
Мы следуем курсам с oanda.com и обновляем наши обменные курсы каждые 24 часа. Обратите внимание, что для валют, отличных от USD, мы округляем их до наибольшего целого числа, которое меньше или равно указанному десятичному числу, полученному в результате конверсии валюты. Например, максимальная сумма ставки в размере £345.23 будет округлена до £345.
Время используется по GMT.
Используйте Get Settled Fixtures, чтобы узнать, был ли период события завершён или событие было удалено.
Для соответствия требованиям безопасности API поддерживает только TLS 1.2 (предпочтительно) и TLS 1.1.
Мы оставляем за собой право ограничивать доступ к любому виду спорта, рынку, событию или типу ставки в API в любое время без предварительного уведомления.
- Сделайте запрос к snapshot/odds (без параметра since) — это вернёт кэшированный odds snapshot.
- Сделайте запрос к delta /odds (с параметром
since, из ответа на snapshot) — чтобы получить все изменения с момента snapshot.
Ответ delta содержит только изменённые периоды с рынками, которые в данный момент предлагаются. Например, если мы предлагаем коэффициенты для периода 0 и периода 1 на событие, и в одном из рынков периода 1 произошли изменения, то запрос delta вернёт только период 1 со всеми рынками, которые мы сейчас предлагаем, а период 0 не будет присутствовать в ответе delta.
Например:
- Запрос snapshot возвращает период номер=1 и период номер=0, и оба имеют коэффициенты для
moneylineиspreads. - Далее запрос Delta возвращает только период 1 с коэффициентами для
moneylineиtotals.
=> Это означает, что период номер=0 не изменился, а в периоде номер=1 коэффициенты для spreads больше не предлагаются, но появились коэффициенты для totals, и цены для moneyline могут быть обновлены.
/odds operation returns max volume limits.
Чтобы вычислить максимальный риск из максимального объёма для цены в формате десятичных коэффициентов, можно использовать эту формулу:
Если цена > 2, то:
maxRisk = maxVolume
, иначе, когда цена < 2:
maxRisk = maxVolume / (цена - 1).
Когда /odds возвращает предложение для moneyline
{
"lineId": 242220498,
"number": 1,
"cutoff": "2019-08-30T21:00:00Z",
"maxMoneyline": 250,
"status": 1,
"moneyline": {
"home": 1.819,
"away": 2.03
}
}
Максимальный объём составляет 250. Максимальный риск для домашней команды — 305. Максимальный риск для выездной команды — 250.
Минимальная сумма ставки за одно пари при использовании нашего API составляет 10USD (или эквивалент в валюте вашего счета). Это требование обеспечивает согласованность и справедливое использование для всей автоматизированной активности по ставкам. Пожалуйста, убедитесь, что ваша интеграция API соответствует такому лимиту, так как ставки ниже минимума могут быть отклонены или не обработаны.