Bookings
Court reservations, sessions, and booking management.
Filter coaches by type
["HUMAN","ROBOT"]An optional parameter to tell the User is agreeing the "Terms" along with the booking request.
An optional parameter to tell the User is agreeing the "Liability waiver" along with the booking request.
Returns a Booking
An optional parameter to tell the User is agreeing the "Terms" along with the booking request.
An optional parameter to tell the User is agreeing the "Liability waiver" along with the booking request.
Returns an ErrorDto in case of missing or incorrect request parameter
Returns an ErrorDto in case of a lack of permissions to perform the requested action
Returns an ErrorDto in case of validation errors or failures.
Possible error codes are:EB001: The coupon {{couponCode}} is not valid.EB002: The coupon code {{couponCode}} is not valid.EB003: The coupon {{couponCode}} is not applicable to {{podDisplayName}}.EB020: The coupon {{couponCode}} cannot be reused.EB021: The coupon {{couponCode}} is valid only for the first booking.EB022: The coupon {{couponCode}} is not valid for the selected dates.EB023: The coupon {{couponCode}} is not applicable to reservations.EB004: The amount of virtual credits cannot be negative.EB005: The current account balance does not have virtual credits.EB006: The amount of virtual credits exceeds the account balance.EB007: You're not allowed to book free of charge reservations.EB008: Only admins are authorized to create events.EB009: Events must be booked as FREE_OF_CHARGE booking mode.EB010: Events must have an admission rate defined, even if it's zero.EB011: Invalid total spots number.EB012: Invalid team size number.EB013: Only REGULAR, PRIVATE and OPERATIONS events can have CLOSED admission.EB014: REGULAR and PRIVATE events must have CLOSED admission.EB000: This action requires a logged in user.EB015: There's no payment method set up.EB016: The payment method configured is not active. Please, add a new one.EB017: User phone number is required.EB018: Terms of Service agreement is required.EB019: Invalid free signup cancellation horizon.EB025: You're not allowed to book cash reservations.EB026: There was an issue processing the payment for your membership. Please update your payment method to continue booking.EB027: There was an issue processing the payment for your group membership. Please ask the person paying for the membership to update their payment details to continue using your membership.EB024: Liability waiver acceptance is required.EB028: Liability Waiver agreement not found. Please contact support.EB030: No courts left at the pod during the selected time.EB031: There's a conflicting reservation at the selected time.EB032: The selected {{coachTerm}} is not available for this session.EB033: Invalid session subtype PRIVATE, as there is a {{coachTerm}} selected.EB034: Invalid session subtype COACHING, as there is no {{coachTerm}} selected.EB035: Ooops! This booking takes you over the limit of {{maxFreeOffPeakReservationsHours}} hours of free upcoming reservations. You currently have {{userFreeOffPeakReservationsHours}} hours of free upcoming reservations. Please modify in order to stay below.EB036: Booking can be made for a minimum of 1 hourEB037: Booking must start sharp on the hourEB038: Booking time beyond the allowed horizonEB039: Booking can be made for a maximum of {{count}} hours.EB040: Unable to proceed with the current payment method. Please try using a different one.EB041: Prepaid cards are not accepted, please use a credit or debit card.EB042: You need to cover the full amount with {{virtualCreditsTerm}}.EB043: Membership is required to make bookings.EB050: One or more Reservation Play Passes aren't valid for this purchase.EB051: One or more Reservation Play Passes have expired.EB052: Only {{maxDailyReservationPasses}} Reservation Play Passes can be redeemed per day. You can continue booking by removing your Play Pass.EB060: You reached the maximum of {{count}} future reservations.EB061: Multiple bookings aren't allowed.BCA00: The selected time is temporarily unavailable, either come back later or pick a different date.BCA01: There is no room to assign this reservation in contiguous slots, split {{courtsTerm}} is not allowed.BCA02: There is no room to assign this reservation, please pick a different date.RA001: Could not confirm the payment. Please try again.
POST /apis/v2/bookings HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
user-agent: text
Content-Type: application/json
Accept: */*
Content-Length: 2064
{
"type": "PREVIEW",
"eventSubtype": "OPERATIONS",
"eventCustomType": "text",
"eventStatus": "DRAFT",
"eventName": "text",
"eventDescription": "text",
"eventFeatures": [
"WAITLIST"
],
"tournamentDivision": {
"provider": "SWISH",
"swish": {
"eventFormat": "rotating_partners_round_robin",
"gameId": "game123",
"editPlayersPath": "rotating-partners-round-robin"
},
"podplay": {
"eventFormat": "round_robin",
"gameId": "game123",
"url": "https://tournaments.podplay.app/admin/tournaments/game123"
},
"lastSyncedAt": "2025-07-09T17:32:26.800Z",
"visibility": "VISIBLE"
},
"totalTeams": 1,
"teamSize": 1,
"maxGuests": 1,
"admission": "OPEN",
"admissionRate": {
"regular": 1,
"membersDefault": 1,
"memberships": {
"items": [
{
"membership": {
"id": "text"
},
"rate": 1
}
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
},
"chargingStrategy": "spot+"
},
"admissionDate": {
"regular": "2026-01-01T00:00:00.000Z",
"membersDefault": "2026-01-01T00:00:00.000Z",
"memberships": {
"items": [
{
"membership": {
"id": "text"
},
"date": "2026-01-01T00:00:00.000Z"
}
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
}
},
"admissionRating": {
"minRating": 1,
"maxRating": 1,
"type": "text"
},
"admissionKids": "OPEN",
"allowedMemberships": {
"items": [
"text"
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
},
"coachRate": 1,
"freeSignupCancellationHorizonHours": 1,
"picture": {
"id": "text"
},
"tags": [
"text"
],
"visibility": "LISTED",
"items": [
{
"session": {
"id": "text"
},
"sessionTable": {
"id": "text"
},
"sessionCoach": {
"id": "text"
},
"sessionGuests": {
"id": "text"
}
}
],
"couponCode": "text",
"virtualCredits": 1,
"bookingMode": "USER_BOOKED",
"paymentMethod": "CARD",
"termsAgreed": true,
"liabilityWaiverAgreed": true,
"owner": {
"id": "text"
},
"createAsSeries": true,
"seriesPriceSettings": {
"full": {
"members": {
"rate": 1,
"overrides": {
"items": [
{
"membership": {
"id": "text"
},
"rate": 1,
"_links": {}
}
],
"_total": 1
}
},
"nonMembers": {
"rate": 1
}
},
"unit": {
"members": {
"rate": 1,
"overrides": {
"items": [
{
"membership": {
"id": "text"
},
"rate": 1,
"_links": {}
}
],
"_total": 1
}
},
"nonMembers": {
"rate": 1
}
}
},
"chargeStrategy": "BILL_SPLIT",
"passesStrategy": "USE_ALL",
"recurrence": {
"id": "text",
"cadence": "day",
"daysOfWeek": [
1
],
"untilDate": "2026-01-01T00:00:00.000Z"
},
"_links": {}
}{
"id": "text",
"type": "PREVIEW",
"status": "DRAFT",
"eventSubtype": "OPERATIONS",
"eventCustomType": "text",
"eventStatus": "DRAFT",
"eventName": "text",
"eventDescription": "text",
"eventFeatures": [
"WAITLIST"
],
"tournamentDivision": {
"id": "7229d7d5-5581-4d86-975f-5b7efc9b00e9",
"tournament": "7229d7d5-5581-4d86-975f-5b7efc9b00e9",
"provider": "SWISH",
"swish": {
"eventFormat": "rotating_partners_round_robin",
"gameId": "game123",
"editPlayersPath": "rotating-partners-round-robin"
},
"podplay": {
"eventFormat": "round_robin",
"gameId": "game123",
"url": "https://tournaments.podplay.app/admin/tournaments/game123"
},
"status": "DRAFT",
"createdAt": "2025-07-09T17:32:26.800Z",
"event": "7229d7d5-5581-4d86-975f-5b7efc9b00e9",
"lastSyncedAt": "2025-07-09T17:32:26.800Z",
"visibility": "VISIBLE",
"_links": {}
},
"totalTeams": 1,
"teamSize": 1,
"maxGuests": 1,
"admission": "OPEN",
"admissionRate": {
"regular": 1,
"member": 1,
"membersDefault": 1,
"memberships": {
"items": [
{
"membership": {
"id": "text"
},
"rate": 1
}
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
},
"chargingStrategy": "spot+"
},
"admissionDate": {
"regular": "2026-01-01T00:00:00.000Z",
"member": "2026-01-01T00:00:00.000Z",
"membersDefault": "2026-01-01T00:00:00.000Z",
"memberships": {
"items": [
{
"membership": {
"id": "text"
},
"date": "2026-01-01T00:00:00.000Z"
}
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
}
},
"admissionRating": {
"minRating": 1,
"maxRating": 1,
"type": "text"
},
"admissionKids": "OPEN",
"allowedMemberships": {
"items": [
"text"
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
},
"coachRate": 1,
"freeSignupCancellationHorizonHours": 1,
"picture": {
"id": "text"
},
"tags": [
"text"
],
"visibility": "LISTED",
"items": [
{
"session": {
"id": "text"
},
"sessionTable": {
"id": "text"
},
"sessionCoach": {
"id": "text"
},
"sessionGuests": {
"id": "text"
},
"errors": [
"text"
]
}
],
"coupon": {
"id": "text",
"code": "text",
"discountType": "AMOUNT_OFF",
"value": 1,
"_links": {
"self": {
"href": "text"
}
}
},
"order": {
"id": "text"
},
"summary": {
"events": {
"items": [
"text"
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
},
"reservations": [
{
"reservation": {
"id": "text",
"startTime": "2026-01-01T00:00:00.000Z",
"endTime": "2026-01-01T00:00:00.000Z",
"tableAssignment": "PENDING",
"sessions": {
"items": [
{
"id": "text",
"session": {
"id": "text"
},
"coupon": {
"id": "text"
},
"charge": {
"id": "text"
},
"_links": {}
}
],
"_total": 1,
"_links": {
"self": {
"href": "text"
}
}
},
"pod": {
"id": "text"
},
"table": {
"id": "text"
},
"coach": {
"id": "text"
},
"guests": 1,
"charges": {
"_total": 1
},
"quickReplays": {
"_total": 1
},
"customReplays": {
"_total": 1
},
"_links": {}
},
"rate": 1,
"baseRate": 1,
"tableRate": 1,
"guestsRate": 1,
"coachRate": 1,
"admissionRate": 1,
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}
],
"currency": "text",
"series": {
"id": "text"
},
"subtotal": 1,
"taxes": [
{
"name": "text",
"amount": 1,
"percentage": 1
}
],
"couponDiscount": 1,
"coachingDiscount": 1,
"virtualCredits": 1,
"total": 1,
"maxChargableAmount": 1,
"dayPass": {
"id": "text",
"displayName": "text",
"rate": 1
},
"passes": {
"items": [
{
"id": {},
"available": 1,
"quantity": 1,
"displayName": "text",
"displayNamePlural": "text",
"rate": 1
}
],
"_total": 1,
"_links": {}
},
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
],
"messages": [
{
"code": "text",
"message": "text"
}
]
},
"chargeStrategy": "BILL_SPLIT",
"passesStrategy": "USE_ALL",
"_links": {}
}Last updated
Was this helpful?

