Introduction
Authentication
Selecting data
Filtering
Sorting & pagination

Core resources

Attribute options
Attributes
Booking details
Booking updates
Bookings
Calendar event notes
Calendar event tasks
Calendar event updates
Calendar events
Capacities
Capacity group dependencies
Capacity groups
Contact bookings
Contacts
Coupon products
Coupon services
Coupon uses
Coupons
Email events
Email templates
Emails
External calendars
Invoices
Line item taxes
Line items
Members
Payments
Permissions
Product attribute options
Product calendar logs
Product configurations
Product email templates
Product reply to addresses
Product services
Product tasks
Products
Reply to addresses
Seasons
Service deposit moments
Service deposit taxes
Service discounts
Service payment moments
Service taxes
Services
Site listings
Site nav items
Site pages
Site views
Sites
Taxes
User profiles
Webhook notifications
Webhooks
Widget listings
Widget views
Widgets

Booking flow

Query availability
Search availability
Book

Bookingmood API reference

With the Bookingmood API you can access and manage your data in a programmatic way, using HTTP requests. The structure of the Bookingmood API is based on PostgREST v11.1 .

Authentication

The Bookingmood API uses api keys for authentication. You can create and manage API keys from the bottom of settings page of your organization in the admin dashboard .
Once you have an API key simply provide it in the HTTP Authorization header as bearer token.

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

Selecting data

For each endpoint, you can select which columns you want to retrieve by using the select query parameter. Besides the columns of the resource itself, you can also select columns from related resources. For more advanced selection options refer to the PostgREST documentation .

Selecting all columns
curl -X GET "https://api.bookingmood.com/v1/products?select=*" \
  -H "Authorization: Bearer YOUR_API_KEY"
Selecting specific columns
curl -X GET "https://api.bookingmood.com/v1/products?select=id,name" \
  -H "Authorization: Bearer YOUR_API_KEY"
Including data from related tables
curl -X GET "https://api.bookingmood.com/v1/products?select=name,capacities(*)" \
  -H "Authorization: Bearer YOUR_API_KEY"

Filtering

Filters can be applied on each list, update and delete request, to restrict the rows affected by the request. For a complete list of filters refer to the PostgREST documentation .

Listing confirmed calendar_events
curl -X GET "https://api.bookingmood.com/v1/calendar_events?status=eq.CONFIRMED" \
  -H "Authorization: Bearer YOUR_API_KEY"
Filtering by multiple columns
curl -X GET "https://api.bookingmood.com/v1/calendar_events?status=eq.CONFIRMED&type=eq.booking" \
  -H "Authorization: Bearer YOUR_API_KEY"
Deleting test contacts
curl -X DELETE "https://api.bookingmood.com/v1/contacts?email=like.%test.com" \
  -H "Authorization: Bearer YOUR_API_KEY"

Sorting & pagination

By default, results are sorted by the primary key of the underlying table. You can change the sorting by using the order query parameter. To limit the number of results, use the limit and offset query parameters. The API will return at most 1000 results per request. For more advanced sorting and pagination options refer to the PostgREST documentation .

Sorting by creation date
curl -X GET "https://api.bookingmood.com/v1/products?order=created_at.desc" \
  -H "Authorization: Bearer YOUR_API_KEY"
Limiting the number of results
curl -X GET "https://api.bookingmood.com/v1/products?limit=10&offset=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

The attribute option object

Attributes

iduuid

Unique identifier

attribute_iduuid
attributes.id

Identifier of the attribute this option is defined in

created_attimestamp with time zone

Creation timestamp

nameMultiLanguageString

Localized name

orderinteger

Order of the option in the list of options as displayed on widgets and websites

The attribute option object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "attribute_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "order": 1
}

List attribute options

Filters

idFilter<uuid>

Unique identifier

attribute_idFilter<uuid>
attributes.id

Identifier of the attribute this option is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

nameFilter<MultiLanguageString>

Localized name

orderFilter<integer>

Order of the option in the list of options as displayed on widgets and websites

Responses

200

A list of attribute options with the selected columns

206

Partial Content

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

Create attribute options

Body

Partial<AttributeOption> | Array<Partial<AttributeOption>>

Responses

201

The newly created attribute options with the selected columns

POST /attribute_options
curl -X POST "https://api.bookingmood.com/v1/attribute_options" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete attribute options

Filters

idFilter<uuid>

Unique identifier

attribute_idFilter<uuid>
attributes.id

Identifier of the attribute this option is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

nameFilter<MultiLanguageString>

Localized name

orderFilter<integer>

Order of the option in the list of options as displayed on widgets and websites

Responses

204

The deleted attribute options with the selected columns

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

Update attribute options

Filters

idFilter<uuid>

Unique identifier

attribute_idFilter<uuid>
attributes.id

Identifier of the attribute this option is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

nameFilter<MultiLanguageString>

Localized name

orderFilter<integer>

Order of the option in the list of options as displayed on widgets and websites

Body

Partial<AttributeOption>

Responses

204

The updated attribute options with the selected columns

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

Attributes

Attributes to segment and filter units by

The attribute object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this attribute is defined in

created_attimestamp with time zone

Creation timestamp

nameMultiLanguageString

Localized name

orderinteger

Order of the attribute displayed on widgets and websites

type"single-select" | "multi-select"

Attribute type, either single-select of multi-select

The attribute object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "order": 1,
  "type": "single-select"
}

List attributes

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this attribute is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

nameFilter<MultiLanguageString>

Localized name

orderFilter<integer>

Order of the attribute displayed on widgets and websites

typeFilter<"single-select" | "multi-select">

Attribute type, either single-select of multi-select

Responses

200

A list of attributes with the selected columns

206

Partial Content

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

Create attributes

Body

Partial<Attribute> | Array<Partial<Attribute>>

Responses

201

The newly created attributes with the selected columns

POST /attributes
curl -X POST "https://api.bookingmood.com/v1/attributes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete attributes

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this attribute is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

nameFilter<MultiLanguageString>

Localized name

orderFilter<integer>

Order of the attribute displayed on widgets and websites

typeFilter<"single-select" | "multi-select">

Attribute type, either single-select of multi-select

Responses

204

The deleted attributes with the selected columns

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

Update attributes

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this attribute is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

nameFilter<MultiLanguageString>

Localized name

orderFilter<integer>

Order of the attribute displayed on widgets and websites

typeFilter<"single-select" | "multi-select">

Attribute type, either single-select of multi-select

Body

Partial<Attribute>

Responses

204

The updated attributes with the selected columns

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

Booking details

Booking details as filled in by guests in the booking form

The booking detail object

Attributes

iduuid

Unique identifier

booking_iduuid | null
bookings.id

Identifier of the related booking

option_iduuid | null
services.id

Identifier of the selected option

service_iduuid | null
services.id

Identifier of the related service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

nameMultiLanguageString

Localized name of the form field

valuetext | null

Value filled in by the customer

The booking detail object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "option_id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "value": ""
}

List booking details

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

option_idFilter<uuid | null>
services.id

Identifier of the selected option

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

nameFilter<MultiLanguageString>

Localized name of the form field

valueFilter<text | null>

Value filled in by the customer

Responses

200

A list of booking details with the selected columns

206

Partial Content

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

Create booking details

Body

Partial<BookingDetail> | Array<Partial<BookingDetail>>

Responses

201

The newly created booking details with the selected columns

POST /booking_details
curl -X POST "https://api.bookingmood.com/v1/booking_details" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete booking details

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

option_idFilter<uuid | null>
services.id

Identifier of the selected option

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

nameFilter<MultiLanguageString>

Localized name of the form field

valueFilter<text | null>

Value filled in by the customer

Responses

204

The deleted booking details with the selected columns

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

Update booking details

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

option_idFilter<uuid | null>
services.id

Identifier of the selected option

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

nameFilter<MultiLanguageString>

Localized name of the form field

valueFilter<text | null>

Value filled in by the customer

Body

Partial<BookingDetail>

Responses

204

The updated booking details with the selected columns

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

Booking updates

Logs of each time a booking is updated

The booking update object

Attributes

iduuid

Unique identifier

booking_iduuid
bookings.id

Identifier of the related booking

user_iduuid | null
user_profiles.user_id

Identifier of the user that made the update

created_attimestamp with time zone

Creation timestamp

The booking update object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List booking updates

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

user_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that made the update

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of booking updates with the selected columns

206

Partial Content

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

The booking object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this booking is defined in

site_iduuid | null
sites.id

Identifier of the site this booking was made on

widget_iduuid | null
widgets.id

Identifier of the widget this booking was made in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

confirmed_attimestamp with time zone | null

Timestamp at which the booking was confirmed

currencyCurrency

Base currency of the booking

display_currencyCurrency

Currency used to display prices to the customer

exchange_ratereal

Exchange rate used to convert the booking currency to the display currency

methodtext

Method used to make the booking, request or book

occupancyRecord<uuid, number>

Occupancy per capacity group.

referencetext

Publicly visible reference of the booking

secrettext

Secret reference of the booking

silentboolean

Whether the booking was made without automatically sending a confirmation email

The booking object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "site_id": "00000000-0000-0000-0000-000000000000",
  "widget_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "confirmed_at": "2025-02-22T08:26:32.519Z",
  "currency": "USD",
  "display_currency": "USD",
  "exchange_rate": 0,
  "method": "request",
  "occupancy": {
    "00000000-0000-0000-0000-000000000000": 1
  },
  "reference": "",
  "secret": "extensions.uuid_generate_v4()",
  "silent": false
}

List bookings

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this booking is defined in

site_idFilter<uuid | null>
sites.id

Identifier of the site this booking was made on

widget_idFilter<uuid | null>
widgets.id

Identifier of the widget this booking was made in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

confirmed_atFilter<timestamp with time zone | null>

Timestamp at which the booking was confirmed

currencyFilter<Currency>

Base currency of the booking

display_currencyFilter<Currency>

Currency used to display prices to the customer

exchange_rateFilter<real>

Exchange rate used to convert the booking currency to the display currency

methodFilter<text>

Method used to make the booking, request or book

occupancyFilter<Record<uuid, number>>

Occupancy per capacity group.

referenceFilter<text>

Publicly visible reference of the booking

secretFilter<text>

Secret reference of the booking

silentFilter<boolean>

Whether the booking was made without automatically sending a confirmation email

Responses

200

A list of bookings with the selected columns

206

Partial Content

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

Delete bookings

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this booking is defined in

site_idFilter<uuid | null>
sites.id

Identifier of the site this booking was made on

widget_idFilter<uuid | null>
widgets.id

Identifier of the widget this booking was made in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

confirmed_atFilter<timestamp with time zone | null>

Timestamp at which the booking was confirmed

currencyFilter<Currency>

Base currency of the booking

display_currencyFilter<Currency>

Currency used to display prices to the customer

exchange_rateFilter<real>

Exchange rate used to convert the booking currency to the display currency

methodFilter<text>

Method used to make the booking, request or book

occupancyFilter<Record<uuid, number>>

Occupancy per capacity group.

referenceFilter<text>

Publicly visible reference of the booking

secretFilter<text>

Secret reference of the booking

silentFilter<boolean>

Whether the booking was made without automatically sending a confirmation email

Responses

204

The deleted bookings with the selected columns

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

Update bookings

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this booking is defined in

site_idFilter<uuid | null>
sites.id

Identifier of the site this booking was made on

widget_idFilter<uuid | null>
widgets.id

Identifier of the widget this booking was made in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

confirmed_atFilter<timestamp with time zone | null>

Timestamp at which the booking was confirmed

currencyFilter<Currency>

Base currency of the booking

display_currencyFilter<Currency>

Currency used to display prices to the customer

exchange_rateFilter<real>

Exchange rate used to convert the booking currency to the display currency

methodFilter<text>

Method used to make the booking, request or book

occupancyFilter<Record<uuid, number>>

Occupancy per capacity group.

referenceFilter<text>

Publicly visible reference of the booking

secretFilter<text>

Secret reference of the booking

silentFilter<boolean>

Whether the booking was made without automatically sending a confirmation email

Body

Partial<Booking>

Responses

204

The updated bookings with the selected columns

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

Calendar event notes

Private notes send around some calendar event

The calendar event note object

Attributes

iduuid

Unique identifier

author_iduuid | null
user_profiles.user_id

Identifier of the user that created the note

calendar_event_iduuid
calendar_events.id

Identifier of the related calendar event

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

notetext

The note itself

The calendar event note object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "author_id": "00000000-0000-0000-0000-000000000000",
  "calendar_event_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "note": ""
}

List calendar event notes

Filters

idFilter<uuid>

Unique identifier

author_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the note

calendar_event_idFilter<uuid>
calendar_events.id

Identifier of the related calendar event

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

noteFilter<text>

The note itself

Responses

200

A list of calendar event notes with the selected columns

206

Partial Content

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

Create calendar event notes

Body

Partial<CalendarEventNote> | Array<Partial<CalendarEventNote>>

Responses

201

The newly created calendar event notes with the selected columns

POST /calendar_event_notes
curl -X POST "https://api.bookingmood.com/v1/calendar_event_notes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete calendar event notes

Filters

idFilter<uuid>

Unique identifier

author_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the note

calendar_event_idFilter<uuid>
calendar_events.id

Identifier of the related calendar event

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

noteFilter<text>

The note itself

Responses

204

The deleted calendar event notes with the selected columns

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

Update calendar event notes

Filters

idFilter<uuid>

Unique identifier

author_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the note

calendar_event_idFilter<uuid>
calendar_events.id

Identifier of the related calendar event

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

noteFilter<text>

The note itself

Body

Partial<CalendarEventNote>

Responses

204

The updated calendar event notes with the selected columns

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

The calendar event task object

Attributes

iduuid

Unique identifier

assignee_iduuid | null
members.id

Assignee of the task

calendar_event_iduuid
calendar_events.id

Identifier of the related calendar event

product_task_iduuid | null
product_tasks.id

Identifier of the related product task

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

completed_attimestamp with time zone | null

Timestamp at which the task was completed

due_attimestamp with time zone

Due date of the task

labeltext

Label of the task

notification_sent_attimestamp with time zone | null

Timestamp of the last notification sent

schedule"manual" | "arrival" | "departure"

Task schedule relative to the event

The calendar event task object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "assignee_id": "00000000-0000-0000-0000-000000000000",
  "calendar_event_id": "00000000-0000-0000-0000-000000000000",
  "product_task_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "completed_at": "2025-02-22T08:26:32.519Z",
  "due_at": "2025-02-22T08:26:32.519Z",
  "label": "",
  "notification_sent_at": "2025-02-22T08:26:32.519Z",
  "schedule": "arrival"
}

List calendar event tasks

Filters

idFilter<uuid>

Unique identifier

assignee_idFilter<uuid | null>
members.id

Assignee of the task

calendar_event_idFilter<uuid>
calendar_events.id

Identifier of the related calendar event

product_task_idFilter<uuid | null>
product_tasks.id

Identifier of the related product task

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

completed_atFilter<timestamp with time zone | null>

Timestamp at which the task was completed

due_atFilter<timestamp with time zone>

Due date of the task

labelFilter<text>

Label of the task

notification_sent_atFilter<timestamp with time zone | null>

Timestamp of the last notification sent

scheduleFilter<"manual" | "arrival" | "departure">

Task schedule relative to the event

Responses

200

A list of calendar event tasks with the selected columns

206

Partial Content

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

Create calendar event tasks

Body

Partial<CalendarEventTask> | Array<Partial<CalendarEventTask>>

Responses

201

The newly created calendar event tasks with the selected columns

POST /calendar_event_tasks
curl -X POST "https://api.bookingmood.com/v1/calendar_event_tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete calendar event tasks

Filters

idFilter<uuid>

Unique identifier

assignee_idFilter<uuid | null>
members.id

Assignee of the task

calendar_event_idFilter<uuid>
calendar_events.id

Identifier of the related calendar event

product_task_idFilter<uuid | null>
product_tasks.id

Identifier of the related product task

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

completed_atFilter<timestamp with time zone | null>

Timestamp at which the task was completed

due_atFilter<timestamp with time zone>

Due date of the task

labelFilter<text>

Label of the task

notification_sent_atFilter<timestamp with time zone | null>

Timestamp of the last notification sent

scheduleFilter<"manual" | "arrival" | "departure">

Task schedule relative to the event

Responses

204

The deleted calendar event tasks with the selected columns

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

Update calendar event tasks

Filters

idFilter<uuid>

Unique identifier

assignee_idFilter<uuid | null>
members.id

Assignee of the task

calendar_event_idFilter<uuid>
calendar_events.id

Identifier of the related calendar event

product_task_idFilter<uuid | null>
product_tasks.id

Identifier of the related product task

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

completed_atFilter<timestamp with time zone | null>

Timestamp at which the task was completed

due_atFilter<timestamp with time zone>

Due date of the task

labelFilter<text>

Label of the task

notification_sent_atFilter<timestamp with time zone | null>

Timestamp of the last notification sent

scheduleFilter<"manual" | "arrival" | "departure">

Task schedule relative to the event

Body

Partial<CalendarEventTask>

Responses

204

The updated calendar event tasks with the selected columns

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

Calendar event updates

Snapshots of each time a calendar event is updated

The calendar event update object

Attributes

iduuid

Unique identifier

calendar_event_iduuid
calendar_events.id

Identifier of the related calendar event

next_product_iduuid
products.id

Unit the calendar event was booked for after the update

prev_product_iduuid
products.id

Unit the calendar event was booked for before the update

user_iduuid | null
user_profiles.user_id

Identifier of the user that made the update

created_attimestamp with time zone

Creation timestamp

next_intervaldaterange

Event interval after the update

next_status"CANCELLED" | "TENTATIVE" | "CONFIRMED"

Status of the calendar event after the update

prev_intervaldaterange

Event interval before the update

prev_status"CANCELLED" | "TENTATIVE" | "CONFIRMED"

Status of the calendar event before the update

The calendar event update object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "calendar_event_id": "00000000-0000-0000-0000-000000000000",
  "next_product_id": "00000000-0000-0000-0000-000000000000",
  "prev_product_id": "00000000-0000-0000-0000-000000000000",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "next_interval": null,
  "next_status": "CANCELLED",
  "prev_interval": null,
  "prev_status": "CANCELLED"
}

List calendar event updates

Filters

idFilter<uuid>

Unique identifier

calendar_event_idFilter<uuid>
calendar_events.id

Identifier of the related calendar event

next_product_idFilter<uuid>
products.id

Unit the calendar event was booked for after the update

prev_product_idFilter<uuid>
products.id

Unit the calendar event was booked for before the update

user_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that made the update

created_atFilter<timestamp with time zone>

Creation timestamp

next_intervalFilter<daterange>

Event interval after the update

next_statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Status of the calendar event after the update

prev_intervalFilter<daterange>

Event interval before the update

prev_statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Status of the calendar event before the update

Responses

200

A list of calendar event updates with the selected columns

206

Partial Content

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

Calendar events

Events as visible on your timeline. Can be bookings, blocked periods or notes.

The calendar event object

Attributes

iduuid

Unique identifier

booking_iduuid | null
bookings.id

Identifier of the related booking

calendar_iduuid | null
external_calendars.id

Identifier of the external calendar this event is related to

creator_iduuid | null
user_profiles.user_id

Identifier of the user that created the event

product_iduuid
products.id

Identifier of the unit this event is related to

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

end_datedate

Event end date

ftstsvector

Full text search index

generated_titletext

Title of the event generated from the product name and the customer name

notestext

Private notes about the event

origintext | null

Origin of the event

paddingsmallint

Padding of the event due to cooldown time

start_datedate

Event start date

status"CANCELLED" | "TENTATIVE" | "CONFIRMED"

Status of the event

titletext

Title of the event

type"booking" | "blocked period" | "note"

Type of the event

uidtext | null

Identifier of the event in the original calendar

The calendar event object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "calendar_id": "00000000-0000-0000-0000-000000000000",
  "creator_id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "end_date": null,
  "generated_title": "",
  "notes": "",
  "origin": "",
  "padding": 0,
  "start_date": null,
  "status": "CONFIRMED",
  "title": "",
  "type": "booking",
  "uid": ""
}

List calendar events

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

calendar_idFilter<uuid | null>
external_calendars.id

Identifier of the external calendar this event is related to

creator_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the event

product_idFilter<uuid>
products.id

Identifier of the unit this event is related to

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

end_dateFilter<date>

Event end date

ftsFilter<tsvector>

Full text search index

generated_titleFilter<text>

Title of the event generated from the product name and the customer name

notesFilter<text>

Private notes about the event

originFilter<text | null>

Origin of the event

paddingFilter<smallint>

Padding of the event due to cooldown time

start_dateFilter<date>

Event start date

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Status of the event

titleFilter<text>

Title of the event

typeFilter<"booking" | "blocked period" | "note">

Type of the event

uidFilter<text | null>

Identifier of the event in the original calendar

Responses

200

A list of calendar events with the selected columns

206

Partial Content

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

Delete calendar events

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

calendar_idFilter<uuid | null>
external_calendars.id

Identifier of the external calendar this event is related to

creator_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the event

product_idFilter<uuid>
products.id

Identifier of the unit this event is related to

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

end_dateFilter<date>

Event end date

ftsFilter<tsvector>

Full text search index

generated_titleFilter<text>

Title of the event generated from the product name and the customer name

notesFilter<text>

Private notes about the event

originFilter<text | null>

Origin of the event

paddingFilter<smallint>

Padding of the event due to cooldown time

start_dateFilter<date>

Event start date

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Status of the event

titleFilter<text>

Title of the event

typeFilter<"booking" | "blocked period" | "note">

Type of the event

uidFilter<text | null>

Identifier of the event in the original calendar

Responses

204

The deleted calendar events with the selected columns

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

Update calendar events

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

calendar_idFilter<uuid | null>
external_calendars.id

Identifier of the external calendar this event is related to

creator_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the event

product_idFilter<uuid>
products.id

Identifier of the unit this event is related to

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

end_dateFilter<date>

Event end date

ftsFilter<tsvector>

Full text search index

generated_titleFilter<text>

Title of the event generated from the product name and the customer name

notesFilter<text>

Private notes about the event

originFilter<text | null>

Origin of the event

paddingFilter<smallint>

Padding of the event due to cooldown time

start_dateFilter<date>

Event start date

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Status of the event

titleFilter<text>

Title of the event

typeFilter<"booking" | "blocked period" | "note">

Type of the event

uidFilter<text | null>

Identifier of the event in the original calendar

Body

Partial<CalendarEvent>

Responses

204

The updated calendar events with the selected columns

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

Capacities

Occupancy limits per unit per occupancy group

The capacity object

Attributes

iduuid

Unique identifier

capacity_group_iduuid
capacity_groups.id

Identifier of the related capacity group

product_iduuid
products.id

Identifier of the related product

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

maxinteger

Maximum allowed occupancy

mininteger

Minimum allowed occupancy

The capacity object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "capacity_group_id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "max": 1,
  "min": 0
}

List capacities

Filters

idFilter<uuid>

Unique identifier

capacity_group_idFilter<uuid>
capacity_groups.id

Identifier of the related capacity group

product_idFilter<uuid>
products.id

Identifier of the related product

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

maxFilter<integer>

Maximum allowed occupancy

minFilter<integer>

Minimum allowed occupancy

Responses

200

A list of capacities with the selected columns

206

Partial Content

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

Create capacities

Body

Partial<Capacity> | Array<Partial<Capacity>>

Responses

201

The newly created capacities with the selected columns

POST /capacities
curl -X POST "https://api.bookingmood.com/v1/capacities" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete capacities

Filters

idFilter<uuid>

Unique identifier

capacity_group_idFilter<uuid>
capacity_groups.id

Identifier of the related capacity group

product_idFilter<uuid>
products.id

Identifier of the related product

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

maxFilter<integer>

Maximum allowed occupancy

minFilter<integer>

Minimum allowed occupancy

Responses

204

The deleted capacities with the selected columns

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

Update capacities

Filters

idFilter<uuid>

Unique identifier

capacity_group_idFilter<uuid>
capacity_groups.id

Identifier of the related capacity group

product_idFilter<uuid>
products.id

Identifier of the related product

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

maxFilter<integer>

Maximum allowed occupancy

minFilter<integer>

Minimum allowed occupancy

Body

Partial<Capacity>

Responses

204

The updated capacities with the selected columns

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

Capacity group dependencies

Dependencies between occupancy groups. When booking, the value of the group referenced by accumulator_id will be set to the sum of the groups referenced by element_id.

The capacity group dependency object

Attributes

iduuid

Unique identifier

accumulator_iduuid
capacity_groups.id

Identifier of the accumulating capacity group

element_iduuid
capacity_groups.id

Identifier of the accumulated capacity group

created_attimestamp with time zone

Creation timestamp

The capacity group dependency object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "accumulator_id": "00000000-0000-0000-0000-000000000000",
  "element_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List capacity group dependencies

Filters

idFilter<uuid>

Unique identifier

accumulator_idFilter<uuid>
capacity_groups.id

Identifier of the accumulating capacity group

element_idFilter<uuid>
capacity_groups.id

Identifier of the accumulated capacity group

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of capacity group dependencies with the selected columns

206

Partial Content

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

Create capacity group dependencies

Body

Partial<CapacityGroupDependency> | Array<Partial<CapacityGroupDependency>>

Responses

201

The newly created capacity group dependencies with the selected columns

POST /capacity_group_dependencies
curl -X POST "https://api.bookingmood.com/v1/capacity_group_dependencies" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete capacity group dependencies

Filters

idFilter<uuid>

Unique identifier

accumulator_idFilter<uuid>
capacity_groups.id

Identifier of the accumulating capacity group

element_idFilter<uuid>
capacity_groups.id

Identifier of the accumulated capacity group

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted capacity group dependencies with the selected columns

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

Update capacity group dependencies

Filters

idFilter<uuid>

Unique identifier

accumulator_idFilter<uuid>
capacity_groups.id

Identifier of the accumulating capacity group

element_idFilter<uuid>
capacity_groups.id

Identifier of the accumulated capacity group

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<CapacityGroupDependency>

Responses

204

The updated capacity group dependencies with the selected columns

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

Capacity groups

Distinct groups that can occupy units. Useful for configuring separate prices & limits for adult / children / pets.

The capacity group object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the related organization

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

descriptionMultiLanguageString

Localized description

nameMultiLanguageString

Localized name

name_singularMultiLanguageString

Localized singular name

orderinteger

Order to display the capacity group in

type"manual" | "sum"

Type of the capacity group

The capacity group object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "description": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "name_singular": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "order": 1,
  "type": "manual"
}

List capacity groups

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the related organization

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<MultiLanguageString>

Localized description

nameFilter<MultiLanguageString>

Localized name

name_singularFilter<MultiLanguageString>

Localized singular name

orderFilter<integer>

Order to display the capacity group in

typeFilter<"manual" | "sum">

Type of the capacity group

Responses

200

A list of capacity groups with the selected columns

206

Partial Content

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

Create capacity groups

Body

Partial<CapacityGroup> | Array<Partial<CapacityGroup>>

Responses

201

The newly created capacity groups with the selected columns

POST /capacity_groups
curl -X POST "https://api.bookingmood.com/v1/capacity_groups" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete capacity groups

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the related organization

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<MultiLanguageString>

Localized description

nameFilter<MultiLanguageString>

Localized name

name_singularFilter<MultiLanguageString>

Localized singular name

orderFilter<integer>

Order to display the capacity group in

typeFilter<"manual" | "sum">

Type of the capacity group

Responses

204

The deleted capacity groups with the selected columns

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

Update capacity groups

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the related organization

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<MultiLanguageString>

Localized description

nameFilter<MultiLanguageString>

Localized name

name_singularFilter<MultiLanguageString>

Localized singular name

orderFilter<integer>

Order to display the capacity group in

typeFilter<"manual" | "sum">

Type of the capacity group

Body

Partial<CapacityGroup>

Responses

204

The updated capacity groups with the selected columns

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

Contact bookings

Link between contacts and bookings

The contact booking object

Attributes

iduuid

Unique identifier

booking_iduuid
bookings.id

Identifier of the related booking

contact_iduuid
contacts.id

Identifier of the related contact

created_attimestamp with time zone

Creation timestamp

The contact booking object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "contact_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List contact bookings

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

contact_idFilter<uuid>
contacts.id

Identifier of the related contact

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of contact bookings with the selected columns

206

Partial Content

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

Create contact bookings

Body

Partial<ContactBooking> | Array<Partial<ContactBooking>>

Responses

201

The newly created contact bookings with the selected columns

POST /contact_bookings
curl -X POST "https://api.bookingmood.com/v1/contact_bookings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete contact bookings

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

contact_idFilter<uuid>
contacts.id

Identifier of the related contact

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted contact bookings with the selected columns

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

Update contact bookings

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

contact_idFilter<uuid>
contacts.id

Identifier of the related contact

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<ContactBooking>

Responses

204

The updated contact bookings with the selected columns

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

The contact object

Attributes

iduuid

Unique identifier

creator_iduuid | null
user_profiles.user_id

Identifier of the user that created the contact

organization_iduuid
organizations.id

Identifier of the organization this contact is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

addresstext

Concatenation of the address fields

avatartext | null

URL of the avatar image

citytext

City of the contact

countrytext

Country of the contact

emailtext

Contact email address

first_nametext

First name of the contact

ftstsvector

Full text search index

languageLanguage | null

Language of the contact

last_nametext

Last name of the contact

metaArray<{ key: string; value: string }>
nametext

Full name of the contact

notestext
phonetext

Contact phone number

provincetext

Province of the contact

statetext

State of the contact

streettext

Street address of the contact

street2text

Street address of the contact

ziptext

Zip code of the contact

The contact object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "creator_id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "address": "",
  "avatar": "",
  "city": "",
  "country": "",
  "email": "",
  "first_name": "",
  "language": "en-US",
  "last_name": "",
  "meta": [
    {
      "key": "key",
      "value": "value"
    }
  ],
  "name": "",
  "notes": "",
  "phone": "",
  "province": "",
  "state": "",
  "street": "",
  "street2": "",
  "zip": ""
}

List contacts

Filters

idFilter<uuid>

Unique identifier

creator_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the contact

organization_idFilter<uuid>
organizations.id

Identifier of the organization this contact is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

addressFilter<text>

Concatenation of the address fields

avatarFilter<text | null>

URL of the avatar image

cityFilter<text>

City of the contact

countryFilter<text>

Country of the contact

emailFilter<text>

Contact email address

first_nameFilter<text>

First name of the contact

ftsFilter<tsvector>

Full text search index

languageFilter<Language | null>

Language of the contact

last_nameFilter<text>

Last name of the contact

metaFilter<Array<{ key: string; value: string }>>
nameFilter<text>

Full name of the contact

notesFilter<text>
phoneFilter<text>

Contact phone number

provinceFilter<text>

Province of the contact

stateFilter<text>

State of the contact

streetFilter<text>

Street address of the contact

street2Filter<text>

Street address of the contact

zipFilter<text>

Zip code of the contact

Responses

200

A list of contacts with the selected columns

206

Partial Content

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

Create contacts

Body

Partial<Contact> | Array<Partial<Contact>>

Responses

201

The newly created contacts with the selected columns

POST /contacts
curl -X POST "https://api.bookingmood.com/v1/contacts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete contacts

Filters

idFilter<uuid>

Unique identifier

creator_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the contact

organization_idFilter<uuid>
organizations.id

Identifier of the organization this contact is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

addressFilter<text>

Concatenation of the address fields

avatarFilter<text | null>

URL of the avatar image

cityFilter<text>

City of the contact

countryFilter<text>

Country of the contact

emailFilter<text>

Contact email address

first_nameFilter<text>

First name of the contact

ftsFilter<tsvector>

Full text search index

languageFilter<Language | null>

Language of the contact

last_nameFilter<text>

Last name of the contact

metaFilter<Array<{ key: string; value: string }>>
nameFilter<text>

Full name of the contact

notesFilter<text>
phoneFilter<text>

Contact phone number

provinceFilter<text>

Province of the contact

stateFilter<text>

State of the contact

streetFilter<text>

Street address of the contact

street2Filter<text>

Street address of the contact

zipFilter<text>

Zip code of the contact

Responses

204

The deleted contacts with the selected columns

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

Update contacts

Filters

idFilter<uuid>

Unique identifier

creator_idFilter<uuid | null>
user_profiles.user_id

Identifier of the user that created the contact

organization_idFilter<uuid>
organizations.id

Identifier of the organization this contact is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

addressFilter<text>

Concatenation of the address fields

avatarFilter<text | null>

URL of the avatar image

cityFilter<text>

City of the contact

countryFilter<text>

Country of the contact

emailFilter<text>

Contact email address

first_nameFilter<text>

First name of the contact

ftsFilter<tsvector>

Full text search index

languageFilter<Language | null>

Language of the contact

last_nameFilter<text>

Last name of the contact

metaFilter<Array<{ key: string; value: string }>>
nameFilter<text>

Full name of the contact

notesFilter<text>
phoneFilter<text>

Contact phone number

provinceFilter<text>

Province of the contact

stateFilter<text>

State of the contact

streetFilter<text>

Street address of the contact

street2Filter<text>

Street address of the contact

zipFilter<text>

Zip code of the contact

Body

Partial<Contact>

Responses

204

The updated contacts with the selected columns

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

Coupon products

Defines for which products a coupon applies. Only checked when coupon.scope is rent or product.

The coupon product object

Attributes

iduuid

Unique identifier

coupon_iduuid
coupons.id

Coupon this coupon-product-link is related to

product_iduuid
products.id

Product this coupon-product-link is related to

created_attimestamp with time zone

Creation timestamp

The coupon product object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "coupon_id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List coupon products

Filters

idFilter<uuid>

Unique identifier

coupon_idFilter<uuid>
coupons.id

Coupon this coupon-product-link is related to

product_idFilter<uuid>
products.id

Product this coupon-product-link is related to

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of coupon products with the selected columns

206

Partial Content

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

Create coupon products

Body

Partial<CouponProduct> | Array<Partial<CouponProduct>>

Responses

201

The newly created coupon products with the selected columns

POST /coupon_products
curl -X POST "https://api.bookingmood.com/v1/coupon_products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete coupon products

Filters

idFilter<uuid>

Unique identifier

coupon_idFilter<uuid>
coupons.id

Coupon this coupon-product-link is related to

product_idFilter<uuid>
products.id

Product this coupon-product-link is related to

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted coupon products with the selected columns

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

Update coupon products

Filters

idFilter<uuid>

Unique identifier

coupon_idFilter<uuid>
coupons.id

Coupon this coupon-product-link is related to

product_idFilter<uuid>
products.id

Product this coupon-product-link is related to

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<CouponProduct>

Responses

204

The updated coupon products with the selected columns

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

Coupon services

Defines for which services a coupon applies. Only checked when coupon.scope is service.

The coupon service object

Attributes

iduuid

Unique identifier

coupon_iduuid
coupons.id

Coupon this coupon-service-link is related to

service_iduuid
services.id

Service this coupon-service-link is related to

created_attimestamp with time zone

Creation timestamp

The coupon service object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "coupon_id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List coupon services

Filters

idFilter<uuid>

Unique identifier

coupon_idFilter<uuid>
coupons.id

Coupon this coupon-service-link is related to

service_idFilter<uuid>
services.id

Service this coupon-service-link is related to

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of coupon services with the selected columns

206

Partial Content

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

Create coupon services

Body

Partial<CouponService> | Array<Partial<CouponService>>

Responses

201

The newly created coupon services with the selected columns

POST /coupon_services
curl -X POST "https://api.bookingmood.com/v1/coupon_services" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete coupon services

Filters

idFilter<uuid>

Unique identifier

coupon_idFilter<uuid>
coupons.id

Coupon this coupon-service-link is related to

service_idFilter<uuid>
services.id

Service this coupon-service-link is related to

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted coupon services with the selected columns

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

Update coupon services

Filters

idFilter<uuid>

Unique identifier

coupon_idFilter<uuid>
coupons.id

Coupon this coupon-service-link is related to

service_idFilter<uuid>
services.id

Service this coupon-service-link is related to

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<CouponService>

Responses

204

The updated coupon services with the selected columns

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

Coupon uses

Coupon usage in bookings

The coupon use object

Attributes

iduuid

Unique identifier

booking_iduuid
bookings.id

The booking the coupon is used in

coupon_iduuid
coupons.id

The coupon that is used

created_attimestamp with time zone

Creation timestamp

The coupon use object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "coupon_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List coupon uses

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

The booking the coupon is used in

coupon_idFilter<uuid>
coupons.id

The coupon that is used

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of coupon uses with the selected columns

206

Partial Content

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

Create coupon uses

Body

Partial<CouponUse> | Array<Partial<CouponUse>>

Responses

201

The newly created coupon uses with the selected columns

POST /coupon_uses
curl -X POST "https://api.bookingmood.com/v1/coupon_uses" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete coupon uses

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

The booking the coupon is used in

coupon_idFilter<uuid>
coupons.id

The coupon that is used

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted coupon uses with the selected columns

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

Update coupon uses

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

The booking the coupon is used in

coupon_idFilter<uuid>
coupons.id

The coupon that is used

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<CouponUse>

Responses

204

The updated coupon uses with the selected columns

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

Coupons

Codes guests can enter for additional discounts

The coupon object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this coupon 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 coupon was deleted

codetext

Coupon code

definitionPriceExpression

Definition of the coupon

descriptiontext

Description of the coupon

ftstsvector

Full text search index

quotainteger | null

Maximum number of times this coupon can be used

scope"global" | "product" | "service" | "rent"

Scope of the coupon

stackableboolean
The coupon object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "deleted_at": "2025-02-22T08:26:32.519Z",
  "code": "",
  "definition": {
    "type": "absolute",
    "restrictions": [],
    "value": [
      {
        "value": 10,
        "occupancy_group_id": null,
        "period": null,
        "variable": null
      }
    ]
  },
  "description": "",
  "quota": 0,
  "scope": "global",
  "stackable": true
}

List coupons

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this coupon 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 coupon was deleted

codeFilter<text>

Coupon code

definitionFilter<PriceExpression>

Definition of the coupon

descriptionFilter<text>

Description of the coupon

ftsFilter<tsvector>

Full text search index

quotaFilter<integer | null>

Maximum number of times this coupon can be used

scopeFilter<"global" | "product" | "service" | "rent">

Scope of the coupon

stackableFilter<boolean>

Responses

200

A list of coupons with the selected columns

206

Partial Content

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

Create coupons

Body

Partial<Coupon> | Array<Partial<Coupon>>

Responses

201

The newly created coupons with the selected columns

POST /coupons
curl -X POST "https://api.bookingmood.com/v1/coupons" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete coupons

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this coupon 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 coupon was deleted

codeFilter<text>

Coupon code

definitionFilter<PriceExpression>

Definition of the coupon

descriptionFilter<text>

Description of the coupon

ftsFilter<tsvector>

Full text search index

quotaFilter<integer | null>

Maximum number of times this coupon can be used

scopeFilter<"global" | "product" | "service" | "rent">

Scope of the coupon

stackableFilter<boolean>

Responses

204

The deleted coupons with the selected columns

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

Update coupons

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this coupon 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 coupon was deleted

codeFilter<text>

Coupon code

definitionFilter<PriceExpression>

Definition of the coupon

descriptionFilter<text>

Description of the coupon

ftsFilter<tsvector>

Full text search index

quotaFilter<integer | null>

Maximum number of times this coupon can be used

scopeFilter<"global" | "product" | "service" | "rent">

Scope of the coupon

stackableFilter<boolean>

Body

Partial<Coupon>

Responses

204

The updated coupons with the selected columns

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

Email events

Bounce, delivery and open events for emails

The email event object

Attributes

iduuid

Unique identifier

email_iduuid
emails.id

Identifier of the related email

created_attimestamp with time zone

Creation timestamp

email_addresstext

Email address the email was sent to

event_type | "processed" | "dropped" | "deferred" | "bounce" | "delivered" | "open" | "click" | "spamreport" | "unsubscribe" | "group_unsubscribe" | "group_resubscribe"

Type of the event

The email event object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "email_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "email_address": "",
  "event_type": ""
}

List email events

Filters

idFilter<uuid>

Unique identifier

email_idFilter<uuid>
emails.id

Identifier of the related email

created_atFilter<timestamp with time zone>

Creation timestamp

email_addressFilter<text>

Email address the email was sent to

event_typeFilter< | "processed" | "dropped" | "deferred" | "bounce" | "delivered" | "open" | "click" | "spamreport" | "unsubscribe" | "group_unsubscribe" | "group_resubscribe">

Type of the event

Responses

200

A list of email events with the selected columns

206

Partial Content

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

The email template object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this email template is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

attachmentsArray<{ filename: string; url: string; type: string }>

List of attachments to include in the email

bodyMultiLanguageString

Body of the email

ftstsvector

Full text search index

include_booking_detailsboolean

Whether to include booking details in the email

include_booking_linkboolean

Whether to include a link to the booking status page in the email

include_ical_databoolean

Whether to include an iCal attachment in the email

include_product_imageboolean

Whether to include a product image in the email

momentMomentExpression | null

Moment at which the email should be sent.

past_schedule_behavior"skip" | "send"

Behavior when the message is created with a schedule in the past

status"CANCELLED" | "TENTATIVE" | "CONFIRMED"

Whether the message will be scheduled for pending and confirmed events, or just for confirmed events

subjectMultiLanguageString

Subject of the email

timetime without time zone | null

Time at which the message should be sent

triggertext | null

Trigger of the email template

type"email" | "sms"

Message type. email or sms

The email template object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "attachments": [
    {
      "filename": "file",
      "url": "https://example.com",
      "type": "application/pdf"
    }
  ],
  "body": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "include_booking_details": false,
  "include_booking_link": true,
  "include_ical_data": false,
  "include_product_image": false,
  "moment": {
    "type": "check-in",
    "offset": 1
  },
  "past_schedule_behavior": "skip",
  "status": "CONFIRMED",
  "subject": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "time": null,
  "trigger": "",
  "type": "email"
}

List email templates

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this email template is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

attachmentsFilter<Array<{ filename: string; url: string; type: string }>>

List of attachments to include in the email

bodyFilter<MultiLanguageString>

Body of the email

ftsFilter<tsvector>

Full text search index

include_booking_detailsFilter<boolean>

Whether to include booking details in the email

include_booking_linkFilter<boolean>

Whether to include a link to the booking status page in the email

include_ical_dataFilter<boolean>

Whether to include an iCal attachment in the email

include_product_imageFilter<boolean>

Whether to include a product image in the email

momentFilter<MomentExpression | null>

Moment at which the email should be sent.

past_schedule_behaviorFilter<"skip" | "send">

Behavior when the message is created with a schedule in the past

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Whether the message will be scheduled for pending and confirmed events, or just for confirmed events

subjectFilter<MultiLanguageString>

Subject of the email

timeFilter<time without time zone | null>

Time at which the message should be sent

triggerFilter<text | null>

Trigger of the email template

typeFilter<"email" | "sms">

Message type. email or sms

Responses

200

A list of email templates with the selected columns

206

Partial Content

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

Create email templates

Body

Partial<EmailTemplate> | Array<Partial<EmailTemplate>>

Responses

201

The newly created email templates with the selected columns

POST /email_templates
curl -X POST "https://api.bookingmood.com/v1/email_templates" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete email templates

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this email template is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

attachmentsFilter<Array<{ filename: string; url: string; type: string }>>

List of attachments to include in the email

bodyFilter<MultiLanguageString>

Body of the email

ftsFilter<tsvector>

Full text search index

include_booking_detailsFilter<boolean>

Whether to include booking details in the email

include_booking_linkFilter<boolean>

Whether to include a link to the booking status page in the email

include_ical_dataFilter<boolean>

Whether to include an iCal attachment in the email

include_product_imageFilter<boolean>

Whether to include a product image in the email

momentFilter<MomentExpression | null>

Moment at which the email should be sent.

past_schedule_behaviorFilter<"skip" | "send">

Behavior when the message is created with a schedule in the past

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Whether the message will be scheduled for pending and confirmed events, or just for confirmed events

subjectFilter<MultiLanguageString>

Subject of the email

timeFilter<time without time zone | null>

Time at which the message should be sent

triggerFilter<text | null>

Trigger of the email template

typeFilter<"email" | "sms">

Message type. email or sms

Responses

204

The deleted email templates with the selected columns

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

Update email templates

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this email template is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

attachmentsFilter<Array<{ filename: string; url: string; type: string }>>

List of attachments to include in the email

bodyFilter<MultiLanguageString>

Body of the email

ftsFilter<tsvector>

Full text search index

include_booking_detailsFilter<boolean>

Whether to include booking details in the email

include_booking_linkFilter<boolean>

Whether to include a link to the booking status page in the email

include_ical_dataFilter<boolean>

Whether to include an iCal attachment in the email

include_product_imageFilter<boolean>

Whether to include a product image in the email

momentFilter<MomentExpression | null>

Moment at which the email should be sent.

past_schedule_behaviorFilter<"skip" | "send">

Behavior when the message is created with a schedule in the past

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Whether the message will be scheduled for pending and confirmed events, or just for confirmed events

subjectFilter<MultiLanguageString>

Subject of the email

timeFilter<time without time zone | null>

Time at which the message should be sent

triggerFilter<text | null>

Trigger of the email template

typeFilter<"email" | "sms">

Message type. email or sms

Body

Partial<EmailTemplate>

Responses

204

The updated email templates with the selected columns

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

Emails

Emails scheduled or sent to guests

Endpoints

The email object

Attributes

iduuid

Unique identifier

calendar_event_iduuid | null
calendar_events.id

Identifier of the related calendar event

email_template_iduuid | null
email_templates.id

Identifier of the email template this email is based on

member_iduuid | null
members.id

Identifier of the member that sent the email

created_attimestamp with time zone

Creation timestamp

attachmentsArray<{ filename: string; url: string; type: string }> | null

List of attachments to include in the email

bodytext

Body of the email

htmltext | null

HTML of the email

include_booking_detailsboolean

Whether booking details should be included in the email

include_booking_linkboolean

Whether a link to the booking status page should be included in the email

include_ical_databoolean

Whether an iCal attachment should be included in the email

include_product_imageboolean

Whether a product image should be included in the email

send_attimestamp with time zone

Timestamp at which the email is sent or should be sent

status"manually-scheduled" | "scheduled-around-arrival" | "scheduled-around-departure" | "sent"

Status of the email

subjecttext

Subject of the email

templatetext | null

Template of the email

type"email" | "sms"
The email object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "calendar_event_id": "00000000-0000-0000-0000-000000000000",
  "email_template_id": "00000000-0000-0000-0000-000000000000",
  "member_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "attachments": [
    {
      "filename": "file",
      "url": "https://example.com",
      "type": "application/pdf"
    }
  ],
  "body": "",
  "html": "",
  "include_booking_details": false,
  "include_booking_link": false,
  "include_ical_data": false,
  "include_product_image": false,
  "send_at": "2025-02-22T08:26:32.519Z",
  "status": "sent",
  "subject": "",
  "template": "",
  "type": "email"
}

List emails

Filters

idFilter<uuid>

Unique identifier

calendar_event_idFilter<uuid | null>
calendar_events.id

Identifier of the related calendar event

email_template_idFilter<uuid | null>
email_templates.id

Identifier of the email template this email is based on

member_idFilter<uuid | null>
members.id

Identifier of the member that sent the email

created_atFilter<timestamp with time zone>

Creation timestamp

attachmentsFilter<Array<{ filename: string; url: string; type: string }> | null>

List of attachments to include in the email

bodyFilter<text>

Body of the email

htmlFilter<text | null>

HTML of the email

include_booking_detailsFilter<boolean>

Whether booking details should be included in the email

include_booking_linkFilter<boolean>

Whether a link to the booking status page should be included in the email

include_ical_dataFilter<boolean>

Whether an iCal attachment should be included in the email

include_product_imageFilter<boolean>

Whether a product image should be included in the email

send_atFilter<timestamp with time zone>

Timestamp at which the email is sent or should be sent

statusFilter<"manually-scheduled" | "scheduled-around-arrival" | "scheduled-around-departure" | "sent">

Status of the email

subjectFilter<text>

Subject of the email

templateFilter<text | null>

Template of the email

typeFilter<"email" | "sms">

Responses

200

A list of emails with the selected columns

206

Partial Content

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

External calendars

Calendars which are being imported. Useful for syncing bookings with services like Airbnb or booking.com.

The external calendar object

Attributes

iduuid

Unique identifier

product_iduuid
products.id

Identifier of the product this calendar is related to

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone | null

Timestamp at which the calendar last received new events

activeboolean

Whether the external calendar is active

errortext | null

Error message if the calendar could not be synced

ical_urltext

URL of the iCal feed

last_syncedtimestamp with time zone | null

Timestamp at which the calendar was last synced

nametext | null

Name of the calendar

sync_requested_attimestamp with time zone

Timestamp at which a sync was last requested

time_offsetinteger
tldtext
update_fieldsArray<ExternalCalendarUpdateField>
The external calendar object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "active": true,
  "error": "",
  "ical_url": "",
  "last_synced": "2025-02-22T08:26:32.519Z",
  "name": "",
  "sync_requested_at": "2025-02-22T08:26:32.519Z",
  "time_offset": 0,
  "tld": "",
  "update_fields": "[start_date, end_date]"
}

List external calendars

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the product this calendar is related to

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone | null>

Timestamp at which the calendar last received new events

activeFilter<boolean>

Whether the external calendar is active

errorFilter<text | null>

Error message if the calendar could not be synced

ical_urlFilter<text>

URL of the iCal feed

last_syncedFilter<timestamp with time zone | null>

Timestamp at which the calendar was last synced

nameFilter<text | null>

Name of the calendar

sync_requested_atFilter<timestamp with time zone>

Timestamp at which a sync was last requested

time_offsetFilter<integer>
tldFilter<text>
update_fieldsFilter<Array<ExternalCalendarUpdateField>>

Responses

200

A list of external calendars with the selected columns

206

Partial Content

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

Create external calendars

Body

Partial<ExternalCalendar> | Array<Partial<ExternalCalendar>>

Responses

201

The newly created external calendars with the selected columns

POST /external_calendars
curl -X POST "https://api.bookingmood.com/v1/external_calendars" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete external calendars

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the product this calendar is related to

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone | null>

Timestamp at which the calendar last received new events

activeFilter<boolean>

Whether the external calendar is active

errorFilter<text | null>

Error message if the calendar could not be synced

ical_urlFilter<text>

URL of the iCal feed

last_syncedFilter<timestamp with time zone | null>

Timestamp at which the calendar was last synced

nameFilter<text | null>

Name of the calendar

sync_requested_atFilter<timestamp with time zone>

Timestamp at which a sync was last requested

time_offsetFilter<integer>
tldFilter<text>
update_fieldsFilter<Array<ExternalCalendarUpdateField>>

Responses

204

The deleted external calendars with the selected columns

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

Update external calendars

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the product this calendar is related to

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone | null>

Timestamp at which the calendar last received new events

activeFilter<boolean>

Whether the external calendar is active

errorFilter<text | null>

Error message if the calendar could not be synced

ical_urlFilter<text>

URL of the iCal feed

last_syncedFilter<timestamp with time zone | null>

Timestamp at which the calendar was last synced

nameFilter<text | null>

Name of the calendar

sync_requested_atFilter<timestamp with time zone>

Timestamp at which a sync was last requested

time_offsetFilter<integer>
tldFilter<text>
update_fieldsFilter<Array<ExternalCalendarUpdateField>>

Body

Partial<ExternalCalendar>

Responses

204

The updated external calendars with the selected columns

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

Invoices

Invoices for bookings

The invoice object

Attributes

iduuid

Unique identifier

booking_iduuid | null
bookings.id

Identifier of the related booking

organization_iduuid
organizations.id

Identifier of the organization this invoice is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

referencetext

Invoice reference

The invoice object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "reference": ""
}

List invoices

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

organization_idFilter<uuid>
organizations.id

Identifier of the organization this invoice is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

referenceFilter<text>

Invoice reference

Responses

200

A list of invoices with the selected columns

206

Partial Content

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

Create invoices

Body

Partial<Invoice> | Array<Partial<Invoice>>

Responses

201

The newly created invoices with the selected columns

POST /invoices
curl -X POST "https://api.bookingmood.com/v1/invoices" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete invoices

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

organization_idFilter<uuid>
organizations.id

Identifier of the organization this invoice is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

referenceFilter<text>

Invoice reference

Responses

204

The deleted invoices with the selected columns

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

Update invoices

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid | null>
bookings.id

Identifier of the related booking

organization_idFilter<uuid>
organizations.id

Identifier of the organization this invoice is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

referenceFilter<text>

Invoice reference

Body

Partial<Invoice>

Responses

204

The updated invoices with the selected columns

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

The line item tax object

Attributes

iduuid

Unique identifier

line_item_iduuid
line_items.id

Identifier of the related line item

tax_iduuid | null
taxes.id

Identifier of the related tax

amountinteger

Amount of the tax

nameMultiLanguageString

Name of the tax

percentagereal

Percentage of the tax

type"on-top" | "included"

Type of the tax

The line item tax object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "line_item_id": "00000000-0000-0000-0000-000000000000",
  "tax_id": "00000000-0000-0000-0000-000000000000",
  "amount": 0,
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "percentage": 0,
  "type": "on-top"
}

List line item taxes

Filters

idFilter<uuid>

Unique identifier

line_item_idFilter<uuid>
line_items.id

Identifier of the related line item

tax_idFilter<uuid | null>
taxes.id

Identifier of the related tax

amountFilter<integer>

Amount of the tax

nameFilter<MultiLanguageString>

Name of the tax

percentageFilter<real>

Percentage of the tax

typeFilter<"on-top" | "included">

Type of the tax

Responses

200

A list of line item taxes with the selected columns

206

Partial Content

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

Create line item taxes

Body

Partial<LineItemTax> | Array<Partial<LineItemTax>>

Responses

201

The newly created line item taxes with the selected columns

POST /line_item_taxes
curl -X POST "https://api.bookingmood.com/v1/line_item_taxes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete line item taxes

Filters

idFilter<uuid>

Unique identifier

line_item_idFilter<uuid>
line_items.id

Identifier of the related line item

tax_idFilter<uuid | null>
taxes.id

Identifier of the related tax

amountFilter<integer>

Amount of the tax

nameFilter<MultiLanguageString>

Name of the tax

percentageFilter<real>

Percentage of the tax

typeFilter<"on-top" | "included">

Type of the tax

Responses

204

The deleted line item taxes with the selected columns

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

Update line item taxes

Filters

idFilter<uuid>

Unique identifier

line_item_idFilter<uuid>
line_items.id

Identifier of the related line item

tax_idFilter<uuid | null>
taxes.id

Identifier of the related tax

amountFilter<integer>

Amount of the tax

nameFilter<MultiLanguageString>

Name of the tax

percentageFilter<real>

Percentage of the tax

typeFilter<"on-top" | "included">

Type of the tax

Body

Partial<LineItemTax>

Responses

204

The updated line item taxes with the selected columns

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

Line items

Invoice lines for booking invoices

The line item object

Attributes

iduuid

Unique identifier

booking_iduuid
bookings.id

Identifier of the related booking

invoice_iduuid | null
invoices.id

Identifier of the related invoice

service_iduuid | null
services.id

Identifier of the related service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

amountinteger

Amount of the line item

fee_type"fee" | "deposit"

Type of the fee. fee or deposit

item_typetext

Type of the line item. Most commonly fee

nameMultiLanguageString

Name of the line item

quantityinteger

Quantity of the line item

The line item object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "invoice_id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "amount": 0,
  "fee_type": "fee",
  "item_type": "rent",
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "quantity": 0
}

List line items

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid | null>
invoices.id

Identifier of the related invoice

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Amount of the line item

fee_typeFilter<"fee" | "deposit">

Type of the fee. fee or deposit

item_typeFilter<text>

Type of the line item. Most commonly fee

nameFilter<MultiLanguageString>

Name of the line item

quantityFilter<integer>

Quantity of the line item

Responses

200

A list of line items with the selected columns

206

Partial Content

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

Create line items

Body

Partial<LineItem> | Array<Partial<LineItem>>

Responses

201

The newly created line items with the selected columns

POST /line_items
curl -X POST "https://api.bookingmood.com/v1/line_items" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete line items

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid | null>
invoices.id

Identifier of the related invoice

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Amount of the line item

fee_typeFilter<"fee" | "deposit">

Type of the fee. fee or deposit

item_typeFilter<text>

Type of the line item. Most commonly fee

nameFilter<MultiLanguageString>

Name of the line item

quantityFilter<integer>

Quantity of the line item

Responses

204

The deleted line items with the selected columns

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

Update line items

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid | null>
invoices.id

Identifier of the related invoice

service_idFilter<uuid | null>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Amount of the line item

fee_typeFilter<"fee" | "deposit">

Type of the fee. fee or deposit

item_typeFilter<text>

Type of the line item. Most commonly fee

nameFilter<MultiLanguageString>

Name of the line item

quantityFilter<integer>

Quantity of the line item

Body

Partial<LineItem>

Responses

204

The updated line items with the selected columns

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

Members

Organization members.

The member object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this member is defined in

user_iduuid
user_profiles.user_id

Identifier of the related user

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

role"user" | "admin" | "superuser"

Role of the member

The member object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "role": "user"
}

List members

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this member is defined in

user_idFilter<uuid>
user_profiles.user_id

Identifier of the related user

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

roleFilter<"user" | "admin" | "superuser">

Role of the member

Responses

200

A list of members with the selected columns

206

Partial Content

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

Invite member

Invite a member to your organization. The member will receive an email with a link to accept the invitation. The member will have the user role. To make a member admin or superuser use the dashboard.

Body

emailrequiredstring

The email address of the member to invite.

languageAppLanguage

The member's preferred language.

namestring

The name of the member to invite.

Responses

201

The invited member with user profile information

POST /members
curl -X POST "https://api.bookingmood.com/v1/members" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "email": "johndoe@example.com",
    "name": "John Doe"
  }'
Example response

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "role": "user",
  "user_profile": {
    "referrer_id": "00000000-0000-0000-0000-000000000000",
    "user_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2025-02-22T08:26:32.519Z",
    "updated_at": "2025-02-22T08:26:32.519Z",
    "avatar": "",
    "email": "",
    "first_week_contains_date": 0,
    "last_login_at": "2025-02-22T08:26:32.519Z",
    "locale": "en-US",
    "name": "",
    "source": "",
    "week_starts_on": 0
  }
}

Revoke member

Revoke a member from your organization. The member will no longer have access to your organization. Only works for members with the user role. To revoke an admin or superuser members use the dashboard.

Parameters

idrequireduuid

The identifier of the member to revoke.

Responses

200

The deleted member

DELETE /members
curl -X DELETE "https://api.bookingmood.com/v1/members?id=00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY"

Payments

Booking payments. Both planned, partially paid and paid.

The payment object

Attributes

iduuid

Unique identifier

booking_iduuid
bookings.id

Identifier of the related booking

invoice_iduuid
invoices.id

Identifier of the related invoice

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

amountinteger

Total amount of the payment

currencyCurrency

Currency of the payment

due_attimestamp with time zone

Timestamp at which the payment is due

offlineboolean
paidinteger

Amount of the payment that was paid

referencetext
The payment object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "invoice_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "amount": 0,
  "currency": "USD",
  "due_at": "2025-02-22T08:26:32.519Z",
  "offline": false,
  "paid": 0,
  "reference": ""
}

List payments

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid>
invoices.id

Identifier of the related invoice

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Total amount of the payment

currencyFilter<Currency>

Currency of the payment

due_atFilter<timestamp with time zone>

Timestamp at which the payment is due

offlineFilter<boolean>
paidFilter<integer>

Amount of the payment that was paid

referenceFilter<text>

Responses

200

A list of payments with the selected columns

206

Partial Content

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

Create payments

Body

Partial<Payment> | Array<Partial<Payment>>

Responses

201

The newly created payments with the selected columns

POST /payments
curl -X POST "https://api.bookingmood.com/v1/payments" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete payments

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid>
invoices.id

Identifier of the related invoice

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Total amount of the payment

currencyFilter<Currency>

Currency of the payment

due_atFilter<timestamp with time zone>

Timestamp at which the payment is due

offlineFilter<boolean>
paidFilter<integer>

Amount of the payment that was paid

referenceFilter<text>

Responses

204

The deleted payments with the selected columns

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

Update payments

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid>
invoices.id

Identifier of the related invoice

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Total amount of the payment

currencyFilter<Currency>

Currency of the payment

due_atFilter<timestamp with time zone>

Timestamp at which the payment is due

offlineFilter<boolean>
paidFilter<integer>

Amount of the payment that was paid

referenceFilter<text>

Body

Partial<Payment>

Responses

204

The updated payments with the selected columns

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

Permissions

Access level for team members with the user role per unit.

The permission object

Attributes

iduuid

Unique identifier

member_iduuid
members.id

Identifier of the related member

product_iduuid
products.id

Identifier of the related unit

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

bookings"none" | "maintenance" | "view" | "manage"

Bookings permission level

notifications"none" | "non-financial" | "all"

Notifications permission level

permission"maintenance" | "view-bookings" | "manage-bookings" | "all"

Permission level

settings"none" | "all"

Settings permission level

The permission object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "member_id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "bookings": "view",
  "notifications": "none",
  "permission": "view-bookings",
  "settings": "none"
}

List permissions

Filters

idFilter<uuid>

Unique identifier

member_idFilter<uuid>
members.id

Identifier of the related member

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

bookingsFilter<"none" | "maintenance" | "view" | "manage">

Bookings permission level

notificationsFilter<"none" | "non-financial" | "all">

Notifications permission level

permissionFilter<"maintenance" | "view-bookings" | "manage-bookings" | "all">

Permission level

settingsFilter<"none" | "all">

Settings permission level

Responses

200

A list of permissions with the selected columns

206

Partial Content

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

Create permissions

Body

Partial<Permission> | Array<Partial<Permission>>

Responses

201

The newly created permissions with the selected columns

POST /permissions
curl -X POST "https://api.bookingmood.com/v1/permissions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete permissions

Filters

idFilter<uuid>

Unique identifier

member_idFilter<uuid>
members.id

Identifier of the related member

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

bookingsFilter<"none" | "maintenance" | "view" | "manage">

Bookings permission level

notificationsFilter<"none" | "non-financial" | "all">

Notifications permission level

permissionFilter<"maintenance" | "view-bookings" | "manage-bookings" | "all">

Permission level

settingsFilter<"none" | "all">

Settings permission level

Responses

204

The deleted permissions with the selected columns

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

Update permissions

Filters

idFilter<uuid>

Unique identifier

member_idFilter<uuid>
members.id

Identifier of the related member

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

bookingsFilter<"none" | "maintenance" | "view" | "manage">

Bookings permission level

notificationsFilter<"none" | "non-financial" | "all">

Notifications permission level

permissionFilter<"maintenance" | "view-bookings" | "manage-bookings" | "all">

Permission level

settingsFilter<"none" | "all">

Settings permission level

Body

Partial<Permission>

Responses

204

The updated permissions with the selected columns

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

The product attribute option object

Attributes

iduuid

Unique identifier

option_iduuid
attribute_options.id

Identifier of the related option

product_iduuid
products.id

Identifier of the related unit

created_attimestamp with time zone

Creation timestamp

The product attribute option object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "option_id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List product attribute options

Filters

idFilter<uuid>

Unique identifier

option_idFilter<uuid>
attribute_options.id

Identifier of the related option

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of product attribute options with the selected columns

206

Partial Content

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

Create product attribute options

Body

Partial<ProductAttributeOption> | Array<Partial<ProductAttributeOption>>

Responses

201

The newly created product attribute options with the selected columns

POST /product_attribute_options
curl -X POST "https://api.bookingmood.com/v1/product_attribute_options" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete product attribute options

Filters

idFilter<uuid>

Unique identifier

option_idFilter<uuid>
attribute_options.id

Identifier of the related option

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted product attribute options with the selected columns

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

Update product attribute options

Filters

idFilter<uuid>

Unique identifier

option_idFilter<uuid>
attribute_options.id

Identifier of the related option

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<ProductAttributeOption>

Responses

204

The updated product attribute options with the selected columns

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

Product calendar logs

Logs for each time the ical feed of a unit is read by an external platform

The product calendar log object

Attributes

idbigint

Unique identifier

product_iduuid
products.id

Identifier of the related unit

created_attimestamp with time zone

Creation timestamp

paramsjsonb

Params of the request

referrertext

Referrer of the request

status"success" | "error"

Status of the request

The product calendar log object

JSON

{
  "id": 0,
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "params": {},
  "referrer": "",
  "status": "success"
}

List product calendar logs

Filters

idFilter<bigint>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

paramsFilter<jsonb>

Params of the request

referrerFilter<text>

Referrer of the request

statusFilter<"success" | "error">

Status of the request

Responses

200

A list of product calendar logs with the selected columns

206

Partial Content

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

Product configurations

Rate and availability configurations. Applied per unit on multiple intervals

The product configuration object

Attributes

iduuid

Unique identifier

product_iduuid
products.id

Identifier of the related unit

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

check_in_days[boolean, boolean, boolean, boolean, boolean, boolean, boolean]

List of days of the week on which check-in is possible

checkout_days[boolean, boolean, boolean, boolean, boolean, boolean, boolean]

List of days of the week on which check-out is possible

colortext

Color to distinguish the configuration from others

ftstsvector

Full text search index

intervalsdatemultirange
max_advanceinteger

Maximum number of days between booking and arrival

max_durationinteger

Maximum duration of a booking in days

min_advanceinteger

Minimum number of days between booking and arrival

min_durationinteger

Minimum duration of a booking in days

nameMultiLanguageString

Localized name

new_ratesArray<{ duration: number; occupancy: number; rate: number }>

Rate per night on day X of a booking given some occupancy

orderinteger
The product configuration object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "check_in_days": [
    true,
    false,
    true,
    false,
    true,
    false,
    true
  ],
  "checkout_days": [
    true,
    false,
    true,
    false,
    true,
    false,
    true
  ],
  "color": "#FACC15",
  "intervals": null,
  "max_advance": 365,
  "max_duration": 30,
  "min_advance": 0,
  "min_duration": 1,
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "new_rates": [
    {
      "duration": 1,
      "occupancy": 1,
      "rate": 1500
    }
  ],
  "order": 0
}

List product configurations

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

check_in_daysFilter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>

List of days of the week on which check-in is possible

checkout_daysFilter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>

List of days of the week on which check-out is possible

colorFilter<text>

Color to distinguish the configuration from others

ftsFilter<tsvector>

Full text search index

intervalsFilter<datemultirange>
max_advanceFilter<integer>

Maximum number of days between booking and arrival

max_durationFilter<integer>

Maximum duration of a booking in days

min_advanceFilter<integer>

Minimum number of days between booking and arrival

min_durationFilter<integer>

Minimum duration of a booking in days

nameFilter<MultiLanguageString>

Localized name

new_ratesFilter<Array<{ duration: number; occupancy: number; rate: number }>>

Rate per night on day X of a booking given some occupancy

orderFilter<integer>

Responses

200

A list of product configurations with the selected columns

206

Partial Content

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

Create product configurations

Body

Partial<ProductConfiguration> | Array<Partial<ProductConfiguration>>

Responses

201

The newly created product configurations with the selected columns

POST /product_configurations
curl -X POST "https://api.bookingmood.com/v1/product_configurations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete product configurations

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

check_in_daysFilter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>

List of days of the week on which check-in is possible

checkout_daysFilter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>

List of days of the week on which check-out is possible

colorFilter<text>

Color to distinguish the configuration from others

ftsFilter<tsvector>

Full text search index

intervalsFilter<datemultirange>
max_advanceFilter<integer>

Maximum number of days between booking and arrival

max_durationFilter<integer>

Maximum duration of a booking in days

min_advanceFilter<integer>

Minimum number of days between booking and arrival

min_durationFilter<integer>

Minimum duration of a booking in days

nameFilter<MultiLanguageString>

Localized name

new_ratesFilter<Array<{ duration: number; occupancy: number; rate: number }>>

Rate per night on day X of a booking given some occupancy

orderFilter<integer>

Responses

204

The deleted product configurations with the selected columns

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

Update product configurations

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

check_in_daysFilter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>

List of days of the week on which check-in is possible

checkout_daysFilter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>

List of days of the week on which check-out is possible

colorFilter<text>

Color to distinguish the configuration from others

ftsFilter<tsvector>

Full text search index

intervalsFilter<datemultirange>
max_advanceFilter<integer>

Maximum number of days between booking and arrival

max_durationFilter<integer>

Maximum duration of a booking in days

min_advanceFilter<integer>

Minimum number of days between booking and arrival

min_durationFilter<integer>

Minimum duration of a booking in days

nameFilter<MultiLanguageString>

Localized name

new_ratesFilter<Array<{ duration: number; occupancy: number; rate: number }>>

Rate per night on day X of a booking given some occupancy

orderFilter<integer>

Body

Partial<ProductConfiguration>

Responses

204

The updated product configurations with the selected columns

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

The product email template object

Attributes

iduuid

Unique identifier

email_template_iduuid
email_templates.id

Identifier of the related email template

product_iduuid
products.id

Identifier of the related unit

created_attimestamp with time zone

Creation timestamp

orderinteger

Order of the email template as displayed in the admin

The product email template object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "email_template_id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "order": 0
}

List product email templates

Filters

idFilter<uuid>

Unique identifier

email_template_idFilter<uuid>
email_templates.id

Identifier of the related email template

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

orderFilter<integer>

Order of the email template as displayed in the admin

Responses

200

A list of product email templates with the selected columns

206

Partial Content

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

Create product email templates

Body

Partial<ProductEmailTemplate> | Array<Partial<ProductEmailTemplate>>

Responses

201

The newly created product email templates with the selected columns

POST /product_email_templates
curl -X POST "https://api.bookingmood.com/v1/product_email_templates" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete product email templates

Filters

idFilter<uuid>

Unique identifier

email_template_idFilter<uuid>
email_templates.id

Identifier of the related email template

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

orderFilter<integer>

Order of the email template as displayed in the admin

Responses

204

The deleted product email templates with the selected columns

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

Update product email templates

Filters

idFilter<uuid>

Unique identifier

email_template_idFilter<uuid>
email_templates.id

Identifier of the related email template

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

orderFilter<integer>

Order of the email template as displayed in the admin

Body

Partial<ProductEmailTemplate>

Responses

204

The updated product email templates with the selected columns

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

The product reply to addresse object

Attributes

iduuid

Unique identifier

product_iduuid
products.id

Identifier of the related unit

reply_to_address_iduuid
reply_to_addresses.id

Identifier of the related reply-to address

created_attimestamp with time zone

Creation timestamp

The product reply to addresse object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "reply_to_address_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List product reply to addresses

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

reply_to_address_idFilter<uuid>
reply_to_addresses.id

Identifier of the related reply-to address

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of product reply to addresses with the selected columns

206

Partial Content

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

Create product reply to addresses

Body

Partial<ProductReplyToAddresse> | Array<Partial<ProductReplyToAddresse>>

Responses

201

The newly created product reply to addresses with the selected columns

POST /product_reply_to_addresses
curl -X POST "https://api.bookingmood.com/v1/product_reply_to_addresses" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete product reply to addresses

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

reply_to_address_idFilter<uuid>
reply_to_addresses.id

Identifier of the related reply-to address

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted product reply to addresses with the selected columns

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

Update product reply to addresses

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

reply_to_address_idFilter<uuid>
reply_to_addresses.id

Identifier of the related reply-to address

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<ProductReplyToAddresse>

Responses

204

The updated product reply to addresses with the selected columns

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

Product services

Services included in the booking form of a unit

The product service object

Attributes

iduuid

Unique identifier

product_iduuid
products.id

Identifier of the related unit

service_iduuid
services.id

Identifier of the related service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

orderinteger

Order of the service in the booking form of the unit

The product service object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "order": 0
}

List product services

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<integer>

Order of the service in the booking form of the unit

Responses

200

A list of product services with the selected columns

206

Partial Content

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

Create product services

Body

Partial<ProductService> | Array<Partial<ProductService>>

Responses

201

The newly created product services with the selected columns

POST /product_services
curl -X POST "https://api.bookingmood.com/v1/product_services" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete product services

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<integer>

Order of the service in the booking form of the unit

Responses

204

The deleted product services with the selected columns

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

Update product services

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<integer>

Order of the service in the booking form of the unit

Body

Partial<ProductService>

Responses

204

The updated product services with the selected columns

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

Product tasks

Tasks required for all bookings for a unit

The product task object

Attributes

iduuid

Unique identifier

assignee_iduuid | null
members.id

Identifier of the default assignee for this task

product_iduuid
products.id

Identifier of the related unit

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

labeltext

Label of the task

momentMomentExpression

Moment at which the task should be completed

status"CANCELLED" | "TENTATIVE" | "CONFIRMED"

Whether the task only applies to confirmed events, or also to pending events

timetime without time zone | null

Time at which the task should be scheduled

The product task object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "assignee_id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "label": "",
  "moment": {
    "type": "check-in",
    "offset": 1
  },
  "status": "CONFIRMED",
  "time": null
}

List product tasks

Filters

idFilter<uuid>

Unique identifier

assignee_idFilter<uuid | null>
members.id

Identifier of the default assignee for this task

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

labelFilter<text>

Label of the task

momentFilter<MomentExpression>

Moment at which the task should be completed

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Whether the task only applies to confirmed events, or also to pending events

timeFilter<time without time zone | null>

Time at which the task should be scheduled

Responses

200

A list of product tasks with the selected columns

206

Partial Content

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

Create product tasks

Body

Partial<ProductTask> | Array<Partial<ProductTask>>

Responses

201

The newly created product tasks with the selected columns

POST /product_tasks
curl -X POST "https://api.bookingmood.com/v1/product_tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete product tasks

Filters

idFilter<uuid>

Unique identifier

assignee_idFilter<uuid | null>
members.id

Identifier of the default assignee for this task

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

labelFilter<text>

Label of the task

momentFilter<MomentExpression>

Moment at which the task should be completed

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Whether the task only applies to confirmed events, or also to pending events

timeFilter<time without time zone | null>

Time at which the task should be scheduled

Responses

204

The deleted product tasks with the selected columns

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

Update product tasks

Filters

idFilter<uuid>

Unique identifier

assignee_idFilter<uuid | null>
members.id

Identifier of the default assignee for this task

product_idFilter<uuid>
products.id

Identifier of the related unit

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

labelFilter<text>

Label of the task

momentFilter<MomentExpression>

Moment at which the task should be completed

statusFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">

Whether the task only applies to confirmed events, or also to pending events

timeFilter<time without time zone | null>

Time at which the task should be scheduled

Body

Partial<ProductTask>

Responses

204

The updated product tasks with the selected columns

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

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

descriptionMultiLanguageString

Localized description

exact_addresstext

Exact address of the unit

exact_coordinatesCoordinates | null

Coordinates of the exact address

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_definition"configurations" | "service"

Pricing definition of the unit. Either configuration or services

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

Status of new bookings. Only applies when interaction is request

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": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "deleted_at": "2025-02-22T08:26:32.519Z",
  "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",
  "description": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "exact_address": "",
  "exact_coordinates": {
    "lat": 52.379189,
    "lng": 4.899431
  },
  "hide_exact_address": false,
  "ical_export_secret": "",
  "ical_export_secret_no_details": "",
  "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": "configurations",
  "request_status": "TENTATIVE",
  "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

descriptionFilter<MultiLanguageString>

Localized description

exact_addressFilter<text>

Exact address of the unit

exact_coordinatesFilter<Coordinates | null>

Coordinates of the exact address

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<"configurations" | "service">

Pricing definition of the unit. Either configuration or services

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

Status of new bookings. Only applies when interaction is request

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

descriptionFilter<MultiLanguageString>

Localized description

exact_addressFilter<text>

Exact address of the unit

exact_coordinatesFilter<Coordinates | null>

Coordinates of the exact address

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<"configurations" | "service">

Pricing definition of the unit. Either configuration or services

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

Status of new bookings. Only applies when interaction is request

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"

The reply to addresse object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this reply-to address is defined in

emailtext

The email address to send the reply to

nametext

The display name of email address to send the reply to

The reply to addresse object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "email": "",
  "name": ""
}

List reply to addresses

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this reply-to address is defined in

emailFilter<text>

The email address to send the reply to

nameFilter<text>

The display name of email address to send the reply to

Responses

200

A list of reply to addresses with the selected columns

206

Partial Content

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

Create reply to addresses

Body

Partial<ReplyToAddresse> | Array<Partial<ReplyToAddresse>>

Responses

201

The newly created reply to addresses with the selected columns

POST /reply_to_addresses
curl -X POST "https://api.bookingmood.com/v1/reply_to_addresses" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete reply to addresses

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this reply-to address is defined in

emailFilter<text>

The email address to send the reply to

nameFilter<text>

The display name of email address to send the reply to

Responses

204

The deleted reply to addresses with the selected columns

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

Update reply to addresses

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this reply-to address is defined in

emailFilter<text>

The email address to send the reply to

nameFilter<text>

The display name of email address to send the reply to

Body

Partial<ReplyToAddresse>

Responses

204

The updated reply to addresses with the selected columns

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

Seasons

Season definitions. Useful for making re-usable pricing definitions

The season object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this season is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

nameMultiLanguageString

Localized name

valueSeasonExpression | null

List of intervals defining the season

The season object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "value": {
    "type": "recurring-date-range",
    "intervals": [
      {
        "min": {
          "month": 1,
          "day": 1
        },
        "max": {
          "month": 12,
          "day": 31
        }
      }
    ]
  }
}

List seasons

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this season is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

nameFilter<MultiLanguageString>

Localized name

valueFilter<SeasonExpression | null>

List of intervals defining the season

Responses

200

A list of seasons with the selected columns

206

Partial Content

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

Create seasons

Body

Partial<Season> | Array<Partial<Season>>

Responses

201

The newly created seasons with the selected columns

POST /seasons
curl -X POST "https://api.bookingmood.com/v1/seasons" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete seasons

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this season is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

nameFilter<MultiLanguageString>

Localized name

valueFilter<SeasonExpression | null>

List of intervals defining the season

Responses

204

The deleted seasons with the selected columns

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

Update seasons

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this season is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

nameFilter<MultiLanguageString>

Localized name

valueFilter<SeasonExpression | null>

List of intervals defining the season

Body

Partial<Season>

Responses

204

The updated seasons with the selected columns

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

The service deposit moment object

Attributes

iduuid

Unique identifier

service_iduuid
services.id

Identifier of the related service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

momentMomentExpression

Moment at which the deposit should be paid

valuePriceExpression

Value of the deposit

The service deposit moment object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "moment": {
    "type": "check-in",
    "offset": 1
  },
  "value": {
    "type": "absolute",
    "restrictions": [],
    "value": [
      {
        "value": 10,
        "occupancy_group_id": null,
        "period": null,
        "variable": null
      }
    ]
  }
}

List service deposit moments

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

momentFilter<MomentExpression>

Moment at which the deposit should be paid

valueFilter<PriceExpression>

Value of the deposit

Responses

200

A list of service deposit moments with the selected columns

206

Partial Content

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

Create service deposit moments

Body

Partial<ServiceDepositMoment> | Array<Partial<ServiceDepositMoment>>

Responses

201

The newly created service deposit moments with the selected columns

POST /service_deposit_moments
curl -X POST "https://api.bookingmood.com/v1/service_deposit_moments" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete service deposit moments

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

momentFilter<MomentExpression>

Moment at which the deposit should be paid

valueFilter<PriceExpression>

Value of the deposit

Responses

204

The deleted service deposit moments with the selected columns

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

Update service deposit moments

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

momentFilter<MomentExpression>

Moment at which the deposit should be paid

valueFilter<PriceExpression>

Value of the deposit

Body

Partial<ServiceDepositMoment>

Responses

204

The updated service deposit moments with the selected columns

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

The service deposit tax object

Attributes

iduuid
service_iduuid
services.id
tax_iduuid
taxes.id
created_attimestamp with time zone
The service deposit tax object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "tax_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List service deposit taxes

Filters

idFilter<uuid>
service_idFilter<uuid>
services.id
tax_idFilter<uuid>
taxes.id
created_atFilter<timestamp with time zone>

Responses

200

A list of service deposit taxes with the selected columns

206

Partial Content

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

Create service deposit taxes

Body

Partial<ServiceDepositTax> | Array<Partial<ServiceDepositTax>>

Responses

201

The newly created service deposit taxes with the selected columns

POST /service_deposit_taxes
curl -X POST "https://api.bookingmood.com/v1/service_deposit_taxes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete service deposit taxes

Filters

idFilter<uuid>
service_idFilter<uuid>
services.id
tax_idFilter<uuid>
taxes.id
created_atFilter<timestamp with time zone>

Responses

204

The deleted service deposit taxes with the selected columns

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

Update service deposit taxes

Filters

idFilter<uuid>
service_idFilter<uuid>
services.id
tax_idFilter<uuid>
taxes.id
created_atFilter<timestamp with time zone>

Body

Partial<ServiceDepositTax>

Responses

204

The updated service deposit taxes with the selected columns

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

The service discount object

Attributes

iduuid

Unique identifier

service_iduuid
services.id

Identifier of the related service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

definitionPriceExpression

Definition of the discount

nameMultiLanguageString

Localized name

The service discount object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "definition": {
    "type": "absolute",
    "restrictions": [],
    "value": [
      {
        "value": 10,
        "occupancy_group_id": null,
        "period": null,
        "variable": null
      }
    ]
  },
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  }
}

List service discounts

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

definitionFilter<PriceExpression>

Definition of the discount

nameFilter<MultiLanguageString>

Localized name

Responses

200

A list of service discounts with the selected columns

206

Partial Content

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

Create service discounts

Body

Partial<ServiceDiscount> | Array<Partial<ServiceDiscount>>

Responses

201

The newly created service discounts with the selected columns

POST /service_discounts
curl -X POST "https://api.bookingmood.com/v1/service_discounts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete service discounts

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

definitionFilter<PriceExpression>

Definition of the discount

nameFilter<MultiLanguageString>

Localized name

Responses

204

The deleted service discounts with the selected columns

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

Update service discounts

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

definitionFilter<PriceExpression>

Definition of the discount

nameFilter<MultiLanguageString>

Localized name

Body

Partial<ServiceDiscount>

Responses

204

The updated service discounts with the selected columns

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

The service payment moment object

Attributes

iduuid

Unique identifier

service_iduuid
services.id

Identifier of the related service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

momentMomentExpression

Moment at which the payment should be made

valuePriceExpression

Value of the payment

The service payment moment object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "moment": {
    "type": "check-in",
    "offset": 1
  },
  "value": {
    "type": "absolute",
    "restrictions": [],
    "value": [
      {
        "value": 10,
        "occupancy_group_id": null,
        "period": null,
        "variable": null
      }
    ]
  }
}

List service payment moments

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

momentFilter<MomentExpression>

Moment at which the payment should be made

valueFilter<PriceExpression>

Value of the payment

Responses

200

A list of service payment moments with the selected columns

206

Partial Content

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

Create service payment moments

Body

Partial<ServicePaymentMoment> | Array<Partial<ServicePaymentMoment>>

Responses

201

The newly created service payment moments with the selected columns

POST /service_payment_moments
curl -X POST "https://api.bookingmood.com/v1/service_payment_moments" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete service payment moments

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

momentFilter<MomentExpression>

Moment at which the payment should be made

valueFilter<PriceExpression>

Value of the payment

Responses

204

The deleted service payment moments with the selected columns

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

Update service payment moments

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

momentFilter<MomentExpression>

Moment at which the payment should be made

valueFilter<PriceExpression>

Value of the payment

Body

Partial<ServicePaymentMoment>

Responses

204

The updated service payment moments with the selected columns

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

The service tax object

Attributes

iduuid

Unique identifier

service_iduuid
services.id

Identifier of the related service

tax_iduuid
taxes.id

Identifier of the related tax

created_attimestamp with time zone

Creation timestamp

The service tax object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "service_id": "00000000-0000-0000-0000-000000000000",
  "tax_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z"
}

List service taxes

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

tax_idFilter<uuid>
taxes.id

Identifier of the related tax

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

200

A list of service taxes with the selected columns

206

Partial Content

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

Create service taxes

Body

Partial<ServiceTax> | Array<Partial<ServiceTax>>

Responses

201

The newly created service taxes with the selected columns

POST /service_taxes
curl -X POST "https://api.bookingmood.com/v1/service_taxes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete service taxes

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

tax_idFilter<uuid>
taxes.id

Identifier of the related tax

created_atFilter<timestamp with time zone>

Creation timestamp

Responses

204

The deleted service taxes with the selected columns

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

Update service taxes

Filters

idFilter<uuid>

Unique identifier

service_idFilter<uuid>
services.id

Identifier of the related service

tax_idFilter<uuid>
taxes.id

Identifier of the related tax

created_atFilter<timestamp with time zone>

Creation timestamp

Body

Partial<ServiceTax>

Responses

204

The updated service taxes with the selected columns

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

Services

Re-usable elements that can be included in the booking forms of units

The service object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this service is defined in

parent_iduuid | null
services.id

Identifier of the parent service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

depositPriceExpression | null

Deposit of the service

deposit_refund_momentMomentExpression | null
deposit_refund_policyMultiLanguageString
descriptionMultiLanguageString

Localized description

ftstsvector

Full text search index

labelMultiLanguageString

Localized label

metaPartial<ServiceMeta>

Meta data of the service

ordersmallint

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

pricePriceExpression | null

Price of the service

type | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "rent" | "short-text" | "statement" | "time"

Type of the service

The service object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "parent_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "deposit": {
    "type": "absolute",
    "restrictions": [],
    "value": [
      {
        "value": 10,
        "occupancy_group_id": null,
        "period": null,
        "variable": null
      }
    ]
  },
  "deposit_refund_moment": {
    "type": "check-in",
    "offset": 1
  },
  "deposit_refund_policy": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "description": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "label": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "meta": {
    "address_display": "single",
    "address_segments": {
      "city": "required",
      "country": "required",
      "phone_number_display": "international",
      "province": "required",
      "state": "required",
      "street": "required",
      "street2": "optional",
      "zip": "required"
    },
    "max": 10,
    "min": 1,
    "multiple_choice_display": "dropdown",
    "name_display": "single",
    "required": true
  },
  "order": 0,
  "price": {
    "type": "absolute",
    "restrictions": [],
    "value": [
      {
        "value": 10,
        "occupancy_group_id": null,
        "period": null,
        "variable": null
      }
    ]
  },
  "type": ""
}

List services

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this service is defined in

parent_idFilter<uuid | null>
services.id

Identifier of the parent service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

depositFilter<PriceExpression | null>

Deposit of the service

deposit_refund_momentFilter<MomentExpression | null>
deposit_refund_policyFilter<MultiLanguageString>
descriptionFilter<MultiLanguageString>

Localized description

ftsFilter<tsvector>

Full text search index

labelFilter<MultiLanguageString>

Localized label

metaFilter<Partial<ServiceMeta>>

Meta data of the service

orderFilter<smallint>

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

priceFilter<PriceExpression | null>

Price of the service

typeFilter< | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "rent" | "short-text" | "statement" | "time">

Type of the service

Responses

200

A list of services with the selected columns

206

Partial Content

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

Create services

Body

Partial<Service> | Array<Partial<Service>>

Responses

201

The newly created services with the selected columns

POST /services
curl -X POST "https://api.bookingmood.com/v1/services" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete services

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this service is defined in

parent_idFilter<uuid | null>
services.id

Identifier of the parent service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

depositFilter<PriceExpression | null>

Deposit of the service

deposit_refund_momentFilter<MomentExpression | null>
deposit_refund_policyFilter<MultiLanguageString>
descriptionFilter<MultiLanguageString>

Localized description

ftsFilter<tsvector>

Full text search index

labelFilter<MultiLanguageString>

Localized label

metaFilter<Partial<ServiceMeta>>

Meta data of the service

orderFilter<smallint>

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

priceFilter<PriceExpression | null>

Price of the service

typeFilter< | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "rent" | "short-text" | "statement" | "time">

Type of the service

Responses

204

The deleted services with the selected columns

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

Update services

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this service is defined in

parent_idFilter<uuid | null>
services.id

Identifier of the parent service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

depositFilter<PriceExpression | null>

Deposit of the service

deposit_refund_momentFilter<MomentExpression | null>
deposit_refund_policyFilter<MultiLanguageString>
descriptionFilter<MultiLanguageString>

Localized description

ftsFilter<tsvector>

Full text search index

labelFilter<MultiLanguageString>

Localized label

metaFilter<Partial<ServiceMeta>>

Meta data of the service

orderFilter<smallint>

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

priceFilter<PriceExpression | null>

Price of the service

typeFilter< | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "rent" | "short-text" | "statement" | "time">

Type of the service

Body

Partial<Service>

Responses

204

The updated services with the selected columns

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

The site listing object

Attributes

iduuid

Unique identifier

product_iduuid
products.id

Identifier of the related unit

site_iduuid
sites.id

Identifier of the site this listing is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

orderinteger

Order of the listing as displayed on the site

slugMultiLanguageString

Slug of the listing

The site listing object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "site_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "order": 0,
  "slug": {
    "default": "Hello",
    "nl-NL": "Hallo"
  }
}

List site listings

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

site_idFilter<uuid>
sites.id

Identifier of the site this listing is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<integer>

Order of the listing as displayed on the site

slugFilter<MultiLanguageString>

Slug of the listing

Responses

200

A list of site listings with the selected columns

206

Partial Content

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

Create site listings

Body

Partial<SiteListing> | Array<Partial<SiteListing>>

Responses

201

The newly created site listings with the selected columns

POST /site_listings
curl -X POST "https://api.bookingmood.com/v1/site_listings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete site listings

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

site_idFilter<uuid>
sites.id

Identifier of the site this listing is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<integer>

Order of the listing as displayed on the site

slugFilter<MultiLanguageString>

Slug of the listing

Responses

204

The deleted site listings with the selected columns

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

Update site listings

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

site_idFilter<uuid>
sites.id

Identifier of the site this listing is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<integer>

Order of the listing as displayed on the site

slugFilter<MultiLanguageString>

Slug of the listing

Body

Partial<SiteListing>

Responses

204

The updated site listings with the selected columns

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

Items in the navigation bar of a site

Attributes

iduuid

Unique identifier

parent_iduuid | null
site_nav_items.id

Identifier of the parent navigation item

site_iduuid
sites.id

Identifier of the site this navigation item is defined in

site_page_iduuid | null
site_pages.id

Identifier of the related page. Only applies when type is internal

created_attimestamp with time zone

Creation timestamp

labelMultiLanguageString

Localized label of the navigation item

orderinteger

Order of the navigation item as displayed on the site

target"_blank" | "_self"

Where the link is opened (_self, or _blank)

urlMultiLanguageString

URL of the navigation item. Only applies when type is external

The site nav item object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "parent_id": "00000000-0000-0000-0000-000000000000",
  "site_id": "00000000-0000-0000-0000-000000000000",
  "site_page_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "label": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "order": 0,
  "target": "_self",
  "url": {
    "default": "Hello",
    "nl-NL": "Hallo"
  }
}

Filters

idFilter<uuid>

Unique identifier

parent_idFilter<uuid | null>
site_nav_items.id

Identifier of the parent navigation item

site_idFilter<uuid>
sites.id

Identifier of the site this navigation item is defined in

site_page_idFilter<uuid | null>
site_pages.id

Identifier of the related page. Only applies when type is internal

created_atFilter<timestamp with time zone>

Creation timestamp

labelFilter<MultiLanguageString>

Localized label of the navigation item

orderFilter<integer>

Order of the navigation item as displayed on the site

targetFilter<"_blank" | "_self">

Where the link is opened (_self, or _blank)

urlFilter<MultiLanguageString>

URL of the navigation item. Only applies when type is external

Responses

200

A list of site nav items with the selected columns

206

Partial Content

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

Create site nav items

Body

Partial<SiteNavItem> | Array<Partial<SiteNavItem>>

Responses

201

The newly created site nav items with the selected columns

POST /site_nav_items
curl -X POST "https://api.bookingmood.com/v1/site_nav_items" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Filters

idFilter<uuid>

Unique identifier

parent_idFilter<uuid | null>
site_nav_items.id

Identifier of the parent navigation item

site_idFilter<uuid>
sites.id

Identifier of the site this navigation item is defined in

site_page_idFilter<uuid | null>
site_pages.id

Identifier of the related page. Only applies when type is internal

created_atFilter<timestamp with time zone>

Creation timestamp

labelFilter<MultiLanguageString>

Localized label of the navigation item

orderFilter<integer>

Order of the navigation item as displayed on the site

targetFilter<"_blank" | "_self">

Where the link is opened (_self, or _blank)

urlFilter<MultiLanguageString>

URL of the navigation item. Only applies when type is external

Responses

204

The deleted site nav items with the selected columns

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

Filters

idFilter<uuid>

Unique identifier

parent_idFilter<uuid | null>
site_nav_items.id

Identifier of the parent navigation item

site_idFilter<uuid>
sites.id

Identifier of the site this navigation item is defined in

site_page_idFilter<uuid | null>
site_pages.id

Identifier of the related page. Only applies when type is internal

created_atFilter<timestamp with time zone>

Creation timestamp

labelFilter<MultiLanguageString>

Localized label of the navigation item

orderFilter<integer>

Order of the navigation item as displayed on the site

targetFilter<"_blank" | "_self">

Where the link is opened (_self, or _blank)

urlFilter<MultiLanguageString>

URL of the navigation item. Only applies when type is external

Body

Partial<SiteNavItem>

Responses

204

The updated site nav items with the selected columns

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

Site pages

Additional pages on a site

The site page object

Attributes

iduuid

Unique identifier

site_iduuid
sites.id

Identifier of the site this page is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

descriptionMultiLanguageString

Localized description of the page

nodejsonb
slugMultiLanguageString

Slug of the page

status"draft" | "published"

Publication status of the page

titleMultiLanguageString

Localized title of the page

The site page object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "site_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "description": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "node": {},
  "slug": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "status": "draft",
  "title": {
    "default": "Hello",
    "nl-NL": "Hallo"
  }
}

List site pages

Filters

idFilter<uuid>

Unique identifier

site_idFilter<uuid>
sites.id

Identifier of the site this page is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<MultiLanguageString>

Localized description of the page

nodeFilter<jsonb>
slugFilter<MultiLanguageString>

Slug of the page

statusFilter<"draft" | "published">

Publication status of the page

titleFilter<MultiLanguageString>

Localized title of the page

Responses

200

A list of site pages with the selected columns

206

Partial Content

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

Create site pages

Body

Partial<SitePage> | Array<Partial<SitePage>>

Responses

201

The newly created site pages with the selected columns

POST /site_pages
curl -X POST "https://api.bookingmood.com/v1/site_pages" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete site pages

Filters

idFilter<uuid>

Unique identifier

site_idFilter<uuid>
sites.id

Identifier of the site this page is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<MultiLanguageString>

Localized description of the page

nodeFilter<jsonb>
slugFilter<MultiLanguageString>

Slug of the page

statusFilter<"draft" | "published">

Publication status of the page

titleFilter<MultiLanguageString>

Localized title of the page

Responses

204

The deleted site pages with the selected columns

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

Update site pages

Filters

idFilter<uuid>

Unique identifier

site_idFilter<uuid>
sites.id

Identifier of the site this page is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<MultiLanguageString>

Localized description of the page

nodeFilter<jsonb>
slugFilter<MultiLanguageString>

Slug of the page

statusFilter<"draft" | "published">

Publication status of the page

titleFilter<MultiLanguageString>

Localized title of the page

Body

Partial<SitePage>

Responses

204

The updated site pages with the selected columns

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

Site views

Logs of each pageview for a site

The site view object

Attributes

idinteger

Unique identifier

site_iduuid
sites.id

Identifier of the site this view is related to

created_attimestamp with time zone

Creation timestamp

countrytext | null

Country of the view

pathnametext

Pathname of the page

referertext | null

Referer of the view

sessionuuid

Session identifier

The site view object

JSON

{
  "id": 0,
  "site_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "country": "",
  "pathname": "",
  "referer": "",
  "session": "00000000-0000-0000-0000-000000000000"
}

List site views

Filters

idFilter<integer>

Unique identifier

site_idFilter<uuid>
sites.id

Identifier of the site this view is related to

created_atFilter<timestamp with time zone>

Creation timestamp

countryFilter<text | null>

Country of the view

pathnameFilter<text>

Pathname of the page

refererFilter<text | null>

Referer of the view

sessionFilter<uuid>

Session identifier

Responses

200

A list of site views with the selected columns

206

Partial Content

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

Sites

Websites, either single-unit or catalog sites.

The site object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this site is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

autocomplete_date_selectionboolean

Whether to autocomplete the date selection when only one date is available

color_backgroundtext

Background color of the site

color_bookedtext
color_closedtext
color_errortext

Error color of the site

color_headertext
color_infotext
color_primarytext

Primary color of the site

color_texttext

Text color of the site

color_unavailabletext
color_warningtext
covertext | null

URL of the cover image

currencyCurrency

Currency of the site

custom_domaintext | null

Custom domain of the site

date_visibility"all" | "hide-unavailable" | "hide-closed" | "custom"

Visible dates in the calendar. Either all or available

filterstext[]

Filters to show in the search bar

first_week_contains_date1 | 4 | null

First week of the year. Either 1 (first week with a Thursday) or 4 (first week with a Monday)

fonttext | null

Font of the site

icontext | null

URL of the icon image

initial_date"today" | "next-open" | "next-available"

Initial date shown in the calendar

interval_wrap_style"square" | "jagged"

Style of the interval when wrapping weeks

logotext | null

URL of the logo image

logo_alttext | null

Alt text of the logo image

nameMultiLanguageString

Localized name

password_hashtext | null

Hash of the password required to access the site

pricing_versiontext
rate_location"inline" | "tooltip"

Location where rates are shown in the calendar. Either inline or tooltip

rate_visibility"all" | "available" | "none"

Visibility of rates in the calendar. Either all, available or none

related_listingsinteger | null

Number of related listings to show on detail pages

show_booked_as"booked" | "unavailable"
show_brandingboolean

Whether to show the Bookingmood branding

show_closed_as"closed" | "unavailable"
show_legendboolean

Whether to show a legend in the calendar

show_organization_description_sectionboolean

Whether to show the organization description section

show_pending_as"CANCELLED" | "TENTATIVE" | "CONFIRMED"
show_pricingboolean
show_totalsboolean

Whether to show totals in the calendar

show_unavailable_resultsboolean
subdomaintext

Subdomain of the site

type"listing-site" | "single-unit-site"

Type of the site, either single-unit-site or listing-site

week_starts_on0 | 1 | null

First day of the week. Either 1 or 0

The site object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "autocomplete_date_selection": false,
  "color_background": "#fff",
  "color_booked": "#faa5a5",
  "color_closed": "#f5f5f5",
  "color_error": "#faa5a5",
  "color_header": "#000",
  "color_info": "#2463eb",
  "color_primary": "#22c55e",
  "color_text": "#000",
  "color_unavailable": "#faa5a5",
  "color_warning": "#a75c03",
  "cover": "",
  "currency": "USD",
  "custom_domain": "",
  "date_visibility": "all",
  "filters": [
    ""
  ],
  "first_week_contains_date": 0,
  "font": "",
  "icon": "",
  "initial_date": "today",
  "interval_wrap_style": "square",
  "logo": "",
  "logo_alt": "",
  "name": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "password_hash": "",
  "pricing_version": "V0",
  "rate_location": "inline",
  "rate_visibility": "available",
  "related_listings": 6,
  "show_booked_as": "unavailable",
  "show_branding": true,
  "show_closed_as": "closed",
  "show_legend": true,
  "show_organization_description_section": true,
  "show_pending_as": "TENTATIVE",
  "show_pricing": true,
  "show_totals": true,
  "show_unavailable_results": true,
  "subdomain": "",
  "type": "listing-site",
  "week_starts_on": 0
}

List sites

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this site is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

autocomplete_date_selectionFilter<boolean>

Whether to autocomplete the date selection when only one date is available

color_backgroundFilter<text>

Background color of the site

color_bookedFilter<text>
color_closedFilter<text>
color_errorFilter<text>

Error color of the site

color_headerFilter<text>
color_infoFilter<text>
color_primaryFilter<text>

Primary color of the site

color_textFilter<text>

Text color of the site

color_unavailableFilter<text>
color_warningFilter<text>
coverFilter<text | null>

URL of the cover image

currencyFilter<Currency>

Currency of the site

custom_domainFilter<text | null>

Custom domain of the site

date_visibilityFilter<"all" | "hide-unavailable" | "hide-closed" | "custom">

Visible dates in the calendar. Either all or available

filtersFilter<text[]>

Filters to show in the search bar

first_week_contains_dateFilter<1 | 4 | null>

First week of the year. Either 1 (first week with a Thursday) or 4 (first week with a Monday)

fontFilter<text | null>

Font of the site

iconFilter<text | null>

URL of the icon image

initial_dateFilter<"today" | "next-open" | "next-available">

Initial date shown in the calendar

interval_wrap_styleFilter<"square" | "jagged">

Style of the interval when wrapping weeks

logoFilter<text | null>

URL of the logo image

logo_altFilter<text | null>

Alt text of the logo image

nameFilter<MultiLanguageString>

Localized name

password_hashFilter<text | null>

Hash of the password required to access the site

pricing_versionFilter<text>
rate_locationFilter<"inline" | "tooltip">

Location where rates are shown in the calendar. Either inline or tooltip

rate_visibilityFilter<"all" | "available" | "none">

Visibility of rates in the calendar. Either all, available or none

related_listingsFilter<integer | null>

Number of related listings to show on detail pages

show_booked_asFilter<"booked" | "unavailable">
show_brandingFilter<boolean>

Whether to show the Bookingmood branding

show_closed_asFilter<"closed" | "unavailable">
show_legendFilter<boolean>

Whether to show a legend in the calendar

show_organization_description_sectionFilter<boolean>

Whether to show the organization description section

show_pending_asFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_pricingFilter<boolean>
show_totalsFilter<boolean>

Whether to show totals in the calendar

show_unavailable_resultsFilter<boolean>
subdomainFilter<text>

Subdomain of the site

typeFilter<"listing-site" | "single-unit-site">

Type of the site, either single-unit-site or listing-site

week_starts_onFilter<0 | 1 | null>

First day of the week. Either 1 or 0

Responses

200

A list of sites with the selected columns

206

Partial Content

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

Update sites

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this site is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

autocomplete_date_selectionFilter<boolean>

Whether to autocomplete the date selection when only one date is available

color_backgroundFilter<text>

Background color of the site

color_bookedFilter<text>
color_closedFilter<text>
color_errorFilter<text>

Error color of the site

color_headerFilter<text>
color_infoFilter<text>
color_primaryFilter<text>

Primary color of the site

color_textFilter<text>

Text color of the site

color_unavailableFilter<text>
color_warningFilter<text>
coverFilter<text | null>

URL of the cover image

currencyFilter<Currency>

Currency of the site

custom_domainFilter<text | null>

Custom domain of the site

date_visibilityFilter<"all" | "hide-unavailable" | "hide-closed" | "custom">

Visible dates in the calendar. Either all or available

filtersFilter<text[]>

Filters to show in the search bar

first_week_contains_dateFilter<1 | 4 | null>

First week of the year. Either 1 (first week with a Thursday) or 4 (first week with a Monday)

fontFilter<text | null>

Font of the site

iconFilter<text | null>

URL of the icon image

initial_dateFilter<"today" | "next-open" | "next-available">

Initial date shown in the calendar

interval_wrap_styleFilter<"square" | "jagged">

Style of the interval when wrapping weeks

logoFilter<text | null>

URL of the logo image

logo_altFilter<text | null>

Alt text of the logo image

nameFilter<MultiLanguageString>

Localized name

password_hashFilter<text | null>

Hash of the password required to access the site

pricing_versionFilter<text>
rate_locationFilter<"inline" | "tooltip">

Location where rates are shown in the calendar. Either inline or tooltip

rate_visibilityFilter<"all" | "available" | "none">

Visibility of rates in the calendar. Either all, available or none

related_listingsFilter<integer | null>

Number of related listings to show on detail pages

show_booked_asFilter<"booked" | "unavailable">
show_brandingFilter<boolean>

Whether to show the Bookingmood branding

show_closed_asFilter<"closed" | "unavailable">
show_legendFilter<boolean>

Whether to show a legend in the calendar

show_organization_description_sectionFilter<boolean>

Whether to show the organization description section

show_pending_asFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_pricingFilter<boolean>
show_totalsFilter<boolean>

Whether to show totals in the calendar

show_unavailable_resultsFilter<boolean>
subdomainFilter<text>

Subdomain of the site

typeFilter<"listing-site" | "single-unit-site">

Type of the site, either single-unit-site or listing-site

week_starts_onFilter<0 | 1 | null>

First day of the week. Either 1 or 0

Body

Partial<Site>

Responses

204

The updated sites with the selected columns

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

Taxes

Re-usable tax definitions

The tax object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this tax is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

ftstsvector | null

Full text search index

labelMultiLanguageString

Localized label

percentagereal

Percentage of the tax

type"on-top" | "included"

Type of the tax. Either on-top or included

The tax object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "label": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "percentage": 0,
  "type": "on-top"
}

List taxes

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this tax is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

ftsFilter<tsvector | null>

Full text search index

labelFilter<MultiLanguageString>

Localized label

percentageFilter<real>

Percentage of the tax

typeFilter<"on-top" | "included">

Type of the tax. Either on-top or included

Responses

200

A list of taxes with the selected columns

206

Partial Content

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

Create taxes

Body

Partial<Tax> | Array<Partial<Tax>>

Responses

201

The newly created taxes with the selected columns

POST /taxes
curl -X POST "https://api.bookingmood.com/v1/taxes" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete taxes

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this tax is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

ftsFilter<tsvector | null>

Full text search index

labelFilter<MultiLanguageString>

Localized label

percentageFilter<real>

Percentage of the tax

typeFilter<"on-top" | "included">

Type of the tax. Either on-top or included

Responses

204

The deleted taxes with the selected columns

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

Update taxes

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this tax is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

ftsFilter<tsvector | null>

Full text search index

labelFilter<MultiLanguageString>

Localized label

percentageFilter<real>

Percentage of the tax

typeFilter<"on-top" | "included">

Type of the tax. Either on-top or included

Body

Partial<Tax>

Responses

204

The updated taxes with the selected columns

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

User profiles

User profiles

The user profile object

Attributes

referrer_iduuid | null
user_iduuid

Unique identifier

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

avatartext | null

URL of the avatar image

emailtext

User email address

first_week_contains_date1 | 4 | null

First week of the year. Either 1 (first week with a Thursday) or 4 (first week with a Monday)

ftstsvector

Full text search index

last_login_attimestamp with time zone | null

Timestamp at which the user last logged in

localeAppLanguage

User language

nametext | null

User name

sourcetext | null

Source of the user

week_starts_on0 | 1 | null

First day of the week. Either 1 or 0

The user profile object

JSON

{
  "referrer_id": "00000000-0000-0000-0000-000000000000",
  "user_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "avatar": "",
  "email": "",
  "first_week_contains_date": 0,
  "last_login_at": "2025-02-22T08:26:32.519Z",
  "locale": "en-US",
  "name": "",
  "source": "",
  "week_starts_on": 0
}

List user profiles

Filters

referrer_idFilter<uuid | null>
user_idFilter<uuid>

Unique identifier

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

avatarFilter<text | null>

URL of the avatar image

emailFilter<text>

User email address

first_week_contains_dateFilter<1 | 4 | null>

First week of the year. Either 1 (first week with a Thursday) or 4 (first week with a Monday)

ftsFilter<tsvector>

Full text search index

last_login_atFilter<timestamp with time zone | null>

Timestamp at which the user last logged in

localeFilter<AppLanguage>

User language

nameFilter<text | null>

User name

sourceFilter<text | null>

Source of the user

week_starts_onFilter<0 | 1 | null>

First day of the week. Either 1 or 0

Responses

200

A list of user profiles with the selected columns

206

Partial Content

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

Update user profiles

Filters

referrer_idFilter<uuid | null>
user_idFilter<uuid>

Unique identifier

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

avatarFilter<text | null>

URL of the avatar image

emailFilter<text>

User email address

first_week_contains_dateFilter<1 | 4 | null>

First week of the year. Either 1 (first week with a Thursday) or 4 (first week with a Monday)

ftsFilter<tsvector>

Full text search index

last_login_atFilter<timestamp with time zone | null>

Timestamp at which the user last logged in

localeFilter<AppLanguage>

User language

nameFilter<text | null>

User name

sourceFilter<text | null>

Source of the user

week_starts_onFilter<0 | 1 | null>

First day of the week. Either 1 or 0

Body

Partial<UserProfile>

Responses

204

The updated user profiles with the selected columns

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

Webhook notifications

Notifications sent and scheduled per webhook

The webhook notification object

Attributes

iduuid

Unique identifier

webhook_iduuid
webhooks.id

Identifier of the webhook this notification is related to

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

event_typetext

Event this notification is for

payloadjsonb

JSON payload that is sent along with this notification

responsetext | null

Stored response

status"pending" | "sent" | "error"

Notification status. Either pending, sent or error

triesinteger

Amount of times this webhook notification has been tried to be delivered

The webhook notification object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "webhook_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "event_type": "",
  "payload": {},
  "response": "",
  "status": "pending",
  "tries": 0
}

List webhook notifications

Filters

idFilter<uuid>

Unique identifier

webhook_idFilter<uuid>
webhooks.id

Identifier of the webhook this notification is related to

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

event_typeFilter<text>

Event this notification is for

payloadFilter<jsonb>

JSON payload that is sent along with this notification

responseFilter<text | null>

Stored response

statusFilter<"pending" | "sent" | "error">

Notification status. Either pending, sent or error

triesFilter<integer>

Amount of times this webhook notification has been tried to be delivered

Responses

200

A list of webhook notifications with the selected columns

206

Partial Content

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

Webhooks

Webhooks are a messaging mechanism that allow you to get notified on an endpoint of your choice as soon as certain events happen in Bookingmood.

For more information on the webhook mechanics, see our documentation

The webhook object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this webhook is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

descriptiontext

An optional description of the webhook

endpointtext

URL to which notifications should be sent

eventstext[]

Events to which the webhook is subscribed. For possible values, see a complete list

signing_secrettext

String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.

sourcetext

From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.

The webhook object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "description": "",
  "endpoint": "",
  "events": [
    ""
  ],
  "signing_secret": "md5((random())::text)",
  "source": ""
}

List webhooks

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this webhook is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<text>

An optional description of the webhook

endpointFilter<text>

URL to which notifications should be sent

eventsFilter<text[]>

Events to which the webhook is subscribed. For possible values, see a complete list

signing_secretFilter<text>

String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.

sourceFilter<text>

From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.

Responses

200

A list of webhooks with the selected columns

206

Partial Content

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

Create webhooks

Body

Partial<Webhook> | Array<Partial<Webhook>>

Responses

201

The newly created webhooks with the selected columns

POST /webhooks
curl -X POST "https://api.bookingmood.com/v1/webhooks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete webhooks

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this webhook is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<text>

An optional description of the webhook

endpointFilter<text>

URL to which notifications should be sent

eventsFilter<text[]>

Events to which the webhook is subscribed. For possible values, see a complete list

signing_secretFilter<text>

String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.

sourceFilter<text>

From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.

Responses

204

The deleted webhooks with the selected columns

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

Update webhooks

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this webhook is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

descriptionFilter<text>

An optional description of the webhook

endpointFilter<text>

URL to which notifications should be sent

eventsFilter<text[]>

Events to which the webhook is subscribed. For possible values, see a complete list

signing_secretFilter<text>

String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.

sourceFilter<text>

From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.

Body

Partial<Webhook>

Responses

204

The updated webhooks with the selected columns

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

The widget listing object

Attributes

iduuid

Unique identifier

product_iduuid
products.id

Identifier of the related unit

widget_iduuid
widgets.id

Identifier of the related widget

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

ordersmallint

Order of the listing as displayed in the widget

urlMultiLanguageString

URL of the listing. Only applies when widget.interaction is forward

The widget listing object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "product_id": "00000000-0000-0000-0000-000000000000",
  "widget_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "order": 0,
  "url": {
    "default": "Hello",
    "nl-NL": "Hallo"
  }
}

List widget listings

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

widget_idFilter<uuid>
widgets.id

Identifier of the related widget

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<smallint>

Order of the listing as displayed in the widget

urlFilter<MultiLanguageString>

URL of the listing. Only applies when widget.interaction is forward

Responses

200

A list of widget listings with the selected columns

206

Partial Content

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

Create widget listings

Body

Partial<WidgetListing> | Array<Partial<WidgetListing>>

Responses

201

The newly created widget listings with the selected columns

POST /widget_listings
curl -X POST "https://api.bookingmood.com/v1/widget_listings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete widget listings

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

widget_idFilter<uuid>
widgets.id

Identifier of the related widget

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<smallint>

Order of the listing as displayed in the widget

urlFilter<MultiLanguageString>

URL of the listing. Only applies when widget.interaction is forward

Responses

204

The deleted widget listings with the selected columns

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

Update widget listings

Filters

idFilter<uuid>

Unique identifier

product_idFilter<uuid>
products.id

Identifier of the related unit

widget_idFilter<uuid>
widgets.id

Identifier of the related widget

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

orderFilter<smallint>

Order of the listing as displayed in the widget

urlFilter<MultiLanguageString>

URL of the listing. Only applies when widget.interaction is forward

Body

Partial<WidgetListing>

Responses

204

The updated widget listings with the selected columns

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

Widget views

Logs for each widget view

The widget view object

Attributes

idbigint

Unique identifier

widget_iduuid
widgets.id

Identifier of the widget this view is related to

created_attimestamp with time zone

Creation timestamp

countrytext | null

Country of the view

referertext | null

Referer of the view

status"success" | "tier-insufficient" | "inactive"

Status of the widget view

The widget view object

JSON

{
  "id": 0,
  "widget_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "country": "",
  "referer": "",
  "status": "success"
}

List widget views

Filters

idFilter<bigint>

Unique identifier

widget_idFilter<uuid>
widgets.id

Identifier of the widget this view is related to

created_atFilter<timestamp with time zone>

Creation timestamp

countryFilter<text | null>

Country of the view

refererFilter<text | null>

Referer of the view

statusFilter<"success" | "tier-insufficient" | "inactive">

Status of the widget view

Responses

200

A list of widget views with the selected columns

206

Partial Content

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

Widgets

Embeddable widgets

The widget object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this widget is defined in

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

autocomplete_date_selectionboolean

Whether to autocomplete the date selection when only one date is available

currencyCurrency | null

Currency of the widget

date_visibility"all" | "hide-unavailable" | "hide-closed" | "custom"

Visible dates in the calendar. Either all or available

fonttext | null

Font of the widget

ftstsvector | null

Full text search index

initial_date"today" | "next-open" | "next-available"

Initial date shown in the calendar

interaction"forward" | "book" | null

Interaction type, either "book", "forward" or null

localeLanguage

Language of the widget

redirect_urltext | null

URL to redirect to after submitting a booking

settingsWidgetSettings

Settings of the widget

show_booked_as"booked" | "unavailable"
show_bookingmood_brandingboolean

Whether to show the Bookingmood branding

show_closed_as"closed" | "unavailable"
show_pastboolean

Whether to show past dates in the calendar

show_pending_as"CANCELLED" | "TENTATIVE" | "CONFIRMED"
show_reviewsboolean
stay_expandedboolean

Whether the date-selection section should stay expanded after selecting dates

titletext

Title of the widget

type | "calendar" | "timeline" | "inventory" | "search"

Type of the widget, either calendar, timeline, inventory or search.

visible_monthsboolean[] | null

List of months that are visible in the calendar (deprecated).

The widget object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2025-02-22T08:26:32.519Z",
  "updated_at": "2025-02-22T08:26:32.519Z",
  "autocomplete_date_selection": false,
  "currency": "USD",
  "date_visibility": "all",
  "font": "",
  "initial_date": "today",
  "interaction": "",
  "locale": "en-US",
  "redirect_url": "",
  "settings": {},
  "show_booked_as": "unavailable",
  "show_bookingmood_branding": true,
  "show_closed_as": "unavailable",
  "show_past": false,
  "show_pending_as": "TENTATIVE",
  "show_reviews": false,
  "stay_expanded": false,
  "title": "",
  "type": "calendar",
  "visible_months": [
    false
  ]
}

List widgets

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this widget is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

autocomplete_date_selectionFilter<boolean>

Whether to autocomplete the date selection when only one date is available

currencyFilter<Currency | null>

Currency of the widget

date_visibilityFilter<"all" | "hide-unavailable" | "hide-closed" | "custom">

Visible dates in the calendar. Either all or available

fontFilter<text | null>

Font of the widget

ftsFilter<tsvector | null>

Full text search index

initial_dateFilter<"today" | "next-open" | "next-available">

Initial date shown in the calendar

interactionFilter<"forward" | "book" | null>

Interaction type, either "book", "forward" or null

localeFilter<Language>

Language of the widget

redirect_urlFilter<text | null>

URL to redirect to after submitting a booking

settingsFilter<WidgetSettings>

Settings of the widget

show_booked_asFilter<"booked" | "unavailable">
show_bookingmood_brandingFilter<boolean>

Whether to show the Bookingmood branding

show_closed_asFilter<"closed" | "unavailable">
show_pastFilter<boolean>

Whether to show past dates in the calendar

show_pending_asFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_reviewsFilter<boolean>
stay_expandedFilter<boolean>

Whether the date-selection section should stay expanded after selecting dates

titleFilter<text>

Title of the widget

typeFilter< | "calendar" | "timeline" | "inventory" | "search">

Type of the widget, either calendar, timeline, inventory or search.

visible_monthsFilter<boolean[] | null>

List of months that are visible in the calendar (deprecated).

Responses

200

A list of widgets with the selected columns

206

Partial Content

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

Create widgets

Body

Partial<Widget> | Array<Partial<Widget>>

Responses

201

The newly created widgets with the selected columns

POST /widgets
curl -X POST "https://api.bookingmood.com/v1/widgets" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete widgets

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this widget is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

autocomplete_date_selectionFilter<boolean>

Whether to autocomplete the date selection when only one date is available

currencyFilter<Currency | null>

Currency of the widget

date_visibilityFilter<"all" | "hide-unavailable" | "hide-closed" | "custom">

Visible dates in the calendar. Either all or available

fontFilter<text | null>

Font of the widget

ftsFilter<tsvector | null>

Full text search index

initial_dateFilter<"today" | "next-open" | "next-available">

Initial date shown in the calendar

interactionFilter<"forward" | "book" | null>

Interaction type, either "book", "forward" or null

localeFilter<Language>

Language of the widget

redirect_urlFilter<text | null>

URL to redirect to after submitting a booking

settingsFilter<WidgetSettings>

Settings of the widget

show_booked_asFilter<"booked" | "unavailable">
show_bookingmood_brandingFilter<boolean>

Whether to show the Bookingmood branding

show_closed_asFilter<"closed" | "unavailable">
show_pastFilter<boolean>

Whether to show past dates in the calendar

show_pending_asFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_reviewsFilter<boolean>
stay_expandedFilter<boolean>

Whether the date-selection section should stay expanded after selecting dates

titleFilter<text>

Title of the widget

typeFilter< | "calendar" | "timeline" | "inventory" | "search">

Type of the widget, either calendar, timeline, inventory or search.

visible_monthsFilter<boolean[] | null>

List of months that are visible in the calendar (deprecated).

Responses

204

The deleted widgets with the selected columns

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

Update widgets

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this widget is defined in

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

autocomplete_date_selectionFilter<boolean>

Whether to autocomplete the date selection when only one date is available

currencyFilter<Currency | null>

Currency of the widget

date_visibilityFilter<"all" | "hide-unavailable" | "hide-closed" | "custom">

Visible dates in the calendar. Either all or available

fontFilter<text | null>

Font of the widget

ftsFilter<tsvector | null>

Full text search index

initial_dateFilter<"today" | "next-open" | "next-available">

Initial date shown in the calendar

interactionFilter<"forward" | "book" | null>

Interaction type, either "book", "forward" or null

localeFilter<Language>

Language of the widget

redirect_urlFilter<text | null>

URL to redirect to after submitting a booking

settingsFilter<WidgetSettings>

Settings of the widget

show_booked_asFilter<"booked" | "unavailable">
show_bookingmood_brandingFilter<boolean>

Whether to show the Bookingmood branding

show_closed_asFilter<"closed" | "unavailable">
show_pastFilter<boolean>

Whether to show past dates in the calendar

show_pending_asFilter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_reviewsFilter<boolean>
stay_expandedFilter<boolean>

Whether the date-selection section should stay expanded after selecting dates

titleFilter<text>

Title of the widget

typeFilter< | "calendar" | "timeline" | "inventory" | "search">

Type of the widget, either calendar, timeline, inventory or search.

visible_monthsFilter<boolean[] | null>

List of months that are visible in the calendar (deprecated).

Body

Partial<Widget>

Responses

204

The updated widgets with the selected columns

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

Query availability

Fetch the availability of multiple products over a long period of time.

Parameters

perform_syncboolean

Whether to sync external calendars before fetching availability. Defaults to false

product_idsArray<uuid>

The product IDs to fetch availability for.

show_booked_as"booked" | "unavailable"

How to interpret confirmed bookings. Defaults to unavailable

show_closed_as"closed" | "unavailable"

How to interpret blocked / closed periods. Defaults to unavailable

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

How to interpret pending events. Defaults to TENTATIVE

Responses

200
Availability intervals per product

TypeScript

Array<{
  product_id: uuid;
  intervals: Array<{
    start: string;
    end: string;
    status: "available" | "tentative" | "unavailable" | "booked" | "reserved";
  }>
}>
GET /availability
curl -X GET "https://api.bookingmood.com/v1/availability?product_id=00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response

JSON

[
  {
    "product_id": "00000000-0000-0000-0000-000000000000",
    "intervals": [
      {
        "start": "2025-02-22T08:26:32.519Z",
        "end": "2025-02-26T08:26:32.519Z",
        "status": "unavailable"
      },
      {
        "start": "2025-02-26T08:26:32.519Z",
        "end": "2025-06-02T08:26:32.519Z",
        "status": "available"
      }
    ]
  }
]

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
    }
  }
]

Book

Perform a 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

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

JSON

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