IntroductionAuthenticationSelecting dataFilteringSorting & pagination

Core resources

Api requestsAttribute optionsAttributesBooking detailsBooking updatesBookingsCalendar event notesCalendar event updatesCalendar eventsCapacitiesCapacity group dependenciesCapacity groupsContact bookingsContactsCoupon productsCoupon servicesCoupon usesCouponsExternal calendarsInvoicesLine item taxesLine itemsMembersMessage eventsMessage templatesMessagesOrganization calendar logsOrganizationsPaddle plansPaddle subscriptionsPaymentsPermissionsPrice calendar entriesPricelabs pricingPricing widgetsProduct attribute optionsProduct calendar logsProduct message templatesProduct reply to addressesProduct servicesProductsRefundsReply to addressesReview productsReview widget listingsReview widgetsReviewsSeasonsServicesSite listingsSite nav itemsSite pagesSite viewsSitesTask assigneesTask template assigneesTask templatesTasksTaxesUser profilesWebhook notificationsWebhooksWidget analyticsWidget listingsWidgets

Booking flow

Query availabilitySearch availabilityBook

Book

Perform a booking by providing the product, interval, occupancy and form values. If the booking is successful, a reference and booking ID will be returned. If a payment URL is included in the response, the user should be redirected to that URL to complete the booking.

Body

coupon_codesArray<string>

The coupon codes entered for the booking.

currencyCurrency

The currency to use for the booking. Defaults to the product's currency. See the widget docs for the allowed values.

form_valuesRecord<uuid, uuid | text | number | boolean>

Values for each of the form fields. The keys refer to services.id, the values should be valid values for each of these services.

intervalrequired{ start: string, end: string }

The interval to book.

languageLanguage

The user's preferred language.

occupancyrequiredRecord<uuid, integer>

The occupancy for each capacity group. The keys refer to capacity_groups.id, the values are the number of guests for that group.

product_idrequireduuid

The identifier of the product to book.

redirect_urluuid

The URL to redirect the user to after the booking is completed.

show_pending_as"CANCELLED" | "TENTATIVE" | "CONFIRMED"

How to interpret pending events when checking if the booking is possible. Defaults to TENTATIVE

Responses

201

Information identifying the booking. If a payment URL is set, the user should be redirected to that URL to complete the booking.

TypeScript

{
  booking_id: uuid;
  payment_url: string | null;
  reference: uuid;
}
POST /book
curl -X POST "https://api.bookingmood.com/v1/book" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "interval": {
      "start": "2026-03-12",
      "end": "2026-03-16"
    },
    "occupancy": {
      "00000000-0000-0000-0000-000000000000": 1
    },
    "product_id": "00000000-0000-0000-0000-000000000000"
  }'
Example response

JSON

{
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "payment_url": null,
  "reference": "00000000-0000-0000-0000-000000000000"
}