Матчи
Матчи игрока, карточка матча с хайлайтами, ручной ввод и исправление счёта, отметка розыгрыша. Доступ — токен игрока.
Базовый адрес: https://адрес-вашего-сервера/api · Руководство по разделу: Трансляции и повторы
Содержание · 7 методов
Мои матчи #
GET /v1/matches/my
Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.
Последние 50 матчей игрока в формате карточки, без сеток движения. Счёт всегда «мой : соперников».
Заголовки Имя Тип Обязательно Описание Authorizationстрока да Bearer <токен игрока>
Пример запроса Копировать curl -X GET "https://адрес-вашего-сервера/api/v1/matches/my" \
-H "Authorization: Bearer <токен игрока>"
Ответы Код detail Значение 200 — Успешный ответ; пример ниже 401 no_tokenНет токена в заголовке Authorization 401 invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh
Пример ответа Копировать {
"items": [
{
"id": "8c0f4a52-2d1e-4b7a-9f63-1a5e7d9b3c20",
"clubId": "c1",
"club": "Флэйм Падел",
"date": "Чт 02.10",
"time": "18:00",
"teammates": "Вы + Олег",
"opponents": "Анна + Мария",
"upcoming": false,
"sets": [{"a": 6, "b": 4}, {"a": 3, "b": 6}, {"a": 7, "b": 5}],
"won": true,
"verified": true,
"ratingDelta": 12,
"voided": false,
"voidReason": "",
"ai": null,
"moments": [],
"verticals": [],
"movement": null
}
]
}
Карточка матча #
GET /v1/matches/{match_id}
Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.
Полная карточка матча: счёт, AI-статистика, хайлайты по моментам с ракурсами и вертикальными копиями, движение. Только для участников матча, остальным — 404. Ссылки на видео подписываются на каждый запрос и живут минуты; пустой url значит, что видео ещё едет в хранилище (ready=false).
Параметры пути Имя Тип Обязательно Описание match_idстрока (uuid) да Идентификатор матча
Заголовки Имя Тип Обязательно Описание Authorizationстрока да Bearer <токен игрока>
Пример запроса Копировать curl -X GET "https://адрес-вашего-сервера/api/v1/matches/8c0f4a52-2d1e-4b7a-9f63-1a5e7d9b3c20" \
-H "Authorization: Bearer <токен игрока>"
Ответы Код detail Значение 200 — Успешный ответ 401 no_tokenНет токена в заголовке Authorization 401 invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh 404 match_not_foundМатч не найден, чужого клуба или вы не участник 422 […] Ошибка проверки параметров или тела: detail — список ошибок
Ручной ввод счёта #
POST /v1/matches/manual
Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.
Игрок вводит счёт матча сам. Автор должен быть участником; нужны игроки обеих команд. Такой матч весит в рейтинге вдвое меньше и не отмечается как подтверждённый камерами.
Заголовки Имя Тип Обязательно Описание Authorizationстрока да Bearer <токен игрока>
Тело запроса application/json Поле Тип Обязательно Описание club_idстрока да Клуб dayстрока да Дата YYYY-MM-DD timeстрока да Время HH:MM setsстрока да Счёт по сетам «команда1:команда2» через запятуюшаблон ^\d+:\d+(,\d+:\d+)*$
playersмассив [объект] да Состав: 2–4 игрока, автор среди нихэлементов от 2; элементов до 4
players[].user_idстрока (uuid) да Игрок players[].teamцелое да Команда: 1 или 2не меньше 1; не больше 2
Пример запроса Копировать curl -X POST "https://адрес-вашего-сервера/api/v1/matches/manual" \
-H "Authorization: Bearer <токен игрока>" \
-H "Content-Type: application/json" \
-d '{
"club_id": "c1",
"day": "2026-10-02",
"time": "18:00",
"sets": "6:4,6:3",
"players": [
{"user_id": "3d6e9a10-5b2c-4f8e-a1d7-6c4b2e0f9a83", "team": 1},
{"user_id": "a52e7c14-90bd-4e3f-8c61-7d2f0b9e4a15", "team": 2}
]
}'
Ответы Код detail Значение 200 — Успешный ответ; пример ниже 401 no_tokenНет токена в заголовке Authorization 401 invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh 404 club_not_foundКлуб не найден 403 author_must_playАвтор должен быть участником матча 400 both_teams_requiredНужны игроки обеих команд 400 bad_day_or_timeНеверная дата или время (YYYY-MM-DD и HH:MM) 400 draw_not_allowedНичья по сетам не допускается 404 player_not_found: …Игрок не найден (в тексте — его идентификатор или телефон) 422 […] Ошибка проверки параметров или тела: detail — список ошибок
Пример ответа Копировать {
"matchId": "8c0f4a52-2d1e-4b7a-9f63-1a5e7d9b3c20",
"winnerTeam": 1,
"ratingDeltas": {
"3d6e9a10-5b2c-4f8e-a1d7-6c4b2e0f9a83": 6,
"a52e7c14-90bd-4e3f-8c61-7d2f0b9e4a15": -6
}
}
Судья исправляет счёт #
POST /v1/matches/{match_id}/score-correction
Доступ: Учётка панели клуба Заголовок Authorization: Bearer <токен> учётки с ролью судьи, администратора или владельца; клуб матча должен совпадать с клубом учётки.
Судья, администратор клуба или владелец сети исправляет счёт: прежние изменения рейтинга откатываются, новые применяются. Клуб матча должен совпадать с клубом учётки (кроме владельца сети).
Параметры пути Имя Тип Обязательно Описание match_idстрока (uuid) да Идентификатор матча
Заголовки Имя Тип Обязательно Описание Authorizationстрока да Bearer <токен учётки персонала>
Тело запроса application/json Поле Тип Обязательно Описание setsстрока да Исправленный счёт по сетамшаблон ^\d+:\d+(,\d+:\d+)*$
Пример запроса Копировать curl -X POST "https://адрес-вашего-сервера/api/v1/matches/8c0f4a52-2d1e-4b7a-9f63-1a5e7d9b3c20/score-correction" \
-H "Authorization: Bearer <токен учётки персонала>" \
-H "Content-Type: application/json" \
-d '{"sets": "4:6,6:3,5:7"}'
Ответы Код detail Значение 200 — Успешный ответ; пример ниже 401 no_tokenНет токена в заголовке Authorization 401 invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh 403 role_required: …Нет нужной роли (в тексте — список ролей) 403 staff_club_not_setУ учётки не задан клуб 403 other_clubМатч другого клуба 404 match_not_foundМатч не найден, чужого клуба или вы не участник 400 draw_not_allowedНичья по сетам не допускается 422 […] Ошибка проверки параметров или тела: detail — список ошибок
Пример ответа Копировать {
"ok": true,
"winnerTeam": 2,
"ratingDeltas": {
"3d6e9a10-5b2c-4f8e-a1d7-6c4b2e0f9a83": -11,
"a52e7c14-90bd-4e3f-8c61-7d2f0b9e4a15": 11
}
}
Отметить розыгрыш для нарезки #
POST /v1/matches/mark
Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.
Игрок отмечает только что сыгранный розыгрыш для нарезки. Корт берётся из идущей брони игрока (±15 минут); без брони нужно указать club_id и court. Отметка уходит на сервер корта в ответе на его отчёт о здоровье.
Заголовки Имя Тип Обязательно Описание Authorizationстрока да Bearer <токен игрока>
Тело запроса application/json Поле Тип Обязательно Описание club_idстрока, или null нет Клуб — если нет идущей брони courtстрока, или null нет Корт — если нет идущей брони
Пример запроса Копировать curl -X POST "https://адрес-вашего-сервера/api/v1/matches/mark" \
-H "Authorization: Bearer <токен игрока>" \
-H "Content-Type: application/json" \
-d '{}'
Ответы Код detail Значение 200 — Успешный ответ; пример ниже 401 no_tokenНет токена в заголовке Authorization 401 invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh 409 no_active_bookingНет идущей брони и не указан корт 404 club_not_foundКлуб не найден 422 […] Ошибка проверки параметров или тела: detail — список ошибок
Пример ответа Копировать {"ok": true, "id": "0d4e8f21-6a3b-4c7d-9e1f-2a5b8c0d3e47", "court": "Корт 4"}
Текстовый разбор матча #
GET /v1/matches/{match_id}/review
Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.
Текстовый AI-разбор игры для участника. status: ready (text заполнен), no_data (нет статистики), disabled (разбор выключен), failed (не получился).
Параметры пути Имя Тип Обязательно Описание match_idстрока (uuid) да Идентификатор матча
Заголовки Имя Тип Обязательно Описание Authorizationстрока да Bearer <токен игрока>
Пример запроса Копировать curl -X GET "https://адрес-вашего-сервера/api/v1/matches/8c0f4a52-2d1e-4b7a-9f63-1a5e7d9b3c20/review" \
-H "Authorization: Bearer <токен игрока>"
Ответы Код detail Значение 200 — Успешный ответ; пример ниже 401 no_tokenНет токена в заголовке Authorization 401 invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh 404 match_not_foundМатч не найден, чужого клуба или вы не участник 422 […] Ошибка проверки параметров или тела: detail — список ошибок
Пример ответа Копировать {"status": "ready", "text": "Вы чаще выигрывали розыгрыши у сетки…", "cached": true}
Ссылка на клип для публикации #
POST /v1/matches/{match_id}/clips/{clip_id}/share
Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.
Участник матча получает публичную ссылку на страницу клипа (с превью для соцсетей).
Параметры пути Имя Тип Обязательно Описание match_idстрока (uuid) да Идентификатор матча clip_idстрока (uuid) да Идентификатор клипа
Заголовки Имя Тип Обязательно Описание Authorizationстрока да Bearer <токен игрока>
Пример запроса Копировать curl -X POST "https://адрес-вашего-сервера/api/v1/matches/8c0f4a52-2d1e-4b7a-9f63-1a5e7d9b3c20/clips/f0c3a8e1-4d27-4b96-a5e3-9c18d2b7f604/share" \
-H "Authorization: Bearer <токен игрока>"
Ответы Код detail Значение 200 — Успешный ответ; пример ниже 401 no_tokenНет токена в заголовке Authorization 401 invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh 404 match_not_foundМатч не найден, чужого клуба или вы не участник 404 clip_not_foundКлип не найден в этом матче 422 […] Ошибка проверки параметров или тела: detail — список ошибок
Пример ответа Копировать {"url": "https://адрес-вашего-сервера/card/clip/<токен>", "title": "Момент матча"}