Бюро Цифровых Технологий

База знаний

Документация «Вираж»

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

Обновлено: 12.08.2026

Спортивная школа

Тренировочные планы, посещаемость и статистика игроков для модуля «Вираж СпортШкола». Годовой план и упражнения создаются тренером в админ-панели — API отдаёт факт по занятиям.

Обзор методов

МетодПутьОписание
GET/teams/{team_id}/trainingsРасписание тренировок
POST/trainings/{id}/attendanceОтметить посещаемость
GET/players/{id}/statsСтатистика игрока
GET/teamsСписок команд школы
GET/teams/{id}/playersСостав команды
POST/trainingsЗапланировать тренировку
GET/teams/{id}/season-summaryСводка команды за сезон

Расписание тренировок

Эндпоинт
GET /teams/{team_id}/trainings

Ближайшие и прошедшие тренировки команды с площадкой и типом нагрузки.

Параметры

ПараметрГдеТипОбязателенОписание
team_idпутьstringдаИдентификатор команды.
fromquerystring (ISO 8601)нетПоказывать тренировки начиная с этой даты.
Запрос
curl "https://api.virazh.io/v1/teams/team_2013/trainings?from=2026-08-25" \
  -H "Authorization: Bearer sk_test_51H..."
Ответ
{
  "data": [
    { "id": "tr_9911", "starts_at": "2026-08-26T16:00:00Z", "type": "ice", "venue": "Лёд №1" },
    { "id": "tr_9912", "starts_at": "2026-08-27T17:00:00Z", "type": "ofp", "venue": "Зал ОФП" }
  ]
}

Поля ответа

ПолеТипОписание
dataarray<Training>Тренировки с полями id, starts_at, type, venue.

Отметить посещаемость

Эндпоинт
POST /trainings/{id}/attendance

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

Параметры

ПараметрГдеТипОбязателенОписание
idпутьstringдаИдентификатор тренировки.
recordsтелоarray<AttendanceRecord>даСписок { player_id, status }, status — одно из present, absent, sick, excused.
Запрос
curl https://api.virazh.io/v1/trainings/tr_9911/attendance \
  -X POST \
  -H "Authorization: Bearer sk_test_51H..." \
  -H "Content-Type: application/json" \
  -d '{
    "records": [
      { "player_id": "plr_412", "status": "present" },
      { "player_id": "plr_413", "status": "sick" }
    ]
  }'
Ответ
{
  "training_id": "tr_9911",
  "marked": 2
}

Поля ответа

ПолеТипОписание
training_idstringИдентификатор тренировки.
markedintegerСколько записей посещаемости сохранено.

Статистика игрока

Эндпоинт
GET /players/{id}/stats

Нормативы, посещаемость и матчевая статистика игрока за сезон.

Параметры

ПараметрГдеТипОбязателенОписание
idпутьstringдаИдентификатор игрока.
seasonquerystringнетСезон в формате 2026-2027. По умолчанию — текущий.
Запрос
curl https://api.virazh.io/v1/players/plr_412/stats?season=2026-2027 \
  -H "Authorization: Bearer sk_test_51H..."
Ответ
{
  "player_id": "plr_412",
  "season": "2026-2027",
  "attendance_rate": 0.91,
  "matches_played": 14,
  "goals": 6
}

Поля ответа

ПолеТипОписание
attendance_ratenumberДоля посещённых тренировок от 0 до 1.
matches_playedintegerКоличество сыгранных матчей за сезон.
goalsintegerЗаброшенные шайбы/голы за сезон.

Список команд школы

Эндпоинт
GET /teams

Все возрастные группы ДЮСШ клуба с тренером и количеством игроков в составе.

Запрос
curl https://api.virazh.io/v1/teams \
  -H "Authorization: Bearer sk_test_51H..."
Ответ
{
  "data": [
    { "id": "team_2013", "name": "2013 г.р.", "coach": "Сергей Волков", "players": 22 },
    { "id": "team_2015", "name": "2015 г.р.", "coach": "Дмитрий Реутов", "players": 19 }
  ]
}

Поля ответа

ПолеТипОписание
dataarray<Team>Команды с полями id, name, coach, players.

Состав команды

Эндпоинт
GET /teams/{id}/players

Список игроков команды с амплуа и датой зачисления в школу.

Параметры

ПараметрГдеТипОбязателенОписание
idпутьstringдаИдентификатор команды.
Запрос
curl https://api.virazh.io/v1/teams/team_2013/players \
  -H "Authorization: Bearer sk_test_51H..."
Ответ
{
  "team_id": "team_2013",
  "players": [
    { "id": "plr_412", "name": "Артём Ким", "position": "forward", "joined_at": "2023-09-01" },
    { "id": "plr_413", "name": "Олег Титов", "position": "defense", "joined_at": "2022-09-01" }
  ]
}

Поля ответа

ПолеТипОписание
playersarray<Player>Игроки с полями id, name, position, joined_at.

Запланировать тренировку

Эндпоинт
POST /trainings

Создаёт тренировку в расписании команды с типом нагрузки и площадкой.

Параметры

ПараметрГдеТипОбязателенОписание
team_idтелоstringдаИдентификатор команды.
starts_atтелоstring (ISO 8601)даДата и время начала тренировки.
typeтелоstringдаТип нагрузки: ice, ofp, gym и т.д.
venueтелоstringдаПлощадка проведения.
Запрос
curl https://api.virazh.io/v1/trainings \
  -X POST \
  -H "Authorization: Bearer sk_test_51H..." \
  -H "Content-Type: application/json" \
  -d '{
    "team_id": "team_2013",
    "starts_at": "2026-08-28T16:00:00Z",
    "type": "ice",
    "venue": "Лёд №1"
  }'
Ответ
{
  "id": "tr_9915",
  "team_id": "team_2013",
  "starts_at": "2026-08-28T16:00:00Z"
}

Поля ответа

ПолеТипОписание
idstringИдентификатор созданной тренировки.

Сводка команды за сезон

Эндпоинт
GET /teams/{id}/season-summary

Агрегированные показатели команды — средняя посещаемость, количество тренировок и сыгранных матчей за выбранный сезон.

Параметры

ПараметрГдеТипОбязателенОписание
idпутьstringдаИдентификатор команды.
seasonquerystringнетСезон в формате 2026-2027.
Запрос
curl https://api.virazh.io/v1/teams/team_2013/season-summary?season=2026-2027 \
  -H "Authorization: Bearer sk_test_51H..."
Ответ
{
  "team_id": "team_2013",
  "season": "2026-2027",
  "trainings_held": 64,
  "avg_attendance_rate": 0.88,
  "matches_played": 12
}

Поля ответа

ПолеТипОписание
trainings_heldintegerКоличество проведённых тренировок.
avg_attendance_ratenumberСредняя посещаемость команды, от 0 до 1.
matches_playedintegerСыграно матчей за сезон.

Полезно знать

  • Статусы посещаемости — фиксированный набор: present, absent, sick, excused. Свои статусы добавить нельзя, это единая шкала для отчётов школы.
  • Нормативы и антропометрия обновляются тренером в интерфейсе — GET /players/{id}/stats отдаёт агрегаты за сезон, а не сырые протоколы приёма нормативов.
  • Тренировочные планы и упражнения — только для чтения через API; создание и редактирование сценариев тренировки доступно исключительно в панели тренера.
  • Сводка по сезону (/teams/{id}/season-summary) — агрегат, посчитанный раз в сутки; для точных цифр на текущий момент используйте /trainings и /players/{id}/stats напрямую.