Войти

Биатлон в API

116 гонок с 2017 года: чемпионаты мира и Олимпийские игры, 12 типов гонки — от спринта до эстафеты. Зимние виды у нас пока исчерпываются биатлоном, и страница про это говорит прямо. Главное здесь не объём, а форма ответа: у гонки нет двух сторон и счёта — есть 6 527 строк «участник в гонке» с местами.

Сколько биатлона в базе

Числа на 5 августа 2026. Не округлены вверх.

116гонок
23турниров: 12 на чемпионатах мира и 11 на Олимпиадах
723спортсменов
2017год самой ранней гонки

Турнир здесь — это не сезон, а тип гонки в рамках старта: «чемпионат мира, спринт (мужчины)» и «Олимпийские игры, масс-старт (мужчины)» — две разные карточки со своим календарём. Отсюда 23 турниров при 116 гонках.

Гонка — не матч двух сторон

Единственное место в API, где разбор ответа отличается принципиально. Проверьте это до интеграции, а не после.

participants[].side
null у всех участников: «хозяев» и «гостей» в гонке нет. Код, который ищет side == "home", здесь не найдёт ничего.
participants[].position
Место в протоколе — 1, 2, 3 … 30. Именно оно, а не score, отвечает на вопрос «кто выиграл».
participants[].score
null: счёта у гонки не бывает. Поле остаётся в ответе, чтобы форма карточки не менялась от вида к виду.
winner_participant_id
Победитель — тот же участник, у которого position: 1. Одно поле для всех видов сразу.
race.classification[]
Протокол гонки целиком: место, имя, страна, время, отставание, промахи на стрельбе.
race.series / distance
Тип гонки («Mass Start - Men») и дистанция («15 km») — рядом с протоколом, а не в названии турнира.

Так же устроен ответ по автоспорту — Формула-1 и другие серии: те же position и race.classification, только вместо промахов на стрельбе там круги и пит-стопы.

Глубина по модулям

Считаются гонки, у которых модуль есть. Прочерк значит ровно ноль.

МодульГонокС какого годаЧто внутри
Календарь гонок и результат 116 2017 чемпионаты мира и Олимпийские игры
Протокол гонки 116 2017 место, время, отставание, страна, промахи на стрельбе
Коэффициенты по биатлону не собираются
Статистика по кругам раскладки по кругам и рубежам нет

Протокол есть у всех 116 гонок без исключения: гонка без протокола в базу не попадает.

Настоящая гонка целиком

Один запрос к нашему API и то, что он вернул. Ни одно значение не переписано.

Олимпийские игры: масс-старт (мужчины) 20 февраля 2026 · 15 km · участников 30
МестоСпортсменСтрана ВремяОтставаниеПромахи
1 Dale J. Norway 39:17.1 0.0 0
2 Laegreid S. H. Norway 39:27.6 10.5 1
3 Fillon Maillet Q. France 39:42.7 25.6 4
4 Horn P. Germany 39:52.6 35.5 1
5 Christiansen V. S. Norway 41:05.2 1:48.1 3
6 Krcmar M. Czech Republic 41:20.7 2:03.6 5
7 Nawrath P. Germany 41:22.4 2:05.3 5
8 Botn J. Norway 41:24.5 2:07.4 5

Первые восемь строк из 30. Имя и страна показаны ровно так, как приходят в ответе, — латиницей: русских написаний у биатлонистов в базе нет, и подставлять свой перевод вместо пустого поля мы не станем.

GET /v1/event/12137842 — фрагмент ответа
{
  "id": 12137842,
  "sport": "biathlon",
  "status": "finished",
  "tournament": "Olympic Games: Mass Start - Men",
  "tournament_ru": "Олимпийские игры: масс-старт (мужчины)",
  "scheduled_start": "2026-02-20T13:15:00Z",
  "winner_participant_id": 1912161,
  "participants": [ /* 30 участников */
    { "participant_id": 1912161, "type": "player",
      "name": "Dale J.", "name_ru": null,
      "side": null, "score": null, "position": 1 } ],
  "race": {
    "series": "Mass Start - Men", "session": null, "distance": "15 km",
    "classification": [
      { "position": 1, "name": "Dale J.", "country": "Norway",
        "time": "39:17.1", "gap": "0.0", "shooting_misses": 0,
        "grid": null, "laps": null, "pit_stops": null, "team": null },
      { "position": 2, "name": "Laegreid S. H.", "country": "Norway",
        "time": "39:27.6", "gap": "10.5", "shooting_misses": 1 } ] },
  "incidents": [], "statistics": [], "lineups": [], "odds": []
}

Пустые incidents, statistics и lineups — не сбой: у гонки их не бывает, всё содержательное лежит в race. Поля grid, laps и pit_stops приходят пустыми — они для автоспорта, а протокол у обоих видов один и тот же.

Как забрать биатлон

Адреса общие для всех видов, вид задаётся параметром.

Гонки за дату

GET /v1/events?sport=biathlon&date=… — стартовый день целиком.

Одна гонка с протоколом

GET /v1/event/{id} — участники с местами и блок race с полной классификацией.

Один тип гонки за все годы

GET /v1/tournament/{id}/events — например, все олимпийские масс-старты подряд.

Карьера спортсмена

GET /v1/participant/{id}/events — все гонки одного биатлониста.

Чего по зимним видам нет

Список короткий, потому что и вид один. Всё, чего нет, названо прямо.

  • Остальных зимних видов. Лыжных гонок, конькобежного спорта, прыжков с трамплина, горных лыж, шорт-трека, бобслея и хоккея с мячом в базе нет вовсе. Зимние виды — это сейчас только биатлон.
  • Кубка мира. Есть чемпионаты мира и Олимпийские игры. Этапов Кубка мира — основной части сезона — в базе нет, и 116 гонок за 9 лет это ровно они.
  • Истории до 2017 года. Более ранних гонок нет. «Архивом биатлона» это называть нельзя.
  • Раскладки по кругам и рубежам. Промахи приходят одним числом за гонку. Времени каждого круга, скорости на трассе и результата каждого рубежа отдельно в ответе нет.
  • Русских имён спортсменов. name_ru у биатлонистов пустой — имена приходят латиницей. Русские названия есть у турниров, но не у участников этих гонок.
  • Коэффициентов и модельного прогноза. По биатлону не собираются ни линии книг, ни прогноз — ни в карточке гонки, ни отдельным адресом.

Все числа на странице — на 5 августа 2026, посчитаны по нашей базе.

Покрытие по другим видам

У каждого вида своя глубина и свой разбор — общими словами про «все виды спорта» на эти вопросы не ответить.

Заберите протоколы гонок

Гонка 2017 года и олимпийский масс-старт запрашиваются одинаково.

Документация
Оплата в рублях Договор с ИП / ООО Пробный доступ бесплатно