Данные для ТВ-трансляции
Публичные 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.