Клубы и слоты
Клубы, корты и свободные слоты на день с ценой. Публичные методы.
Список клубов #
GET
/v1/clubsДоступ: Публичный Без авторизации.
Все клубы сети: адрес, число кортов, цена от, есть ли AI на кортах, координаты (если заданы).
Пример запроса
curl -X GET "https://адрес-вашего-сервера/api/v1/clubs"Ответы
| Код | detail | Значение |
|---|---|---|
| 200 | — | Успешный ответ; пример ниже |
Пример ответа
{
"items": [
{
"id": "c1",
"name": "Флэйм Падел",
"address": "Сколково, корты №4 и №5",
"courts": 6,
"priceFrom": 3500,
"hasAI": true,
"lat": null,
"lon": null
}
]
}Клуб #
GET
/v1/clubs/{club_id}Доступ: Публичный Без авторизации.
Один клуб в том же формате, что и в списке.
Параметры пути
| Имя | Тип | Обязательно | Описание |
|---|---|---|---|
club_id | строка | да | Идентификатор клуба |
Пример запроса
curl -X GET "https://адрес-вашего-сервера/api/v1/clubs/c1"Ответы
| Код | detail | Значение |
|---|---|---|
| 200 | — | Успешный ответ; пример ниже |
| 404 | club_not_found | Клуб не найден |
| 422 | […] | Ошибка проверки параметров или тела: detail — список ошибок |
Пример ответа
{
"id": "c1",
"name": "Флэйм Падел",
"address": "Сколково, корты №4 и №5",
"courts": 6,
"priceFrom": 3500,
"hasAI": true,
"lat": null,
"lon": null
}Корты клуба #
GET
/v1/clubs/{club_id}/courtsДоступ: Публичный Без авторизации.
Корты клуба: имя, крытый ли, есть ли AI.
Параметры пути
| Имя | Тип | Обязательно | Описание |
|---|---|---|---|
club_id | строка | да | Идентификатор клуба |
Пример запроса
curl -X GET "https://адрес-вашего-сервера/api/v1/clubs/c1/courts"Ответы
| Код | detail | Значение |
|---|---|---|
| 200 | — | Успешный ответ; пример ниже |
| 404 | club_not_found | Клуб не найден |
| 422 | […] | Ошибка проверки параметров или тела: detail — список ошибок |
Пример ответа
{
"items": [
{
"id": "7d1e3b5a-9c2f-4e8d-b6a0-4f2c8e1d9b37",
"name": "Корт 4",
"indoor": true,
"hasAI": true
}
]
}Слоты клуба на день #
GET
/v1/clubs/{club_id}/slotsДоступ: Публичный Без авторизации.
Слоты по 90 минут от открытия до закрытия клуба на день day (YYYY-MM-DD, по умолчанию сегодня). Слот свободен, если свободен хотя бы один корт; freeCourts — сколько. Цена — по сетке клуба для обычного игрока; priceLabel заполнен для «счастливых часов». Персональная цена (категория клиента, промокод) считается при брони.
Параметры пути
| Имя | Тип | Обязательно | Описание |
|---|---|---|---|
club_id | строка | да | Идентификатор клуба |
Параметры запроса
| Имя | Тип | Обязательно | Описание |
|---|---|---|---|
day | строка | нет | Дата YYYY-MM-DD |
Пример запроса
curl -X GET "https://адрес-вашего-сервера/api/v1/clubs/c1/slots?day=2026-10-03"Ответы
| Код | detail | Значение |
|---|---|---|
| 200 | — | Успешный ответ; пример ниже |
| 404 | club_not_found | Клуб не найден |
| 400 | bad_day | Неверная дата (нужно YYYY-MM-DD) |
| 422 | […] | Ошибка проверки параметров или тела: detail — список ошибок |
Пример ответа
{
"day": "2026-10-03",
"items": [
{
"time": "08:00",
"free": true,
"freeCourts": 2,
"price": 2800,
"priceLabel": "Счастливые часы"
},
{"time": "09:30", "free": false, "freeCourts": 0, "price": 3500, "priceLabel": ""}
]
}