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

Products

Units that can be booked individually

The product object

Attributes

iduuid

Unique identifier

ac_idtext | null

Identifier for products imported from AvailabilityCalendar.com

organization_iduuid
organizations.id

Identifier of the organization this product is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

deleted_attimestamp with time zone | null

Timestamp at which the unit was deleted

approximate_addresstext

Approximate address of the unit

approximate_coordinatesCoordinates | null

Coordinates of the approximate address

cancel_after_initial_payment_errorboolean
confirm_after_initial_paymentboolean

Whether to automatically confirm the booking after the initial payment. Only applies when interaction is request

confirmation_messageMultiLanguageString

Message to show to the customer after submitting a booking from a widget or website

confirmation_message_titleMultiLanguageString
cooldown_timeinteger

Minimum number of days between bookings

ctaMultiLanguageString

Call to action shown at the bottom of the booking form

currencyCurrency

Currency bookings are made in

depositjsonb | null

Deposit charged for rent

descriptionMultiLanguageString

Localized description

exact_addresstext

Exact address of the unit

exact_coordinatesCoordinates | null

Coordinates of the exact address

feejsonb

Fee charged for rent

ftstsvector

Full text search index

hide_exact_addressboolean

Whether to hide the exact address from customers before bookings are confirmed

ical_export_secrettext

Secret used to generate iCal feed URLs

ical_export_secret_no_detailstext

Secret used to generate iCal feed URLs without booking details

imagesArray<ProductImage>

List of images

interaction"request" | "book"

Interaction type, either request or book

latest_arrival_timetime without time zone | null
nameMultiLanguageString

Localized name

payment_expiration_durationinteger
price_breakdown_specificity"combined" | "separate"
rent_period"daily" | "nightly"

Rent period of the unit

rent_pricing_definitionRentPricingDefinition

Pricing definition of the unit. Either configuration or services

request_status"CANCELLED" | "TENTATIVE" | "CONFIRMED"

Status of new bookings. Only applies when interaction is request

tentative_interactiontext

Interaction type on tentative intervals, either request or book

timezonetext

Timezone of the unit

The product object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "ac_id": "",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2026-03-12T05:24:09.754Z",
  "updated_at": "2026-03-12T05:24:09.754Z",
  "deleted_at": "2026-03-12T05:24:09.754Z",
  "approximate_address": "",
  "approximate_coordinates": {
    "lat": 52.379189,
    "lng": 4.899431
  },
  "cancel_after_initial_payment_error": false,
  "confirm_after_initial_payment": false,
  "confirmation_message": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "confirmation_message_title": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "cooldown_time": 0,
  "cta": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "currency": "USD",
  "deposit": {},
  "description": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "exact_address": "",
  "exact_coordinates": {
    "lat": 52.379189,
    "lng": 4.899431
  },
  "fee": {},
  "hide_exact_address": false,
  "ical_export_secret": "md5((random())::text)",
  "ical_export_secret_no_details": "md5((random())::text)",
  "images": [
    {
      "alt": {
        "default": "Image"
      },
      "size": "1x1",
      "src": "https://example.com/image.jpg"
    }
  ],
  "interaction": "request",
  "latest_arrival_time": null,
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "payment_expiration_duration": 0,
  "price_breakdown_specificity": "combined",
  "rent_period": "nightly",
  "rent_pricing_definition": "service",
  "request_status": "TENTATIVE",
  "tentative_interaction": "request",
  "timezone": "UTC"
}

List products

Filters

idFilter<uuid>

Unique identifier

ac_idFilter<text | null>

Identifier for products imported from AvailabilityCalendar.com

organization_idFilter<uuid>
organizations.id

Identifier of the organization this product is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

deleted_atFilter<timestamp with time zone | null>

Timestamp at which the unit was deleted

approximate_addressFilter<text>

Approximate address of the unit

approximate_coordinatesFilter<Coordinates | null>

Coordinates of the approximate address

cancel_after_initial_payment_errorFilter<boolean>
confirm_after_initial_paymentFilter<boolean>

Whether to automatically confirm the booking after the initial payment. Only applies when interaction is request

confirmation_messageFilter<MultiLanguageString>

Message to show to the customer after submitting a booking from a widget or website

confirmation_message_titleFilter<MultiLanguageString>
cooldown_timeFilter<integer>

Minimum number of days between bookings

ctaFilter<MultiLanguageString>

Call to action shown at the bottom of the booking form

currencyFilter<Currency>

Currency bookings are made in

depositFilter<jsonb | null>

Deposit charged for rent

descriptionFilter<MultiLanguageString>

Localized description

exact_addressFilter<text>

Exact address of the unit

exact_coordinatesFilter<Coordinates | null>

Coordinates of the exact address

feeFilter<jsonb>

Fee charged for rent

ftsFilter<tsvector>

Full text search index

hide_exact_addressFilter<boolean>

Whether to hide the exact address from customers before bookings are confirmed

ical_export_secretFilter<text>

Secret used to generate iCal feed URLs

ical_export_secret_no_detailsFilter<text>

Secret used to generate iCal feed URLs without booking details

imagesFilter<Array<ProductImage>>

List of images

interactionFilter<"request" | "book">

Interaction type, either request or book

latest_arrival_timeFilter<time without time zone | null>
nameFilter<MultiLanguageString>

Localized name

payment_expiration_durationFilter<integer>
price_breakdown_specificityFilter<"combined" | "separate">
rent_periodFilter<"daily" | "nightly">

Rent period of the unit

rent_pricing_definitionFilter<RentPricingDefinition>

Pricing definition of the unit. Either configuration or services

request_statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Status of new bookings. Only applies when interaction is request

tentative_interactionFilter<text>

Interaction type on tentative intervals, either request or book

timezoneFilter<text>

Timezone of the unit

Responses

200

A list of products with the selected columns

206

Partial Content

GET /products
curl -X GET "https://api.bookingmood.com/v1/products?select=*" \
  -H "Authorization: Bearer YOUR_API_KEY"

Update products

Filters

idFilter<uuid>

Unique identifier

ac_idFilter<text | null>

Identifier for products imported from AvailabilityCalendar.com

organization_idFilter<uuid>
organizations.id

Identifier of the organization this product is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

deleted_atFilter<timestamp with time zone | null>

Timestamp at which the unit was deleted

approximate_addressFilter<text>

Approximate address of the unit

approximate_coordinatesFilter<Coordinates | null>

Coordinates of the approximate address

cancel_after_initial_payment_errorFilter<boolean>
confirm_after_initial_paymentFilter<boolean>

Whether to automatically confirm the booking after the initial payment. Only applies when interaction is request

confirmation_messageFilter<MultiLanguageString>

Message to show to the customer after submitting a booking from a widget or website

confirmation_message_titleFilter<MultiLanguageString>
cooldown_timeFilter<integer>

Minimum number of days between bookings

ctaFilter<MultiLanguageString>

Call to action shown at the bottom of the booking form

currencyFilter<Currency>

Currency bookings are made in

depositFilter<jsonb | null>

Deposit charged for rent

descriptionFilter<MultiLanguageString>

Localized description

exact_addressFilter<text>

Exact address of the unit

exact_coordinatesFilter<Coordinates | null>

Coordinates of the exact address

feeFilter<jsonb>

Fee charged for rent

ftsFilter<tsvector>

Full text search index

hide_exact_addressFilter<boolean>

Whether to hide the exact address from customers before bookings are confirmed

ical_export_secretFilter<text>

Secret used to generate iCal feed URLs

ical_export_secret_no_detailsFilter<text>

Secret used to generate iCal feed URLs without booking details

imagesFilter<Array<ProductImage>>

List of images

interactionFilter<"request" | "book">

Interaction type, either request or book

latest_arrival_timeFilter<time without time zone | null>
nameFilter<MultiLanguageString>

Localized name

payment_expiration_durationFilter<integer>
price_breakdown_specificityFilter<"combined" | "separate">
rent_periodFilter<"daily" | "nightly">

Rent period of the unit

rent_pricing_definitionFilter<RentPricingDefinition>

Pricing definition of the unit. Either configuration or services

request_statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Status of new bookings. Only applies when interaction is request

tentative_interactionFilter<text>

Interaction type on tentative intervals, either request or book

timezoneFilter<text>

Timezone of the unit

Body

Partial<Product>

Responses

204

The updated products with the selected columns

PATCH /products
curl -X PATCH "https://api.bookingmood.com/v1/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{}'

Create product

Register a new product in your organization. This action will automatically update your subscription.

Body

nameMultiLanguageString

Localized name

rent_period"daily" | "nightly"

Rent period of the unit

timezonetext

Timezone of the unit

Responses

201

The newly created product

POST /products
curl -X POST "https://api.bookingmood.com/v1/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "name": {},
    "rent_period": "nightly",
    "timezone": "UTC"
  }'

Delete product

Delete a product from your organization. This will also delete all bookings for this product. Your subscription will be adjusted automatically. This action cannot be undone.

Parameters

idrequireduuid

The identifier of the product to delete

Responses

200

The deleted product

DELETE /products
curl -X DELETE "https://api.bookingmood.com/v1/products" \
  -H "Authorization: Bearer YOUR_API_KEY"