Обновлено: 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 | да | Идентификатор команды. |
from | query | string (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": "Зал ОФП" }
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | array<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_id | string | Идентификатор тренировки. |
marked | integer | Сколько записей посещаемости сохранено. |
Статистика игрока
GET /players/{id}/statsНормативы, посещаемость и матчевая статистика игрока за сезон.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
id | путь | string | да | Идентификатор игрока. |
season | query | string | нет | Сезон в формате 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_rate | number | Доля посещённых тренировок от 0 до 1. |
matches_played | integer | Количество сыгранных матчей за сезон. |
goals | integer | Заброшенные шайбы/голы за сезон. |
Список команд школы
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 }
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | array<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" }
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
players | array<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"
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор созданной тренировки. |
Сводка команды за сезон
GET /teams/{id}/season-summaryАгрегированные показатели команды — средняя посещаемость, количество тренировок и сыгранных матчей за выбранный сезон.
Параметры
| Параметр | Где | Тип | Обязателен | Описание |
|---|---|---|---|---|
id | путь | string | да | Идентификатор команды. |
season | query | string | нет | Сезон в формате 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_held | integer | Количество проведённых тренировок. |
avg_attendance_rate | number | Средняя посещаемость команды, от 0 до 1. |
matches_played | integer | Сыграно матчей за сезон. |
Полезно знать
- Статусы посещаемости — фиксированный набор:
present,absent,sick,excused. Свои статусы добавить нельзя, это единая шкала для отчётов школы. - Нормативы и антропометрия обновляются тренером в интерфейсе —
GET /players/{id}/statsотдаёт агрегаты за сезон, а не сырые протоколы приёма нормативов. - Тренировочные планы и упражнения — только для чтения через API; создание и редактирование сценариев тренировки доступно исключительно в панели тренера.
- Сводка по сезону (
/teams/{id}/season-summary) — агрегат, посчитанный раз в сутки; для точных цифр на текущий момент используйте/trainingsи/players/{id}/statsнапрямую.




