Download OpenAPI specification:
LE-KO Events API
✨ Cancel a specific booking with automatic role determination based on user ID
| bookingId required | string <uuid> The booking ID to cancel |
| 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 |
| 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 |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "cancellationReasonCode": "NotFeelingWell",
- "cancellationReasonText": "string"
}{- "errors": [
- {
- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}
]
}✨ Dispute a booking.
| bookingId required | string <uuid> The booking ID. |
| 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 |
| disputerUserId required | string <uuid> |
| reasonId required | string <uuid> |
| comment | string |
required | object (Booking) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Event) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Timeslot) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Session) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Service) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
{- "disputerUserId": "9ffc4d67-18e5-4a3e-994b-bffb2d118ce0",
- "reasonId": "c577cf67-9268-488b-9f16-1c6585ec43bf",
- "comment": "string"
}{- "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.
| bookingId required | string <uuid> The booking ID. |
| 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 |
| disputerUserId required | string <uuid> | ||||||||||||||||||||||||
| comment | string | ||||||||||||||||||||||||
required | object (BookingDisputeReason) | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
required | object (Booking) | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
{- "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.
| type | string (BookingDisputeReasonType) Enum: "Athlete" "Coach" Filter dispute reasons by type |
| 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 |
| id required | string <uuid> |
| category required | string |
| title required | string |
| description required | string |
| type required | string (BookingDisputeReasonType) Enum: "Athlete" "Coach" |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "category": "string",
- "title": "string",
- "description": "string",
- "type": "Athlete"
}
]✨ Retrieves all bookings associated with a specific booking order ID, including complete details of events, timeslots, sessions, services, and addresses.
| orderId required | string <uuid> The booking order ID |
| 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 |
required | object (Booking) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Event) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Timeslot) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Session) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Service) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
[- {
- "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"
}
}
]✨ Gets addresses by filters. You must specify either userId or a combination of lat, lng, and distanceMeters to filter the addresses.
| 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 |
| 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 |
| 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 |
[- {
- "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. 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.
| 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 |
| userId required | string <uuid> |
| formattedAddress required | string |
| entrance | string |
| floor | string |
| locationComment | string |
| type | string (AddressType) Value: "Main" |
| 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 |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "formattedAddress": "string",
- "entrance": "string",
- "floor": "string",
- "locationComment": "string",
- "type": "Main"
}{- "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 based on a query string.
| 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 |
| 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 |
| formattedAddress required | string |
| street required | string or null |
| region required | string or null |
| city required | string or null |
[- {
- "formattedAddress": "string",
- "street": "string",
- "region": "string",
- "city": "string"
}
]✨ 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.
| query required | string non-empty The query string to suggest addresses |
| 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 |
| 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 |
[- {
- "formattedAddress": "string",
- "latitude": 0.1,
- "longitude": 0.1,
- "street": "string",
- "region": "string",
- "city": "string"
}
]✨ 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.
| latitude required | number <double> [ -90 .. 90 ] Latitude to reverse geocode. |
| longitude required | number <double> [ -180 .. 180 ] longitude to reverse geocode. |
| 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 |
| 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 |
{- "formattedAddress": "string",
- "latitude": 0.1,
- "longitude": 0.1,
- "street": "string",
- "region": "string",
- "city": "string"
}✨ Retrieve a specific address using its unique ID.
| 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 |
| 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 |
| 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 |
{- "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 by replacing all fields.
| 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 |
| 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 |
| userId required | string <uuid> |
| formattedAddress required | string |
| entrance | string |
| floor | string |
| locationComment | string |
| type | string (AddressType) Value: "Main" |
| 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 |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "formattedAddress": "string",
- "entrance": "string",
- "floor": "string",
- "locationComment": "string",
- "type": "Main"
}{- "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 by ID.
| 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 |
| currentUserId required | string <uuid> The user of the ID attempting this operation |
| 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 |
{- "errors": [
- {
- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}
]
}✨ Sets the type of an address and unsets any other addresses of said type for the same user
| addressId required | string <uuid> The address ID |
| 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 |
| currentUserId required | string <uuid> |
| addressType required | string (AddressType) Value: "Main" |
| 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 |
{- "currentUserId": "4750c4be-4caf-4d36-8460-9ae0cc06fb88",
- "addressType": "Main"
}{- "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"
}✨ 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.
| 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 |
| 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 |
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]✨ Get grouped booking and event data
| coachId required | string <uuid> |
| 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) |
| 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 |
required | object (Event) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | Array of objects (Booking) | ||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||
required | object (Timeslot) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Service) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
[- {
- "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": [
- {
- "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"
}
], - "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"
}
}
]✨ Gets aggregated data for an event
| eventId required | string <uuid> |
| 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). |
| 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 |
required | object (Event) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Timeslot) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Session) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Service) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Address) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| 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
| |||||||||||||||||||||||||||||||
{- "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": [
- {
- "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"
}, - "bookingDispute": {
- "disputerUserId": "9ffc4d67-18e5-4a3e-994b-bffb2d118ce0",
- "comment": "string",
- "reason": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "category": "string",
- "title": "string",
- "description": "string",
- "type": "Athlete"
}
}
}
]
}
]
}✨ Restore a deleted event
| eventId required | string <uuid> Event ID |
| 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 |
{- "errors": [
- {
- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}
]
}✨ Cancels an event
| eventId required | string <uuid> Event ID |
| 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 |
| 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 |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "cancellationReasonCode": "NotFeelingWell",
- "cancellationReasonText": "string"
}{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ 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.
| eventId required | string <uuid> The event ID to dismiss |
| coachId required | string <uuid> The coach ID (must match the event owner) |
| 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 |
{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Rate an event by its ID, as well as the booking ID
| eventId required | string <uuid> Event ID |
| 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 |
| bookingId required | string <uuid> |
| userId required | string <uuid> |
| rating required | integer [ 0 .. 5 ] |
{- "bookingId": "9a471128-954e-4e64-bde9-e8147015df89",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "rating": 5
}{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Get event with complete details and bookings
| eventId required | string <uuid> Event ID |
| 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 |
required | object (Event) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Timeslot) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Session) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Service) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | object (Address) | ||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
required | Array of objects (Booking) | ||||||||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||||||||
{- "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 or cancel an event by its ID.
agentId is provided: Cancel the event (support agent action)userId is provided: Delete the event if eligible (owner action). Event can only be deleted if it has no bookings or only canceled bookingsagentId or userId must be provided, but not both| eventId required | string <uuid> Event ID |
| agentId | string <uuid> Support agent ID |
| userId | string <uuid> Event owner ID |
| 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 |
{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Gets events, alongside with their respective bookings, that are scheduled to happen in the next 24 hours.
| 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. |
| 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 |
required | object (Event) | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
required | Array of objects (Booking) | ||||||||||||||||||||||||
Array
| |||||||||||||||||||||||||
[- {
- "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": [
- {
- "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"
}
]
}
]✨ Post Google Calendar credentials. These will be used for syncing events to a user's calendar
| 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 |
| userId required | string <uuid> |
| accessToken required | string |
| refreshToken required | string |
{- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
- "accessToken": "string",
- "refreshToken": "string"
}{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Delete Google Calendar credentials for a user. This will remove the stored credentials and stop syncing events to the user's calendar.
| userId required | string <uuid> UUID of the user whose credentials should be deleted |
| 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 |
{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Check if a user can be safely deleted by verifying they have no future events (as coach) or bookings (as athlete)
| userId required | string <uuid> The user ID to check for deletion eligibility |
| 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 |
| 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) |
{- "hasFutureEvents": true,
- "hasFutureBookings": true,
- "canBeDeleted": true
}✨ Deletes all future events associated with a specific timeslot.
| timeslotId required | string <uuid> Timeslot ID |
| userId required | string <uuid> Coach/owner user ID |
| 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 |
{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Mark a post as moderated with a specified reason
| 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 |
| 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 | |||
| |||
{- "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
- "reason": "nudity",
- "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
- "comment": "string",
- "metadata": { }
}{- "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
- "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
- "reason": "nudity",
- "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
- "comment": "string",
- "metadata": { }
}✨ Get details of a moderated post by post ID
| postId required | string <uuid> (PostId) Example: 00000000-0000-1000-9000-510d9bb07630 ID of the post to get moderation details for |
| 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 |
| 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 | ||
| |||
{- "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
- "postId": "1d33c5d7-f0cb-41cc-a647-907f16832fc3",
- "reason": "nudity",
- "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
- "comment": "string",
- "metadata": { }
}✨ Check whether a specific post is currently moderated
| postId required | string <uuid> (PostId) Example: 00000000-0000-1000-9000-510d9bb07630 ID of the post to check moderation status for |
| 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 |
| moderated required | boolean Whether the post is moderated or not |
{- "moderated": true
}✨ Mark a comment as moderated with a specified reason
| 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 |
| 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 | |||
| |||
{- "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
- "reason": "nudity",
- "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
- "comment": "string",
- "metadata": { }
}{- "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
- "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
- "reason": "nudity",
- "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
- "comment": "string",
- "metadata": { }
}✨ Get details of a moderated comment by comment ID
| commentId required | string <uuid> (CommentId) Example: 00000000-0000-1000-9000-510d9bb07630 ID of the comment to get moderation details for |
| 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 |
| 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 | ||
| |||
{- "id": "4b72d209-debd-45e1-93cc-7640bf7d39bf",
- "commentId": "ee0469af-2fa1-4b7e-b5f1-8e711a95821b",
- "reason": "nudity",
- "agentId": "bc309ecf-5f66-4057-93c5-6611cc9cb7b2",
- "comment": "string",
- "metadata": { }
}✨ Check whether a specific comment is currently moderated
| commentId required | string <uuid> (CommentId) Example: 00000000-0000-1000-9000-510d9bb07630 ID of the comment to check moderation status for |
| 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 |
| moderated required | boolean Whether the comment is moderated or not |
{- "moderated": true
}✨ Get paginated list of AI-flagged content (posts and comments) for admin review
| 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) |
| 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 |
| 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 |
[- {
- "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"
]
}
]✨ Admin manually reviews and approves/rejects AI-flagged post
| postId required | string <uuid> ID of the post to review |
| 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 |
Whether the content should be approved (true) or kept hidden (false)
true{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Admin manually reviews and approves/rejects AI-flagged comment
| commentId required | string <uuid> ID of the comment to review |
| 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 |
Whether the content should be approved (true) or kept hidden (false)
true{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Get paginated list of user-submitted content reports for admin review
| page | integer >= 0 Default: 0 Page number (0-indexed) |
| pageSize | integer [ 1 .. 100 ] Default: 20 Number of items per page |
| 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 |
| 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 |
[- {
- "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"
}
]✨ Retrieve a specific content report by its ID
| reportId required | string <uuid> Content report ID |
| 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 |
| 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 |
{- "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 a content report by its ID
| reportId required | string <uuid> Content report ID |
| 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 |
{- "code": "validation",
- "message": "string",
- "endpoint": "string",
- "requestId": "string"
}✨ Get the rating of a given service
| serviceId required | string <uuid> |
| 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 |
| averageRating required | number <float> [ 0 .. 5 ] The average rating value |
| totalRatings required | integer >= 0 The total number of ratings received |
{- "averageRating": 5,
- "totalRatings": 0
}✨ Get the rating of a given coach
| coachId required | string <uuid> |
| 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 |
| averageRating required | number <float> [ 0 .. 5 ] The average rating value |
| totalRatings required | integer >= 0 The total number of ratings received |
{- "averageRating": 5,
- "totalRatings": 0
}✨ Get the rating that a specific user gave to an event
| eventId required | string <uuid> |
| userId required | string <uuid> User ID who made the rating |
The rating value given by the user for this event
5✨ Get all services
| coachId required | string <uuid> ID of the Coach |
| 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 |
Array of objects | |||||||||||||||||||||
Array
| |||||||||||||||||||||
| 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 | ||||||||||||||||||||
{- "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
| coachId required | string <uuid> ID of the Coach |
| 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 |
| 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 |
| 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 |
{- "description": "string",
- "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
- "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
- "isDraft": false,
- "inventory": "string"
}{- "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
| coachId required | string <uuid> ID of the Coach |
| serviceId required | string <uuid> ID of the Coach Service |
| 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 |
| 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 |
{- "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
| coachId required | string <uuid> ID of the Coach |
| serviceId required | string <uuid> ID of the Coach Service |
| 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 |
| 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 |
| 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 |
{- "description": "string",
- "sportId": "d853e53d-2208-46fd-b120-7bf69f55862f",
- "subsportId": "c4efa15b-3c3c-4761-b606-13bda2cc83a9",
- "isDraft": true,
- "inventory": "string"
}{- "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
| coachId required | string <uuid> ID of the Coach |
| serviceId required | string <uuid> ID of the Coach Service |
| 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 |
| serviceId | string <uuid> |
{- "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9"
}✨ Create a new session with associated timeslots for a specific service.
| currentUserId required | string <uuid> UUID of the user creating the session |
| 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 |
| 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)
| |||||||||||||||||||||
{- "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"
}
]
}{- "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"
}
]
}