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 availability
Book

Search availability

Find the availability of multiple products for a given date range. Filter by occupancy and attribute options.

Body

interval{ start: string, end: string }

The interval to search for availability in. If not provided, search will check each product for a match with the other parameters.

occupancyRecord<uuid, integer>

Filter search results by occupancy.

option_idsArray<uuid>

Filter search results by attribute_options.

show_booked_as"booked" | "unavailable"

How to interpret booked events. Defaults to unavailable

show_closed_as"closed" | "unavailable"

How to interpret closed events. Defaults to unavailable

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

How to interpret pending events. Defaults to TENTATIVE

Responses

200
Search results

TypeScript

Array<{
  productId: uuid;
  match: boolean;
  occupancyMatches: boolean;
  optionsMatch: boolean;
  availability: "available" | "tentative" | "unavailable" | "booked" | "reserved";
  price: { min: number, max: number } | null;
}>
POST /search
curl -X POST "https://api.bookingmood.com/v1/search" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{}'
Example response

JSON

[
  {
    "productId": "00000000-0000-0000-0000-000000000000",
    "match": false,
    "occupancyMatches": true,
    "optionsMatch": true,
    "availability": "unavailable",
    "price": {
      "min": 100,
      "max": 200
    }
  }
]