Данные для ТВ-трансляции

Публичные JSON-файлы содержат последние события старта выступления и публикации итоговой оценки.

Пути к файлам

{competitionId} — ID соревнования.

https://compit.tech/storage/competitions/{competitionId}/realtime/PerformanceStartedEvent.json
https://compit.tech/storage/competitions/{competitionId}/realtime/PerformanceFinalizedEvent.json

Авторизация не требуется. Каждый файл хранит последний снимок своего типа события, без истории. Старт не удаляет файл предыдущей итоговой оценки. До первой успешной записи файл может отсутствовать. Тестовые события записываются по тем же путям.

Структура события старта

PerformanceStartedEvent: data.state — PARTICIPANT_INTRO, data.result — null.

Все данные в примерах вымышлены. Для примеров используется соревнование с ID 9001.

{
  "event": "PerformanceStartedEvent",
  "competition_id": 9001,
  "routine_id": 12001,
  "participant_id": 23001,
  "data": {
    "state": "PARTICIPANT_INTRO",
    "data_mode": "live",
    "screen": "tv",
    "mode": "full",
    "competition": {
      "id": 9001,
      "name": "Учебный турнир «Пример»",
      "short_name": "Учебный турнир"
    },
    "channel": "public:competition.9001",
    "active": {
      "id": 23001,
      "label": "Примеров / Образцов",
      "photo_url": null,
      "geo": {
        "region": "Примерная область",
        "city": "Примерск",
        "label": "Примерная область, Примерск",
        "flag_url": null
      },
      "sportsmens": [
        {
          "id": 31001,
          "role": "top",
          "last_name": "Примеров",
          "first_name": "Иван",
          "middle_name": "Алексеевич"
        },
        {
          "id": 31002,
          "role": "base",
          "last_name": "Образцов",
          "first_name": "Павел",
          "middle_name": "Сергеевич"
        }
      ]
    },
    "participant": {
      "id": 23001,
      "label": "Примеров / Образцов",
      "photo_url": null,
      "geo": {
        "region": "Примерная область",
        "city": "Примерск",
        "label": "Примерная область, Примерск",
        "flag_url": null
      },
      "sportsmens": [
        {
          "id": 31001,
          "role": "top",
          "last_name": "Примеров",
          "first_name": "Иван",
          "middle_name": "Алексеевич"
        },
        {
          "id": 31002,
          "role": "base",
          "last_name": "Образцов",
          "first_name": "Павел",
          "middle_name": "Сергеевич"
        }
      ]
    },
    "routine": {
      "id": 12001,
      "label": "Комбинированное - 14 лет и старше - МП - МС",
      "type": "combined",
      "name": "Комбинированное",
      "vid": {
        "id": 2,
        "name": "Мужская пара",
        "abbr": "МП"
      },
      "age": {
        "id": 5,
        "name": "14 лет и старше"
      },
      "rank": {
        "id": 1,
        "name": "МС"
      },
      "gender": "male",
      "years": [
        2006
      ],
      "is_final": false,
      "date": "2026-10-21"
    },
    "result": null,
    "rating": null,
    "next": [],
    "start_id": "8f253308-20d8-4ee8-a32c-a105a4c628be"
  }
}

Структура события итоговой оценки

PerformanceFinalizedEvent: data.state — SCORE_SHOW, data.result содержит опубликованный результат.

{
  "event": "PerformanceFinalizedEvent",
  "competition_id": 9001,
  "routine_id": 12001,
  "participant_id": 23001,
  "data": {
    "state": "SCORE_SHOW",
    "data_mode": "live",
    "screen": "tv",
    "mode": "full",
    "competition": {
      "id": 9001,
      "name": "Учебный турнир «Пример»",
      "short_name": "Учебный турнир"
    },
    "channel": "public:competition.9001",
    "active": {
      "id": 23001,
      "label": "Примеров / Образцов",
      "photo_url": null,
      "geo": {
        "region": "Примерная область",
        "city": "Примерск",
        "label": "Примерная область, Примерск",
        "flag_url": null
      },
      "sportsmens": [
        {
          "id": 31001,
          "role": "top",
          "last_name": "Примеров",
          "first_name": "Иван",
          "middle_name": "Алексеевич"
        },
        {
          "id": 31002,
          "role": "base",
          "last_name": "Образцов",
          "first_name": "Павел",
          "middle_name": "Сергеевич"
        }
      ]
    },
    "participant": {
      "id": 23001,
      "label": "Примеров / Образцов",
      "photo_url": null,
      "geo": {
        "region": "Примерная область",
        "city": "Примерск",
        "label": "Примерная область, Примерск",
        "flag_url": null
      },
      "sportsmens": [
        {
          "id": 31001,
          "role": "top",
          "last_name": "Примеров",
          "first_name": "Иван",
          "middle_name": "Алексеевич"
        },
        {
          "id": 31002,
          "role": "base",
          "last_name": "Образцов",
          "first_name": "Павел",
          "middle_name": "Сергеевич"
        }
      ]
    },
    "routine": {
      "id": 12001,
      "label": "Комбинированное - 14 лет и старше - МП - МС",
      "type": "combined",
      "name": "Комбинированное",
      "vid": {
        "id": 2,
        "name": "Мужская пара",
        "abbr": "МП"
      },
      "age": {
        "id": 5,
        "name": "14 лет и старше"
      },
      "rank": {
        "id": 1,
        "name": "МС"
      },
      "gender": "male",
      "years": [
        2006
      ],
      "is_final": false,
      "date": "2026-10-21"
    },
    "result": {
      "place": null,
      "total": "20.85",
      "total_sum": "20.85",
      "execution": "9.15",
      "artistry": "9.2",
      "difficulty": "2.5",
      "faults": null,
      "rating_type": {
        "key": "allaround",
        "label": "Многоборье"
      }
    },
    "rating": null,
    "next": [],
    "start_id": "8f253308-20d8-4ee8-a32c-a105a4c628be",
    "video": {
      "available": false,
      "playback_url": null
    }
  },
  "performance_id": "compit:9001:12001:23001"
}

Особенности полей

  • competition_id, routine_id, participant_id — ID соревнования, упражнения и участника.
  • data.active и data.participant содержат один и тот же объект участника; sportsmens — список спортсменов состава.
  • data.start_id — идентификатор конкретного старта; у обычного старта и соответствующего итога он совпадает. У тестового старта поле может отсутствовать, у тестового итога — быть null. data.data_mode при тестовых событиях может оставаться live.
  • Оценки в data.result передаются строками с десятичной точкой. total — оценка за упражнение, total_sum — сумма в соответствующем зачёте; значения могут отличаться. Отсутствующие оценки, место и сбавки могут быть null.
  • data.rating может быть null, data.next — пустым списком. data.video в событии итога содержит доступность видео и ссылку playback_url, которая может быть null.

Связанные страницы