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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "confirmed_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "completed_at": "2025-02-17T18:06:48.152Z",
  "due_at": "2025-02-17T18:06:48.152Z",
  "label": "",
  "notification_sent_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "deleted_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "active": true,
  "error": "",
  "ical_url": "",
  "last_synced": "2025-02-17T18:06:48.152Z",
  "name": "",
  "sync_requested_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "role": "user",
  "user_profile": {
    "referrer_id": "00000000-0000-0000-0000-000000000000",
    "user_id": "00000000-0000-0000-0000-000000000000",
    "created_at": "2025-02-17T18:06:48.152Z",
    "updated_at": "2025-02-17T18:06:48.152Z",
    "avatar": "",
    "email": "",
    "first_week_contains_date": 0,
    "last_login_at": "2025-02-17T18:06:48.152Z",
    "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "amount": 0,
  "currency": "USD",
  "due_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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-17T18:06:48.152Z",
  "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-17T18:06:48.152Z"
}

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-17T18:06:48.152Z",
  "updated_at": "2025-02-17T18:06:48.152Z",
  "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