AI PadelAPI documentation Back to site

Clubs and slots

Clubs, courts and free slots for a day with prices. Public methods.

Base URL: https://your-server/api · Guide for this section: Clubs, courts, slots and bookings

List clubs #

GET/v1/clubs

Access: Public No authorization.

All network clubs: address, court count, price from, whether courts have AI, coordinates (if set).

Example request

curl -X GET "https://your-server/api/v1/clubs"

Responses

CodedetailMeaning
200—Success; example below

Example response

{
  "items": [
    {
      "id": "c1",
      "name": "Flame Padel",
      "address": "Skolkovo, courts 4 and 5",
      "courts": 6,
      "priceFrom": 3500,
      "hasAI": true,
      "lat": null,
      "lon": null
    }
  ]
}

Club #

GET/v1/clubs/{club_id}

Access: Public No authorization.

One club in the same format as in the list.

Path parameters

NameTypeRequiredDescription
club_idstringyesClub id

Example request

curl -X GET "https://your-server/api/v1/clubs/c1"

Responses

CodedetailMeaning
200—Success; example below
404club_not_foundClub not found
422[…]Parameter or body validation error: detail is a list of errors

Example response

{
  "id": "c1",
  "name": "Flame Padel",
  "address": "Skolkovo, courts 4 and 5",
  "courts": 6,
  "priceFrom": 3500,
  "hasAI": true,
  "lat": null,
  "lon": null
}

Club courts #

GET/v1/clubs/{club_id}/courts

Access: Public No authorization.

Club courts: name, indoor or not, AI or not.

Path parameters

NameTypeRequiredDescription
club_idstringyesClub id

Example request

curl -X GET "https://your-server/api/v1/clubs/c1/courts"

Responses

CodedetailMeaning
200—Success; example below
404club_not_foundClub not found
422[…]Parameter or body validation error: detail is a list of errors

Example response

{
  "items": [
    {
      "id": "7d1e3b5a-9c2f-4e8d-b6a0-4f2c8e1d9b37",
      "name": "Court 4",
      "indoor": true,
      "hasAI": true
    }
  ]
}

Club slots for a day #

GET/v1/clubs/{club_id}/slots

Access: Public No authorization.

90-minute slots from club opening to closing for the day (YYYY-MM-DD, today by default). A slot is free if at least one court is free; freeCourts says how many. The price follows the club price grid for a regular player; priceLabel is set for happy hours. The personal price (customer category, promo code) is applied at booking.

Path parameters

NameTypeRequiredDescription
club_idstringyesClub id

Query parameters

NameTypeRequiredDescription
daystringnoDate YYYY-MM-DD

Example request

curl -X GET "https://your-server/api/v1/clubs/c1/slots?day=2026-10-03"

Responses

CodedetailMeaning
200—Success; example below
404club_not_foundClub not found
400bad_dayInvalid date (YYYY-MM-DD expected)
422[…]Parameter or body validation error: detail is a list of errors

Example response

{
  "day": "2026-10-03",
  "items": [
    {
      "time": "08:00",
      "free": true,
      "freeCourts": 2,
      "price": 2800,
      "priceLabel": "<label>"
    },
    {"time": "09:30", "free": false, "freeCourts": 0, "price": 3500, "priceLabel": ""}
  ]
}