Войти

Букмекеру и affiliate:
всё вокруг матча в одном ответе

Живой счёт и события, роспись по матчу с открывающим и текущим значением, тренды лиги и модельные оценки. Забирать можно опросом, вебхуками или потоком — с повтором пропущенного.

Получить ключ Документация
190 204
матчей с коэффициентами
856 357
записей рынков
19 с
медианная свежесть идущего матча
9 352 486
матчей в базе

Что закрываем

Конкретные эндпоинты и объёмы. Числа — из базы на 4 августа 2026, ширина росписи — на 5 августа 2026.

Живой матч

  • Идущие матчи списком — /v1/events/live
  • Карточка матча целиком — /v1/event/{id}, 51 поле верхнего уровня
  • События с минутой, игроком и счётом после гола — 105 372 814 записи
  • Живая минута, счёт по периодам, статистика — 124 886 142 строки

Снимок на 4 августа 2026: одновременно шло 320 матчей.

Роспись по матчу

  • Коэффициенты по 190 204 матчам — 856 357 записей рынков
  • 42 группы рынков и 572 названия: исход, двойной шанс, фора, тотал, обе забьют, угловые, первый гол, точный счёт
  • Открывающее и текущее значение рядом в одной строке — движение линии видно без своей истории
  • Результат рынка после матча — поле winning

Приходит в карточке матча полями odds[] и odds_best[] — отдельного запроса не нужно.

Оценки и тренды

  • Вероятности и «справедливые» коэффициенты — /v1/event/{id}/prediction
  • Форма команд и очные встречи — /v1/event/{id}/insights
  • Тренды лиги и команды — /v1/tournament/{id}/trends, /v1/team/{id}/trends
  • Живые тренды идущего матча — /v1/event/{id}/live-trends

Выход модели считается в момент запроса и в базе не лежит, поэтому ниже показана схема полей ответа, а не «красивые» числа.

Доставка без опроса

  • Вебхуки с подписью и повторной доставкой — гол, красная, финал приходят сами
  • Поток событий — /v1/stream
  • Повтор пропущенного после обрыва — /v1/stream/replay
  • Инкрементальная выгрузка изменений — /v1/sync

Ограничение только по частоте: 5, 20 или 100 запросов в секунду по тарифу. Суточных квот нет.

Три вопроса, которые задают первыми

Покрытие линии, задержка живого матча и что происходит, когда источник замолчал. На каждый — число с датой и способом замера.

Покрытие линии

Коэффициенты есть у 190 204 матчей из 9 352 486 — это конкретные виды и лиги, а не «весь спорт целиком». У матча без росписи придёт odds: [], а не ошибка.

Ширина: 42 группы рынков, 572 названия. Проверять покрытие своих лиг нужно на тестовом ключе до договора — 500 запросов в месяц бесплатно.

Задержка живого матча

Замер 4 августа 2026 по 320 идущим матчам: половина обновлена не позже 19 секунд назад, девять из десяти — не позже 42 секунд.

Меряем по времени последнего успешного обновления матча, а не по расписанию опросов — иначе метрика показывала бы бодрость планировщика, а не свежесть данных.

Если источник замолчал

Живые данные идут по двум независимым каналам. У 592 085 матчей есть привязка к обоим — там счёт сверяется между ними; основной канал закрывает 9 027 536 матчей.

Отказ одного канала не обнуляет уже известный счёт: затирание счёта нулём закрыто отдельной проверкой. Пропущенное за время обрыва добирается через /v1/stream/replay. Состояние сервиса — на странице статуса.

Настоящий ответ по настоящему матчу

Ниже — не макет: это ответ по матчу «Ванкувер Уайткэпс» — «Атланте» (Кубок лиг, 5 августа 2026, матч завершён), 22 строки росписи. Показаны семь из них, дословно.

GET /v1/event/12088981
{
  "id": 12088981, "status": "finished",
  "participants": [
    { "side": "home", "name_ru": "Ванкувер Уайткэпс", "score": 0 },
    { "side": "away", "name_ru": "Атланте", "score": 1 }
  ],
  "odds": [
    { "market_name": "Full time", "market_group": "1X2",
      "choice_name": "1", "fractional_value": "33/100",
      "opening_value": "11/25", "winning": false },
    { "market_name": "Full time", "market_group": "1X2",
      "choice_name": "X", "fractional_value": "17/4",
      "opening_value": "31/10", "winning": false },
    { "market_name": "Full time", "market_group": "1X2",
      "choice_name": "2", "fractional_value": "13/2",
      "opening_value": "11/2", "winning": true },
    { "market_name": "Match goals", "market_group": "Match goals",
      "choice_name": "Over", "fractional_value": "1/66",
      "opening_value": "1/40", "winning": true },
    { "market_name": "Both teams to score", "market_group": "Both teams to score",
      "choice_name": "No", "fractional_value": "11/10",
      "opening_value": "6/5", "winning": true },
    { "market_name": "Asian handicap", "market_group": "Asian Handicap",
      "choice_name": "(-1.5) Vancouver Whitecaps", "fractional_value": "9/10",
      "opening_value": "19/20", "winning": null },
    { "market_name": "Corners 2-Way", "market_group": "Corners 2-Way",
      "choice_name": "Over", "fractional_value": "10/11",
      "opening_value": "11/10", "winning": true }  ],
  // ещё 15 строк росписи, а также incidents[], statistics[],
  // lineups[], odds_best[] — всего 51 поле верхнего уровня
}
Движение линии
В одной строке приходят и текущее значение (fractional_value), и открывающее (opening_value). Разницу видно сразу — свою историю котировок вести не нужно. Значение дробное: 33/100 — это 1,33 в десятичном виде, 13/2 — 7,50.
Расчёт рынка
После матча у строки появляется winning. null — рынок остался без расчёта; в примере так помечена азиатская фора.
Модельные оценки
Отдельным запросом /v1/event/{id}/prediction: markets.match_result.prob_home / prob_draw / prob_away, fair_odds, over_under_2_5, btts. Значения здесь не печатаем: они считаются в момент запроса и в базе не хранятся — показывать вчерашние было бы обманом.
Время ответа
Замер 4 августа 2026 без кэша: медиана 79 мс на выборку из 20 матчей, 169 мс на полную карточку; повторный запрос — 22 мс.

Чего мы для этого не делаем

Дешевле прочитать сейчас, чем узнать на третьей неделе интеграции.

Проверьте свои лиги до договора

Тестовый ключ выдаём в тот же день: 500 запросов в месяц, без карты и без обязательств. На нём видно и форму ответа, и наличие ваших лиг, и покрытие росписи.