LE-KO Events API (v1.0.3)

Download OpenAPI specification:

LE-KO Events API

Bookings

Bookings APIs

Cancel a booking

✨ Cancel a specific booking with automatic role determination based on user ID

Authorizations:
bearerHttpAuthentication
path Parameters
bookingId
required
string <uuid>

The booking ID to cancel

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
userId
string or null <uuid>

User initiating cancellation (athlete/coach). If not provided or null, cancellation is performed by the system.

cancellationReasonCode
required
string (BookingCancellationReasonCode)
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for booking cancellation

cancellationReasonText
string

Optional additional details about the cancellation

Responses

Request samples

Content type
application/json
{
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "cancellationReasonCode": "NotFeelingWell",
  • "cancellationReasonText": "string"
}

Response samples

Content type
application/json
{
  • "errors": [
    • {
      • "code": "validation",
      • "message": "string",
      • "endpoint": "string",
      • "requestId": "string"
      }
    ]
}

Dispute a booking.

✨ Dispute a booking.

Authorizations:
bearerHttpAuthentication
path Parameters
bookingId
required
string <uuid>

The booking ID.

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
disputerUserId
required
string <uuid>
reasonId
required
string <uuid>
comment
string

Responses

Response Schema: application/json
required
object (Booking)
bookingId
required
string <uuid>
orderId
required
string <uuid>
userId
required
string <uuid>
eventId
required
string <uuid>
status
required
string (BookingStatus)
Enum: "Accepted" "Rejected" "Pending" "Canceled" "InDispute" "DisputeDone"
completed
required
boolean
note
string or null
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Athlete" "Coach" "System"

Who canceled the booking

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for booking cancellation

cancellationReasonText
string or null
createdAt
required
string <date-time>
required
object (Event)
id
required
string <uuid>
timeslotId
required
string <uuid>
startTime
required
string <date-time>
endTime
required
string <date-time>
status
required
string (EventStatus)
Enum: "Scheduled" "Canceled" "InProgress" "Done"
coachId
required
string <uuid>
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Coach" "System"

Role of who canceled the event

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for event cancellation

cancellationReasonText
string or null
required
object (Timeslot)
id
required
string <uuid>
sessionId
required
string <uuid>
startTime
required
string
endTime
required
string
numberOfParticipants
required
integer
slotType
required
string or null
ageStart
required
integer
ageEnd
required
integer
duration
required
integer
price
required
integer
priceCurrency
required
string (Currency)
Value: "RUB"
public
required
boolean or null
level
required
string or null
eligibility
required
string or null
addressId
required
string or null <uuid>
required
object (Session)
id
required
string <uuid>
serviceId
required
string <uuid>
startDate
required
string <date-time>
repeatDays
required
Array of strings
stopDate
required
string or null <date-time>
required
object (Service)
id
required
string <uuid>
coachId
required
string <uuid>
description
required
string
sportId
required
string <uuid>
subsportId
required
string or null <uuid>
isDraft
required
boolean
inventory
string or null

Inventory details for the service

Request samples

Content type
application/json
{
  • "disputerUserId": "9ffc4d67-18e5-4a3e-994b-bffb2d118ce0",
  • "reasonId": "c577cf67-9268-488b-9f16-1c6585ec43bf",
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "booking": {
    • "bookingId": "9a471128-954e-4e64-bde9-e8147015df89",
    • "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5",
    • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
    • "status": "Accepted",
    • "completed": true,
    • "note": "string",
    • "canceledAt": "2019-08-24T14:15:22Z",
    • "canceledByRole": "Athlete",
    • "cancellationReasonCode": "NotFeelingWell",
    • "cancellationReasonText": "string",
    • "createdAt": "2019-08-24T14:15:22Z"
    },
  • "event": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "timeslotId": "303f94bb-a246-4fe8-83ac-06660759f3c6",
    • "startTime": "2019-08-24T14:15:22Z",
    • "endTime": "2019-08-24T14:15:22Z",
    • "status": "Scheduled",
    • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
    • "canceledAt": "2019-08-24T14:15:22Z",
    • "canceledByRole": "Coach",
    • "cancellationReasonCode": "NotFeelingWell",
    • "cancellationReasonText": "string"
    },
  • "timeslot": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
    • "startTime": "string",
    • "endTime": "string",
    • "numberOfParticipants": 0,
    • "slotType": "string",
    • "ageStart": 0,
    • "ageEnd": 0,
    • "duration": 0,
    • "price": 0,
    • "priceCurrency": "RUB",
    • "public": true,
    • "level": "string",
    • "eligibility": "string",
    • "addressId": "785d1fc4-8ab5-48f1-8685-117cac9865d6"
    },
  • "session": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
    • "startDate": "2019-08-24T14:15:22Z",
    • "repeatDays": [
      • "string"
      ],
    • "stopDate": "2019-08-24T14:15:22Z"
    },
  • "service": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
    • "description": "string",
    • "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
    • "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
    • "isDraft": true,
    • "inventory": "string"
    }
}

Get booking dispute user ID and dispute reason.

✨ Get booking dispute user ID and dispute reason.

Authorizations:
bearerHttpAuthentication
path Parameters
bookingId
required
string <uuid>

The booking ID.

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
disputerUserId
required
string <uuid>
comment
string
required
object (BookingDisputeReason)
id
required
string <uuid>
category
required
string
title
required
string
description
required
string
type
required
string (BookingDisputeReasonType)
Enum: "Athlete" "Coach"
required
object (Booking)
bookingId
required
string <uuid>
orderId
required
string <uuid>
userId
required
string <uuid>
eventId
required
string <uuid>
status
required
string (BookingStatus)
Enum: "Accepted" "Rejected" "Pending" "Canceled" "InDispute" "DisputeDone"
completed
required
boolean
note
string or null
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Athlete" "Coach" "System"

Who canceled the booking

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for booking cancellation

cancellationReasonText
string or null
createdAt
required
string <date-time>

Response samples

Content type
application/json
{
  • "disputerUserId": "9ffc4d67-18e5-4a3e-994b-bffb2d118ce0",
  • "comment": "string",
  • "reason": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "category": "string",
    • "title": "string",
    • "description": "string",
    • "type": "Athlete"
    },
  • "booking": {
    • "bookingId": "9a471128-954e-4e64-bde9-e8147015df89",
    • "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5",
    • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
    • "status": "Accepted",
    • "completed": true,
    • "note": "string",
    • "canceledAt": "2019-08-24T14:15:22Z",
    • "canceledByRole": "Athlete",
    • "cancellationReasonCode": "NotFeelingWell",
    • "cancellationReasonText": "string",
    • "createdAt": "2019-08-24T14:15:22Z"
    }
}

Lists all valid dispute reasons

✨ Lists all valid dispute reasons.

Authorizations:
bearerHttpAuthentication
query Parameters
type
string (BookingDisputeReasonType)
Enum: "Athlete" "Coach"

Filter dispute reasons by type

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
id
required
string <uuid>
category
required
string
title
required
string
description
required
string
type
required
string (BookingDisputeReasonType)
Enum: "Athlete" "Coach"

Response samples

Content type
application/json
[
  • {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "category": "string",
    • "title": "string",
    • "description": "string",
    • "type": "Athlete"
    }
]

Get all bookings for a specific order with complete details

✨ Retrieves all bookings associated with a specific booking order ID, including complete details of events, timeslots, sessions, services, and addresses.

Authorizations:
bearerHttpAuthentication
path Parameters
orderId
required
string <uuid>

The booking order ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
required
object (Booking)
bookingId
required
string <uuid>
orderId
required
string <uuid>
userId
required
string <uuid>
eventId
required
string <uuid>
status
required
string (BookingStatus)
Enum: "Accepted" "Rejected" "Pending" "Canceled" "InDispute" "DisputeDone"
completed
required
boolean
note
string or null
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Athlete" "Coach" "System"

Who canceled the booking

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for booking cancellation

cancellationReasonText
string or null
createdAt
required
string <date-time>
required
object (Event)
id
required
string <uuid>
timeslotId
required
string <uuid>
startTime
required
string <date-time>
endTime
required
string <date-time>
status
required
string (EventStatus)
Enum: "Scheduled" "Canceled" "InProgress" "Done"
coachId
required
string <uuid>
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Coach" "System"

Role of who canceled the event

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for event cancellation

cancellationReasonText
string or null
required
object (Timeslot)
id
required
string <uuid>
sessionId
required
string <uuid>
startTime
required
string
endTime
required
string
numberOfParticipants
required
integer
slotType
required
string or null
ageStart
required
integer
ageEnd
required
integer
duration
required
integer
price
required
integer
priceCurrency
required
string (Currency)
Value: "RUB"
public
required
boolean or null
level
required
string or null
eligibility
required
string or null
addressId
required
string or null <uuid>
required
object (Session)
id
required
string <uuid>
serviceId
required
string <uuid>
startDate
required
string <date-time>
repeatDays
required
Array of strings
stopDate
required
string or null <date-time>
required
object (Service)
id
required
string <uuid>
coachId
required
string <uuid>
description
required
string
sportId
required
string <uuid>
subsportId
required
string or null <uuid>
isDraft
required
boolean
inventory
string or null

Inventory details for the service

Response samples

Content type
application/json
[
  • {
    • "booking": {
      • "bookingId": "9a471128-954e-4e64-bde9-e8147015df89",
      • "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5",
      • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
      • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
      • "status": "Accepted",
      • "completed": true,
      • "note": "string",
      • "canceledAt": "2019-08-24T14:15:22Z",
      • "canceledByRole": "Athlete",
      • "cancellationReasonCode": "NotFeelingWell",
      • "cancellationReasonText": "string",
      • "createdAt": "2019-08-24T14:15:22Z"
      },
    • "event": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "timeslotId": "303f94bb-a246-4fe8-83ac-06660759f3c6",
      • "startTime": "2019-08-24T14:15:22Z",
      • "endTime": "2019-08-24T14:15:22Z",
      • "status": "Scheduled",
      • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
      • "canceledAt": "2019-08-24T14:15:22Z",
      • "canceledByRole": "Coach",
      • "cancellationReasonCode": "NotFeelingWell",
      • "cancellationReasonText": "string"
      },
    • "timeslot": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
      • "startTime": "string",
      • "endTime": "string",
      • "numberOfParticipants": 0,
      • "slotType": "string",
      • "ageStart": 0,
      • "ageEnd": 0,
      • "duration": 0,
      • "price": 0,
      • "priceCurrency": "RUB",
      • "public": true,
      • "level": "string",
      • "eligibility": "string",
      • "addressId": "785d1fc4-8ab5-48f1-8685-117cac9865d6"
      },
    • "session": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
      • "startDate": "2019-08-24T14:15:22Z",
      • "repeatDays": [
        ],
      • "stopDate": "2019-08-24T14:15:22Z"
      },
    • "service": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
      • "description": "string",
      • "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
      • "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
      • "isDraft": true,
      • "inventory": "string"
      }
    }
]

Addresses

Addresses APIs

Get filtered addresses

✨ Gets addresses by filters. You must specify either userId or a combination of lat, lng, and distanceMeters to filter the addresses.

Authorizations:
bearerHttpAuthentication
query Parameters
userId
string <uuid> (Id) = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...
Example: userId=4b72d209-debd-45e1-93cc-7640bf7d39bf

The user ID to filter addresses

lat
number <double>

Latitude for location-based filtering

lng
number <double>

Longitude for location-based filtering

distanceMeters
integer

Distance in meters for location-based filtering

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
id
required
string <uuid>
userId
required
string <uuid>
formattedAddress
required
string
addressType
string (AddressType)
Value: "Main"
latitude
number <double>
longitude
number <double>
entrance
string
floor
string
locationComment
string

Response samples

Content type
application/json
[
  • {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    • "formattedAddress": "string",
    • "addressType": "Main",
    • "latitude": 0.1,
    • "longitude": 0.1,
    • "entrance": "string",
    • "floor": "string",
    • "locationComment": "string"
    }
]

Register a new address

✨ Register a new address. The formatted address should ideally match exactly the format returned by the geosuggest API. This ensures consistency and accuracy when storing and retrieving address information.

Authorizations:
bearerHttpAuthentication
header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
userId
required
string <uuid>
formattedAddress
required
string
entrance
string
floor
string
locationComment
string
type
string (AddressType)
Value: "Main"

Responses

Response Schema: application/json
id
required
string <uuid>
userId
required
string <uuid>
formattedAddress
required
string
addressType
string (AddressType)
Value: "Main"
latitude
number <double>
longitude
number <double>
entrance
string
floor
string
locationComment
string

Request samples

Content type
application/json
{
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "formattedAddress": "string",
  • "entrance": "string",
  • "floor": "string",
  • "locationComment": "string",
  • "type": "Main"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "formattedAddress": "string",
  • "addressType": "Main",
  • "latitude": 0.1,
  • "longitude": 0.1,
  • "entrance": "string",
  • "floor": "string",
  • "locationComment": "string"
}

Suggest addresses

✨ Suggest addresses based on a query string.

Authorizations:
bearerHttpAuthentication
query Parameters
query
required
string

The query string to suggest addresses

baseLat
number <float> [ -90 .. 90 ]

Optional base latitude for location-based suggestions

baseLong
number <float> [ -180 .. 180 ]

Optional base longitude for location-based suggestions

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
formattedAddress
required
string
street
required
string or null
region
required
string or null
city
required
string or null

Response samples

Content type
application/json
[
  • {
    • "formattedAddress": "string",
    • "street": "string",
    • "region": "string",
    • "city": "string"
    }
]

Geocode addresses

✨ Geocoding is the process of converting addresses into geographic coordinates. This endpoint suggests addresses based on a query string and returns their corresponding geographic coordinates.

Authorizations:
bearerHttpAuthentication
query Parameters
query
required
string non-empty

The query string to suggest addresses

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
formattedAddress
required
string
latitude
required
number <double>
longitude
required
number <double>
street
required
string or null
region
required
string or null
city
required
string or null

Response samples

Content type
application/json
[
  • {
    • "formattedAddress": "string",
    • "latitude": 0.1,
    • "longitude": 0.1,
    • "street": "string",
    • "region": "string",
    • "city": "string"
    }
]

Reverse geocode.

✨ Reverse geocoding is the process of converting geographic coordinates into human-readable addresses. This endpoint returns suggested addresses based on the provided geographic coordinates in the query string.

Authorizations:
bearerHttpAuthentication
query Parameters
latitude
required
number <double> [ -90 .. 90 ]

Latitude to reverse geocode.

longitude
required
number <double> [ -180 .. 180 ]

longitude to reverse geocode.

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
formattedAddress
required
string
latitude
required
number <double>
longitude
required
number <double>
street
required
string or null
region
required
string or null
city
required
string or null

Response samples

Content type
application/json
{
  • "formattedAddress": "string",
  • "latitude": 0.1,
  • "longitude": 0.1,
  • "street": "string",
  • "region": "string",
  • "city": "string"
}

Get an address by ID

✨ Retrieve a specific address using its unique ID.

Authorizations:
bearerHttpAuthentication
path Parameters
addressId
required
string <uuid> (Id) = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...
Example: 4b72d209-debd-45e1-93cc-7640bf7d39bf

The address ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
id
required
string <uuid>
userId
required
string <uuid>
formattedAddress
required
string
addressType
string (AddressType)
Value: "Main"
latitude
number <double>
longitude
number <double>
entrance
string
floor
string
locationComment
string

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "formattedAddress": "string",
  • "addressType": "Main",
  • "latitude": 0.1,
  • "longitude": 0.1,
  • "entrance": "string",
  • "floor": "string",
  • "locationComment": "string"
}

Update an address

✨ Update an address by replacing all fields.

Authorizations:
bearerHttpAuthentication
path Parameters
addressId
required
string <uuid> (Id) = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...
Example: 4b72d209-debd-45e1-93cc-7640bf7d39bf

The address ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
userId
required
string <uuid>
formattedAddress
required
string
entrance
string
floor
string
locationComment
string
type
string (AddressType)
Value: "Main"

Responses

Response Schema: application/json
id
required
string <uuid>
userId
required
string <uuid>
formattedAddress
required
string
addressType
string (AddressType)
Value: "Main"
latitude
number <double>
longitude
number <double>
entrance
string
floor
string
locationComment
string

Request samples

Content type
application/json
{
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "formattedAddress": "string",
  • "entrance": "string",
  • "floor": "string",
  • "locationComment": "string",
  • "type": "Main"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "formattedAddress": "string",
  • "addressType": "Main",
  • "latitude": 0.1,
  • "longitude": 0.1,
  • "entrance": "string",
  • "floor": "string",
  • "locationComment": "string"
}

Delete an address

✨ Delete an address by ID.

Authorizations:
bearerHttpAuthentication
path Parameters
addressId
required
string <uuid> (Id) = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...
Example: 4b72d209-debd-45e1-93cc-7640bf7d39bf

The address ID

query Parameters
currentUserId
required
string <uuid>

The user of the ID attempting this operation

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response samples

Content type
application/json
{
  • "errors": [
    • {
      • "code": "validation",
      • "message": "string",
      • "endpoint": "string",
      • "requestId": "string"
      }
    ]
}

Set the type of an address

✨ Sets the type of an address and unsets any other addresses of said type for the same user

Authorizations:
bearerHttpAuthentication
path Parameters
addressId
required
string <uuid>

The address ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
currentUserId
required
string <uuid>
addressType
required
string (AddressType)
Value: "Main"

Responses

Response Schema: application/json
id
required
string <uuid>
userId
required
string <uuid>
formattedAddress
required
string
addressType
string (AddressType)
Value: "Main"
latitude
number <double>
longitude
number <double>
entrance
string
floor
string
locationComment
string

Request samples

Content type
application/json
{
  • "currentUserId": "4750c4be-4caf-4d36-8460-9ae0cc06fb88",
  • "addressType": "Main"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "formattedAddress": "string",
  • "addressType": "Main",
  • "latitude": 0.1,
  • "longitude": 0.1,
  • "entrance": "string",
  • "floor": "string",
  • "locationComment": "string"
}

Get nearby users based on addresses

✨ Retrieves user IDs of nearby users based on a provided latitude and longitude. This endpoint returns a list of user IDs for users located within a certain radius of the given coordinates.

Authorizations:
bearerHttpAuthentication
query Parameters
userId
required
string <uuid>

The ID of the user which is requesting other nearby users. This is used to filter them out of the results.

latitude
required
number <double>
longitude
required
number <double>
maxDistanceInMeters
required
integer >= 1
header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
string <uuid>

Response samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Events

Events APIs

Get grouped booking and event data

✨ Get grouped booking and event data

Authorizations:
bearerHttpAuthentication
path Parameters
coachId
required
string <uuid>
query Parameters
startTime
required
string <date-time>

Start time for filtering events (ISO 8601 format)

endTime
required
string <date-time>

End time for filtering events (ISO 8601 format)

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
required
object (Event)
id
required
string <uuid>
timeslotId
required
string <uuid>
startTime
required
string <date-time>
endTime
required
string <date-time>
status
required
string (EventStatus)
Enum: "Scheduled" "Canceled" "InProgress" "Done"
coachId
required
string <uuid>
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Coach" "System"

Role of who canceled the event

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for event cancellation

cancellationReasonText
string or null
required
Array of objects (Booking)
Array
bookingId
required
string <uuid>
orderId
required
string <uuid>
userId
required
string <uuid>
eventId
required
string <uuid>
status
required
string (BookingStatus)
Enum: "Accepted" "Rejected" "Pending" "Canceled" "InDispute" "DisputeDone"
completed
required
boolean
note
string or null
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Athlete" "Coach" "System"

Who canceled the booking

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for booking cancellation

cancellationReasonText
string or null
createdAt
required
string <date-time>
required
object (Timeslot)
id
required
string <uuid>
sessionId
required
string <uuid>
startTime
required
string
endTime
required
string
numberOfParticipants
required
integer
slotType
required
string or null
ageStart
required
integer
ageEnd
required
integer
duration
required
integer
price
required
integer
priceCurrency
required
string (Currency)
Value: "RUB"
public
required
boolean or null
level
required
string or null
eligibility
required
string or null
addressId
required
string or null <uuid>
required
object (Service)
id
required
string <uuid>
coachId
required
string <uuid>
description
required
string
sportId
required
string <uuid>
subsportId
required
string or null <uuid>
isDraft
required
boolean
inventory
string or null

Inventory details for the service

Response samples

Content type
application/json
[
  • {
    • "event": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "timeslotId": "303f94bb-a246-4fe8-83ac-06660759f3c6",
      • "startTime": "2019-08-24T14:15:22Z",
      • "endTime": "2019-08-24T14:15:22Z",
      • "status": "Scheduled",
      • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
      • "canceledAt": "2019-08-24T14:15:22Z",
      • "canceledByRole": "Coach",
      • "cancellationReasonCode": "NotFeelingWell",
      • "cancellationReasonText": "string"
      },
    • "bookings": [
      • {
        }
      ],
    • "timeslot": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
      • "startTime": "string",
      • "endTime": "string",
      • "numberOfParticipants": 0,
      • "slotType": "string",
      • "ageStart": 0,
      • "ageEnd": 0,
      • "duration": 0,
      • "price": 0,
      • "priceCurrency": "RUB",
      • "public": true,
      • "level": "string",
      • "eligibility": "string",
      • "addressId": "785d1fc4-8ab5-48f1-8685-117cac9865d6"
      },
    • "service": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
      • "description": "string",
      • "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
      • "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
      • "isDraft": true,
      • "inventory": "string"
      }
    }
]

Get aggregate data for an event

✨ Gets aggregated data for an event

Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>
query Parameters
bookingId
Array of strings <uuid> [ items <uuid > ]

Optional booking ID(s) to filter correlated bookings. If provided, only bookings matching these IDs will be returned, regardless of their status (including canceled bookings).

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
required
object (Event)
id
required
string <uuid>
timeslotId
required
string <uuid>
startTime
required
string <date-time>
endTime
required
string <date-time>
status
required
string (EventStatus)
Enum: "Scheduled" "Canceled" "InProgress" "Done"
coachId
required
string <uuid>
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Coach" "System"

Role of who canceled the event

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for event cancellation

cancellationReasonText
string or null
required
object (Timeslot)
id
required
string <uuid>
sessionId
required
string <uuid>
startTime
required
string
endTime
required
string
numberOfParticipants
required
integer
slotType
required
string or null
ageStart
required
integer
ageEnd
required
integer
duration
required
integer
price
required
integer
priceCurrency
required
string (Currency)
Value: "RUB"
public
required
boolean or null
level
required
string or null
eligibility
required
string or null
addressId
required
string or null <uuid>
required
object (Session)
id
required
string <uuid>
serviceId
required
string <uuid>
startDate
required
string <date-time>
repeatDays
required
Array of strings
stopDate
required
string or null <date-time>
required
object (Service)
id
required
string <uuid>
coachId
required
string <uuid>
description
required
string
sportId
required
string <uuid>
subsportId
required
string or null <uuid>
isDraft
required
boolean
inventory
string or null

Inventory details for the service

required
object (Address)
id
required
string <uuid>
userId
required
string <uuid>
formattedAddress
required
string
addressType
string (AddressType)
Value: "Main"
latitude
number <double>
longitude
number <double>
entrance
string
floor
string
locationComment
string
futureEventsCount
required
integer

How many future events are there with the same timeslot ID. Useful for detecting whether it's a repeating event or timeslot.

required
Array of objects (AggregateEventDataCR)
Array
userId
required
string <uuid>
required
Array of objects (AggregateEventDataBE)

Response samples

Content type
application/json
{
  • "event": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "timeslotId": "303f94bb-a246-4fe8-83ac-06660759f3c6",
    • "startTime": "2019-08-24T14:15:22Z",
    • "endTime": "2019-08-24T14:15:22Z",
    • "status": "Scheduled",
    • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
    • "canceledAt": "2019-08-24T14:15:22Z",
    • "canceledByRole": "Coach",
    • "cancellationReasonCode": "NotFeelingWell",
    • "cancellationReasonText": "string"
    },
  • "timeslot": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
    • "startTime": "string",
    • "endTime": "string",
    • "numberOfParticipants": 0,
    • "slotType": "string",
    • "ageStart": 0,
    • "ageEnd": 0,
    • "duration": 0,
    • "price": 0,
    • "priceCurrency": "RUB",
    • "public": true,
    • "level": "string",
    • "eligibility": "string",
    • "addressId": "785d1fc4-8ab5-48f1-8685-117cac9865d6"
    },
  • "session": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
    • "startDate": "2019-08-24T14:15:22Z",
    • "repeatDays": [
      • "string"
      ],
    • "stopDate": "2019-08-24T14:15:22Z"
    },
  • "service": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
    • "description": "string",
    • "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
    • "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
    • "isDraft": true,
    • "inventory": "string"
    },
  • "address": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    • "formattedAddress": "string",
    • "addressType": "Main",
    • "latitude": 0.1,
    • "longitude": 0.1,
    • "entrance": "string",
    • "floor": "string",
    • "locationComment": "string"
    },
  • "futureEventsCount": 0,
  • "correlatedBookings": [
    • {
      • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
      • "bookingsAndEvents": [
        ]
      }
    ]
}

Restore a deleted event

✨ Restore a deleted event

Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>

Event ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response samples

Content type
application/json
{
  • "errors": [
    • {
      • "code": "validation",
      • "message": "string",
      • "endpoint": "string",
      • "requestId": "string"
      }
    ]
}

Cancels an event

✨ Cancels an event

Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>

Event ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
userId
string <uuid>

ID of the user canceling the event. If absent, indicates system-initiated cancellation.

cancellationReasonCode
required
string (EventCancellationReasonCode)
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for event cancellation

cancellationReasonText
string

Optional free-form text explanation for the cancellation

Responses

Request samples

Content type
application/json
{
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "cancellationReasonCode": "NotFeelingWell",
  • "cancellationReasonText": "string"
}

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Dismiss a canceled event

✨ Dismiss a canceled event from the coach's calendar view. Only the event owner (coach) can dismiss their own events, and only canceled events can be dismissed. This action is permanent and helps keep the calendar UI clean.

Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>

The event ID to dismiss

query Parameters
coachId
required
string <uuid>

The coach ID (must match the event owner)

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Rate an event by its ID

✨ Rate an event by its ID, as well as the booking ID

Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>

Event ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
bookingId
required
string <uuid>
userId
required
string <uuid>
rating
required
integer [ 0 .. 5 ]

Responses

Request samples

Content type
application/json
{
  • "bookingId": "9a471128-954e-4e64-bde9-e8147015df89",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "rating": 5
}

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Get event with complete details and bookings

✨ Get event with complete details and bookings

Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>

Event ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
required
object (Event)
id
required
string <uuid>
timeslotId
required
string <uuid>
startTime
required
string <date-time>
endTime
required
string <date-time>
status
required
string (EventStatus)
Enum: "Scheduled" "Canceled" "InProgress" "Done"
coachId
required
string <uuid>
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Coach" "System"

Role of who canceled the event

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for event cancellation

cancellationReasonText
string or null
required
object (Timeslot)
id
required
string <uuid>
sessionId
required
string <uuid>
startTime
required
string
endTime
required
string
numberOfParticipants
required
integer
slotType
required
string or null
ageStart
required
integer
ageEnd
required
integer
duration
required
integer
price
required
integer
priceCurrency
required
string (Currency)
Value: "RUB"
public
required
boolean or null
level
required
string or null
eligibility
required
string or null
addressId
required
string or null <uuid>
required
object (Session)
id
required
string <uuid>
serviceId
required
string <uuid>
startDate
required
string <date-time>
repeatDays
required
Array of strings
stopDate
required
string or null <date-time>
required
object (Service)
id
required
string <uuid>
coachId
required
string <uuid>
description
required
string
sportId
required
string <uuid>
subsportId
required
string or null <uuid>
isDraft
required
boolean
inventory
string or null

Inventory details for the service

required
object (Address)
id
required
string <uuid>
userId
required
string <uuid>
formattedAddress
required
string
addressType
string (AddressType)
Value: "Main"
latitude
number <double>
longitude
number <double>
entrance
string
floor
string
locationComment
string
required
Array of objects (Booking)
Array
bookingId
required
string <uuid>
orderId
required
string <uuid>
userId
required
string <uuid>
eventId
required
string <uuid>
status
required
string (BookingStatus)
Enum: "Accepted" "Rejected" "Pending" "Canceled" "InDispute" "DisputeDone"
completed
required
boolean
note
string or null
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Athlete" "Coach" "System"

Who canceled the booking

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for booking cancellation

cancellationReasonText
string or null
createdAt
required
string <date-time>

Response samples

Content type
application/json
{
  • "event": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "timeslotId": "303f94bb-a246-4fe8-83ac-06660759f3c6",
    • "startTime": "2019-08-24T14:15:22Z",
    • "endTime": "2019-08-24T14:15:22Z",
    • "status": "Scheduled",
    • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
    • "canceledAt": "2019-08-24T14:15:22Z",
    • "canceledByRole": "Coach",
    • "cancellationReasonCode": "NotFeelingWell",
    • "cancellationReasonText": "string"
    },
  • "timeslot": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
    • "startTime": "string",
    • "endTime": "string",
    • "numberOfParticipants": 0,
    • "slotType": "string",
    • "ageStart": 0,
    • "ageEnd": 0,
    • "duration": 0,
    • "price": 0,
    • "priceCurrency": "RUB",
    • "public": true,
    • "level": "string",
    • "eligibility": "string",
    • "addressId": "785d1fc4-8ab5-48f1-8685-117cac9865d6"
    },
  • "session": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
    • "startDate": "2019-08-24T14:15:22Z",
    • "repeatDays": [
      • "string"
      ],
    • "stopDate": "2019-08-24T14:15:22Z"
    },
  • "service": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
    • "description": "string",
    • "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
    • "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
    • "isDraft": true,
    • "inventory": "string"
    },
  • "address": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    • "formattedAddress": "string",
    • "addressType": "Main",
    • "latitude": 0.1,
    • "longitude": 0.1,
    • "entrance": "string",
    • "floor": "string",
    • "locationComment": "string"
    },
  • "bookings": [
    • {
      • "bookingId": "9a471128-954e-4e64-bde9-e8147015df89",
      • "orderId": "b3e1eced-f2bd-4d8c-9765-fbc9d1d222d5",
      • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
      • "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
      • "status": "Accepted",
      • "completed": true,
      • "note": "string",
      • "canceledAt": "2019-08-24T14:15:22Z",
      • "canceledByRole": "Athlete",
      • "cancellationReasonCode": "NotFeelingWell",
      • "cancellationReasonText": "string",
      • "createdAt": "2019-08-24T14:15:22Z"
      }
    ]
}

Delete an event

✨ Delete or cancel an event by its ID.

  • If agentId is provided: Cancel the event (support agent action)
  • If userId is provided: Delete the event if eligible (owner action). Event can only be deleted if it has no bookings or only canceled bookings
  • Either agentId or userId must be provided, but not both
Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>

Event ID

query Parameters
agentId
string <uuid>

Support agent ID

userId
string <uuid>

Event owner ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Get events within the next 24 hours.

✨ Gets events, alongside with their respective bookings, that are scheduled to happen in the next 24 hours.

Authorizations:
bearerHttpAuthentication
query Parameters
startTime
required
string <date-time>

Start of the time window (ISO 8601 format).

endTime
required
string <date-time>

End of the time window (ISO 8601 format).

limit
required
integer >= 1

Maximum number of events to return.

offset
required
integer >= 0

Number of events to skip before starting to collect the result set.

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
required
object (Event)
id
required
string <uuid>
timeslotId
required
string <uuid>
startTime
required
string <date-time>
endTime
required
string <date-time>
status
required
string (EventStatus)
Enum: "Scheduled" "Canceled" "InProgress" "Done"
coachId
required
string <uuid>
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Coach" "System"

Role of who canceled the event

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for event cancellation

cancellationReasonText
string or null
required
Array of objects (Booking)
Array
bookingId
required
string <uuid>
orderId
required
string <uuid>
userId
required
string <uuid>
eventId
required
string <uuid>
status
required
string (BookingStatus)
Enum: "Accepted" "Rejected" "Pending" "Canceled" "InDispute" "DisputeDone"
completed
required
boolean
note
string or null
canceledAt
string or null <date-time>
canceledByRole
string or null
Enum: "Athlete" "Coach" "System"

Who canceled the booking

cancellationReasonCode
string or null
Enum: "NotFeelingWell" "NoTime" "Other"

Reason code for booking cancellation

cancellationReasonText
string or null
createdAt
required
string <date-time>

Response samples

Content type
application/json
[
  • {
    • "event": {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "timeslotId": "303f94bb-a246-4fe8-83ac-06660759f3c6",
      • "startTime": "2019-08-24T14:15:22Z",
      • "endTime": "2019-08-24T14:15:22Z",
      • "status": "Scheduled",
      • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
      • "canceledAt": "2019-08-24T14:15:22Z",
      • "canceledByRole": "Coach",
      • "cancellationReasonCode": "NotFeelingWell",
      • "cancellationReasonText": "string"
      },
    • "bookings": [
      • {
        }
      ]
    }
]

Post Google Calendar credentials

✨ Post Google Calendar credentials. These will be used for syncing events to a user's calendar

Authorizations:
bearerHttpAuthentication
header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
userId
required
string <uuid>
accessToken
required
string
refreshToken
required
string

Responses

Request samples

Content type
application/json
{
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "accessToken": "string",
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Delete Google Calendar credentials

✨ Delete Google Calendar credentials for a user. This will remove the stored credentials and stop syncing events to the user's calendar.

Authorizations:
bearerHttpAuthentication
query Parameters
userId
required
string <uuid>

UUID of the user whose credentials should be deleted

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Check user deletion eligibility

✨ Check if a user can be safely deleted by verifying they have no future events (as coach) or bookings (as athlete)

Authorizations:
bearerHttpAuthentication
path Parameters
userId
required
string <uuid>

The user ID to check for deletion eligibility

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
hasFutureEvents
required
boolean

Whether the user has future events as a coach (excluding cancelled events)

hasFutureBookings
required
boolean

Whether the user has future bookings as an athlete (excluding canceled/rejected bookings)

canBeDeleted
required
boolean

Whether the user can be safely deleted (true if both hasFutureEvents and hasFutureBookings are false)

Response samples

Content type
application/json
{
  • "hasFutureEvents": true,
  • "hasFutureBookings": true,
  • "canBeDeleted": true
}

Delete all future events for a timeslot

✨ Deletes all future events associated with a specific timeslot.

  • Requires userId query parameter for authentication
  • Only deletes events where LOWER(time_range) > current time
  • All-or-nothing operation: fails if ANY future event has active bookings
  • User must be the owner (coach) of the timeslot
Authorizations:
bearerHttpAuthentication
path Parameters
timeslotId
required
string <uuid>

Timeslot ID

query Parameters
userId
required
string <uuid>

Coach/owner user ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Moderation

Content Moderation APIs

Moderate a post

✨ Mark a post as moderated with a specified reason

Authorizations:
bearerHttpAuthentication
header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
postId
required
string <uuid>

ID of the post to moderate

reason
required
string (PostModerationReason)
Enum: "nudity" "racism" "hate_speech" "harassment" "spam" "violence" "misinformation" "copyright" "inappropriate_content" "other"

Reason for post moderation

agentId
required
string <uuid>

ID of the user/agent moderating the post

comment
string or null

Optional comment about the moderation action

object

Additional metadata about the moderation action

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
  • "reason": "nudity",
  • "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
  • "comment": "string",
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
  • "reason": "nudity",
  • "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
  • "comment": "string",
  • "metadata": { }
}

Get moderated post details

✨ Get details of a moderated post by post ID

Authorizations:
bearerHttpAuthentication
path Parameters
postId
required
string <uuid> (PostId)
Example: 00000000-0000-1000-9000-510d9bb07630

ID of the post to get moderation details for

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
id
required
string <uuid> (Id) = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Database entity primary key uuid

postId
required
string <uuid>
reason
required
string (PostModerationReason)
Enum: "nudity" "racism" "hate_speech" "harassment" "spam" "violence" "misinformation" "copyright" "inappropriate_content" "other"

Reason for post moderation

agentId
required
string <uuid>

ID of the user/agent who moderated the post

comment
string or null

Optional comment from the moderator

required
object

Additional metadata about the moderation action

property name*
additional property
any

Response samples

Content type
application/json
{
  • "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
  • "reason": "nudity",
  • "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
  • "comment": "string",
  • "metadata": { }
}

Check if post is moderated

✨ Check whether a specific post is currently moderated

Authorizations:
bearerHttpAuthentication
path Parameters
postId
required
string <uuid> (PostId)
Example: 00000000-0000-1000-9000-510d9bb07630

ID of the post to check moderation status for

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
moderated
required
boolean

Whether the post is moderated or not

Response samples

Content type
application/json
{
  • "moderated": true
}

Moderate a comment

✨ Mark a comment as moderated with a specified reason

Authorizations:
bearerHttpAuthentication
header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
commentId
required
string <uuid>

ID of the comment to moderate

reason
required
string (PostModerationReason)
Enum: "nudity" "racism" "hate_speech" "harassment" "spam" "violence" "misinformation" "copyright" "inappropriate_content" "other"

Reason for post moderation

agentId
required
string <uuid>

ID of the user/agent moderating the comment

comment
string or null

Optional comment about the moderation action

object

Additional metadata about the moderation action

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
  • "reason": "nudity",
  • "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
  • "comment": "string",
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
  • "reason": "nudity",
  • "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
  • "comment": "string",
  • "metadata": { }
}

Get moderated comment details

✨ Get details of a moderated comment by comment ID

Authorizations:
bearerHttpAuthentication
path Parameters
commentId
required
string <uuid> (CommentId)
Example: 00000000-0000-1000-9000-510d9bb07630

ID of the comment to get moderation details for

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
id
required
string <uuid> (Id) = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Database entity primary key uuid

commentId
required
string <uuid>
reason
required
string (PostModerationReason)
Enum: "nudity" "racism" "hate_speech" "harassment" "spam" "violence" "misinformation" "copyright" "inappropriate_content" "other"

Reason for post moderation

agentId
required
string <uuid>

ID of the user/agent who moderated the comment

comment
string or null

Optional comment from the moderator

required
object

Additional metadata about the moderation action

property name*
additional property
any

Response samples

Content type
application/json
{
  • "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
  • "reason": "nudity",
  • "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
  • "comment": "string",
  • "metadata": { }
}

Check if comment is moderated

✨ Check whether a specific comment is currently moderated

Authorizations:
bearerHttpAuthentication
path Parameters
commentId
required
string <uuid> (CommentId)
Example: 00000000-0000-1000-9000-510d9bb07630

ID of the comment to check moderation status for

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
moderated
required
boolean

Whether the comment is moderated or not

Response samples

Content type
application/json
{
  • "moderated": true
}

Admin Panel

Admin Panel APIs for content moderation and management

Get flagged content feed

✨ Get paginated list of AI-flagged content (posts and comments) for admin review

Authorizations:
bearerHttpAuthentication
query Parameters
page
integer >= 0
Default: 0

Page number (0-indexed)

pageSize
integer [ 1 .. 100 ]
Default: 20

Number of items per page

userId
string <uuid>

Filter by user ID

startDate
string <date-time>

Filter by content created on or after this date

endDate
string <date-time>

Filter by content created on or before this date

pendingReview
boolean

Filter by review status (true = pending automatic moderation, false = already reviewed automatically or manually)

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
contentType
required
string
Enum: "post" "comment"

Type of content (post or comment)

contentId
required
string <uuid>

ID of the flagged content (post_id or comment_id)

userId
required
string <uuid>

ID of the user who created the content

text
string or null

Text content of the post or comment

toxicityScore
required
number or null <double>

AI confidence score for toxicity (0-1, higher = more toxic)

manualSafetyOverride
required
boolean

Whether an admin has manually reviewed this content

createdAt
required
string <date-time>

When the content was created

postId
string or null <uuid>

For comments, the ID of the parent post

photoIds
required
Array of strings <uuid> [ items <uuid > ]

Array of photo IDs if existent within a post

Response samples

Content type
application/json
[
  • {
    • "contentType": "post",
    • "contentId": "21aa1683-ca25-4edf-bc18-01ad04a4821b",
    • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
    • "text": "string",
    • "toxicityScore": 0.1,
    • "manualSafetyOverride": true,
    • "createdAt": "2019-08-24T14:15:22Z",
    • "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
    • "photoIds": [
      • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
      ]
    }
]

Set manual safety override for post

✨ Admin manually reviews and approves/rejects AI-flagged post

Authorizations:
bearerHttpAuthentication
path Parameters
postId
required
string <uuid>

ID of the post to review

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
boolean

Whether the content should be approved (true) or kept hidden (false)

Responses

Request samples

Content type
application/json
true

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Set manual safety override for comment

✨ Admin manually reviews and approves/rejects AI-flagged comment

Authorizations:
bearerHttpAuthentication
path Parameters
commentId
required
string <uuid>

ID of the comment to review

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
boolean

Whether the content should be approved (true) or kept hidden (false)

Responses

Request samples

Content type
application/json
true

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Get all content reports

✨ Get paginated list of user-submitted content reports for admin review

Authorizations:
bearerHttpAuthentication
query Parameters
page
integer >= 0
Default: 0

Page number (0-indexed)

pageSize
integer [ 1 .. 100 ]
Default: 20

Number of items per page

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array
contentReportId
required
string <uuid>

Unique identifier for the content report

reporterUserId
required
string <uuid>

ID of the user who submitted the report

postId
string or null <uuid>

ID of the reported post (null if reporting a comment)

commentId
string or null <uuid>

ID of the reported comment (null if reporting a post)

description
string or null

Optional text description explaining why this content was reported

createdAt
required
string <date-time>

Timestamp when the report was created

Response samples

Content type
application/json
[
  • {
    • "contentReportId": "c527aa36-25ca-4f63-9d7e-3b64677fdb7b",
    • "reporterUserId": "00ca1ff6-8db5-4431-a488-f1f7c1d8cca2",
    • "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
    • "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
    • "description": "string",
    • "createdAt": "2019-08-24T14:15:22Z"
    }
]

Get content report by ID

✨ Retrieve a specific content report by its ID

Authorizations:
bearerHttpAuthentication
path Parameters
reportId
required
string <uuid>

Content report ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
contentReportId
required
string <uuid>

Unique identifier for the content report

reporterUserId
required
string <uuid>

ID of the user who submitted the report

postId
string or null <uuid>

ID of the reported post (null if reporting a comment)

commentId
string or null <uuid>

ID of the reported comment (null if reporting a post)

description
string or null

Optional text description explaining why this content was reported

createdAt
required
string <date-time>

Timestamp when the report was created

Response samples

Content type
application/json
{
  • "contentReportId": "c527aa36-25ca-4f63-9d7e-3b64677fdb7b",
  • "reporterUserId": "00ca1ff6-8db5-4431-a488-f1f7c1d8cca2",
  • "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
  • "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z"
}

Delete content report

✨ Delete a content report by its ID

Authorizations:
bearerHttpAuthentication
path Parameters
reportId
required
string <uuid>

Content report ID

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response samples

Content type
application/json
{
  • "code": "validation",
  • "message": "string",
  • "endpoint": "string",
  • "requestId": "string"
}

Ratings

Ratings APIs

Get the rating of a given service

✨ Get the rating of a given service

Authorizations:
bearerHttpAuthentication
path Parameters
serviceId
required
string <uuid>
header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
averageRating
required
number <float> [ 0 .. 5 ]

The average rating value

totalRatings
required
integer >= 0

The total number of ratings received

Response samples

Content type
application/json
{
  • "averageRating": 5,
  • "totalRatings": 0
}

Get the rating of a given coach

✨ Get the rating of a given coach

Authorizations:
bearerHttpAuthentication
path Parameters
coachId
required
string <uuid>
header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
averageRating
required
number <float> [ 0 .. 5 ]

The average rating value

totalRatings
required
integer >= 0

The total number of ratings received

Response samples

Content type
application/json
{
  • "averageRating": 5,
  • "totalRatings": 0
}

Get user's rating for an event

✨ Get the rating that a specific user gave to an event

Authorizations:
bearerHttpAuthentication
path Parameters
eventId
required
string <uuid>
query Parameters
userId
required
string <uuid>

User ID who made the rating

Responses

Response Schema: application/json
integer [ 0 .. 5 ]

The rating value given by the user for this event

Response samples

Content type
application/json
5

Services

Services APIs

Get all services

✨ Get all services

Authorizations:
bearerHttpAuthentication
path Parameters
coachId
required
string <uuid>

ID of the Coach

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
Array of objects
Array
coachId
required
string <uuid>
serviceId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Service uuid

description
required
string
sportId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

subsportId
string or null <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

isDraft
boolean
inventory
string or null

Inventory details for the service

averageRating
required
number <float> [ 0 .. 5 ]

The average rating value

totalRatings
required
integer >= 0

The total number of ratings received

hasFutureEvents
required
boolean
count
required
integer (Count)

Page entries count

currentPage
integer (CurrentPage) >= 0
Deprecated
Default: 0

Current page

page
required
integer (PageNumber) >= 0
Default: 0

Page number

pageSize
integer (PageSize) [ 1 .. 100 ]
Deprecated
Default: 10

Page size

limit
required
integer (PageLimit) [ 1 .. 100 ]
Default: 10

Page limit

total
required
integer (TotalCount) >= 0
Default: 0

Total count

Response samples

Content type
application/json
{
  • "data": [
    • {
      • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
      • "serviceId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
      • "description": "string",
      • "sportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
      • "subsportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
      • "isDraft": true,
      • "inventory": "string",
      • "averageRating": 5,
      • "totalRatings": 0,
      • "hasFutureEvents": true
      }
    ],
  • "count": 10,
  • "currentPage": 0,
  • "page": 0,
  • "pageSize": 10,
  • "limit": 10,
  • "total": 1000
}

Create a new service

✨ Create a new service

Authorizations:
bearerHttpAuthentication
path Parameters
coachId
required
string <uuid>

ID of the Coach

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
description
required
string <= 2000 characters

Description of the service

sportId
required
string <uuid>

ID of the sport for this service

subsportId
string or null <uuid>

ID of the subsport (optional)

isDraft
boolean
Default: false

Whether this service is a draft

inventory
string or null

Inventory details for the service

Responses

Response Schema: application/json
coachId
required
string <uuid>
serviceId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Service uuid

description
required
string
sportId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

subsportId
string or null <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

isDraft
boolean
inventory
string or null

Inventory details for the service

averageRating
required
number <float> [ 0 .. 5 ]

The average rating value

totalRatings
required
integer >= 0

The total number of ratings received

hasFutureEvents
required
boolean

Request samples

Content type
application/json
{
  • "description": "string",
  • "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
  • "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
  • "isDraft": false,
  • "inventory": "string"
}

Response samples

Content type
application/json
{
  • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
  • "serviceId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "description": "string",
  • "sportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "subsportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "isDraft": true,
  • "inventory": "string",
  • "averageRating": 5,
  • "totalRatings": 0,
  • "hasFutureEvents": true
}

Get service by id

✨ Get service by id

Authorizations:
bearerHttpAuthentication
path Parameters
coachId
required
string <uuid>

ID of the Coach

serviceId
required
string <uuid>

ID of the Coach Service

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
coachId
required
string <uuid>
serviceId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Service uuid

description
required
string
sportId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

subsportId
string or null <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

isDraft
boolean
inventory
string or null

Inventory details for the service

averageRating
required
number <float> [ 0 .. 5 ]

The average rating value

totalRatings
required
integer >= 0

The total number of ratings received

hasFutureEvents
required
boolean

Response samples

Content type
application/json
{
  • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
  • "serviceId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "description": "string",
  • "sportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "subsportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "isDraft": true,
  • "inventory": "string",
  • "averageRating": 5,
  • "totalRatings": 0,
  • "hasFutureEvents": true
}

Update service

✨ Update service

Authorizations:
bearerHttpAuthentication
path Parameters
coachId
required
string <uuid>

ID of the Coach

serviceId
required
string <uuid>

ID of the Coach Service

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
description
required
string <= 2000 characters

Description of the service

sportId
required
string <uuid>

ID of the sport for this service

subsportId
string or null <uuid>

ID of the subsport (optional)

isDraft
boolean

Whether this service is a draft

inventory
string or null

Inventory details for the service

Responses

Response Schema: application/json
coachId
required
string <uuid>
serviceId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Service uuid

description
required
string
sportId
required
string <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

subsportId
string or null <uuid> = 36 characters ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...

Sport Type UUID

isDraft
boolean
inventory
string or null

Inventory details for the service

averageRating
required
number <float> [ 0 .. 5 ]

The average rating value

totalRatings
required
integer >= 0

The total number of ratings received

hasFutureEvents
required
boolean

Request samples

Content type
application/json
{
  • "description": "string",
  • "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
  • "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
  • "isDraft": true,
  • "inventory": "string"
}

Response samples

Content type
application/json
{
  • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
  • "serviceId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "description": "string",
  • "sportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "subsportId": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
  • "isDraft": true,
  • "inventory": "string",
  • "averageRating": 5,
  • "totalRatings": 0,
  • "hasFutureEvents": true
}

Delete service

✨ Delete service

Authorizations:
bearerHttpAuthentication
path Parameters
coachId
required
string <uuid>

ID of the Coach

serviceId
required
string <uuid>

ID of the Coach Service

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Responses

Response Schema: application/json
serviceId
string <uuid>

Response samples

Content type
application/json
{
  • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9"
}

Sessions

Session APIs

Create a new session with timeslots

✨ Create a new session with associated timeslots for a specific service.

Authorizations:
bearerHttpAuthentication
query Parameters
currentUserId
required
string <uuid>

UUID of the user creating the session

header Parameters
traceparent
string^[0-9a-f]{2}-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-...
Example: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

W3C Trace Context traceparent header for request tracing

Request Body schema: application/json
required
serviceId
required
string <uuid>
startDate
required
string <date-time>

The start date and time for the session timeslot. While this field uses the date-time format, only the date component is utilized for scheduling purposes. The timezone information must be preserved and is required for accurate session scheduling across different geographical locations.

stopDate
required
string <date-time>

The stop date and time for the session timeslot, only relevant for repeating sessions. While this field uses the date-time format, only the date component is utilized for scheduling purposes. The timezone information must be preserved and is required for accurate session scheduling across different geographical locations.

repeatDays
required
Array of strings (Weekday)
Items Enum: "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday"
required
Array of objects (SessionTimeslotCreate) non-empty
Array (non-empty)
startTime
required
string <date-time>

The start date and time for the timeslot. While this field uses the date-time format, only the time component is utilized for scheduling purposes. The timezone information must be preserved and is required for accurate session scheduling across different geographical locations.

durationMinutes
required
integer >= 30
numberOfParticipants
required
integer >= 1
addressId
required
string <uuid>
ageStart
required
integer >= 1
ageEnd
required
integer >= 1
price
required
integer >= 1
currency
required
string (Currency)
Value: "RUB"
level
required
string (TimeslotLevel)
Enum: "Any" "Beginner" "Medium" "Pro"
eligibility
required
string (TimeslotEligibility)
Enum: "All" "Men" "Women"

Responses

Request samples

Content type
application/json
{
  • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
  • "startDate": "2019-08-24T14:15:22Z",
  • "stopDate": "2019-08-24T14:15:22Z",
  • "repeatDays": [
    • "Monday"
    ],
  • "timeslots": [
    • {
      • "startTime": "2019-08-24T14:15:22Z",
      • "durationMinutes": 30,
      • "numberOfParticipants": 1,
      • "addressId": "785d1fc4-8ab5-48f1-8685-117cac9865d6",
      • "ageStart": 1,
      • "ageEnd": 1,
      • "price": 1,
      • "currency": "RUB",
      • "level": "Any",
      • "eligibility": "All"
      }
    ]
}

Response samples

Content type
application/json
{
  • "session": {
    • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
    • "startDate": "2019-08-24T14:15:22Z",
    • "repeatDays": [
      • "string"
      ],
    • "stopDate": "2019-08-24T14:15:22Z"
    },
  • "timeslots": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "sessionId": "f6567dd8-e069-418e-8893-7d22fcf12459",
      • "startTime": "string",
      • "endTime": "string",
      • "numberOfParticipants": 0,
      • "slotType": "string",
      • "ageStart": 0,
      • "ageEnd": 0,
      • "duration": 0,
      • "price": 0,
      • "priceCurrency": "RUB",
      • "public": true,
      • "level": "string",
      • "eligibility": "string",
      • "addressId": "785d1fc4-8ab5-48f1-8685-117cac9865d6"
      }
    ],
  • "events": [
    • {
      • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      • "timeslotId": "303f94bb-a246-4fe8-83ac-06660759f3c6",
      • "startTime": "2019-08-24T14:15:22Z",
      • "endTime": "2019-08-24T14:15:22Z",
      • "status": "Scheduled",
      • "coachId": "32b8fa03-4065-4b2f-b4b6-8ce1e570e87e",
      • "canceledAt": "2019-08-24T14:15:22Z",
      • "canceledByRole": "Coach",
      • "cancellationReasonCode": "NotFeelingWell",
      • "cancellationReasonText": "string"
      }
    ]
}