Core resources
Booking flow
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 .
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.
curl -X GET "https://api.bookingmood.com/v1/products" \
-H "Authorization: Bearer YOUR_API_KEY"
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 .
curl -X GET "https://api.bookingmood.com/v1/products?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.bookingmood.com/v1/products?select=id,name" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.bookingmood.com/v1/products?select=name,capacities(*)" \
-H "Authorization: Bearer YOUR_API_KEY"
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 .
curl -X GET "https://api.bookingmood.com/v1/calendar_events?status=eq.CONFIRMED" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.bookingmood.com/v1/calendar_events?status=eq.CONFIRMED&type=eq.booking" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X DELETE "https://api.bookingmood.com/v1/contacts?email=like.%test.com" \
-H "Authorization: Bearer YOUR_API_KEY"
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 .
curl -X GET "https://api.bookingmood.com/v1/products?order=created_at.desc" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.bookingmood.com/v1/products?limit=10&offset=10" \
-H "Authorization: Bearer YOUR_API_KEY"
Possible options per attribute
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
name
MultiLanguageString
Localized name
order
integer
Order of the option in the list of options as displayed on widgets and websites
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"attribute_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"order": 1
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
name
Filter<MultiLanguageString>
Localized name
order
Filter<integer>
Order of the option in the list of options as displayed on widgets and websites
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"
Partial<AttributeOption> | Array<Partial<AttributeOption>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
name
Filter<MultiLanguageString>
Localized name
order
Filter<integer>
Order of the option in the list of options as displayed on widgets and websites
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
name
Filter<MultiLanguageString>
Localized name
order
Filter<integer>
Order of the option in the list of options as displayed on widgets and websites
Partial<AttributeOption>
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 to segment and filter units by
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
name
MultiLanguageString
Localized name
order
integer
Order of the attribute displayed on widgets and websites
type
"single-select" | "multi-select"
Attribute type, either single-select of multi-select
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"order": 1,
"type": "single-select"
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this attribute is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
name
Filter<MultiLanguageString>
Localized name
order
Filter<integer>
Order of the attribute displayed on widgets and websites
type
Filter<"single-select" | "multi-select">
Attribute type, either single-select of multi-select
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"
Partial<Attribute> | Array<Partial<Attribute>>
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 '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this attribute is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
name
Filter<MultiLanguageString>
Localized name
order
Filter<integer>
Order of the attribute displayed on widgets and websites
type
Filter<"single-select" | "multi-select">
Attribute type, either single-select of multi-select
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"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this attribute is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
name
Filter<MultiLanguageString>
Localized name
order
Filter<integer>
Order of the attribute displayed on widgets and websites
type
Filter<"single-select" | "multi-select">
Attribute type, either single-select of multi-select
Partial<Attribute>
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 as filled in by guests in the booking form
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
name
MultiLanguageString
Localized name of the form field
value
text | null
Value filled in by the customer
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"option_id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"value": ""
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
name
Filter<MultiLanguageString>
Localized name of the form field
value
Filter<text | null>
Value filled in by the customer
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"
Partial<BookingDetail> | Array<Partial<BookingDetail>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
name
Filter<MultiLanguageString>
Localized name of the form field
value
Filter<text | null>
Value filled in by the customer
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
name
Filter<MultiLanguageString>
Localized name of the form field
value
Filter<text | null>
Value filled in by the customer
Partial<BookingDetail>
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 '{}'
Logs of each time a booking is updated
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
confirmed_at
timestamp with time zone | null
Timestamp at which the booking was confirmed
currency
Currency
Base currency of the booking
display_currency
Currency
Currency used to display prices to the customer
exchange_rate
real
Exchange rate used to convert the booking currency to the display currency
method
text
Method used to make the booking, request
or book
occupancy
Record<uuid, number>
Occupancy per capacity group.
reference
text
Publicly visible reference of the booking
secret
text
Secret reference of the booking
silent
boolean
Whether the booking was made without automatically sending a confirmation email
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"site_id": "00000000-0000-0000-0000-000000000000",
"widget_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"confirmed_at": "2025-02-22T08:26:32.519Z",
"currency": "USD",
"display_currency": "USD",
"exchange_rate": 0,
"method": "request",
"occupancy": {
"00000000-0000-0000-0000-000000000000": 1
},
"reference": "",
"secret": "extensions.uuid_generate_v4()",
"silent": false
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this booking is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
confirmed_at
Filter<timestamp with time zone | null>
Timestamp at which the booking was confirmed
currency
Filter<Currency>
Base currency of the booking
display_currency
Filter<Currency>
Currency used to display prices to the customer
exchange_rate
Filter<real>
Exchange rate used to convert the booking currency to the display currency
method
Filter<text>
Method used to make the booking, request
or book
occupancy
Filter<Record<uuid, number>>
Occupancy per capacity group.
reference
Filter<text>
Publicly visible reference of the booking
secret
Filter<text>
Secret reference of the booking
silent
Filter<boolean>
Whether the booking was made without automatically sending a confirmation email
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"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this booking is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
confirmed_at
Filter<timestamp with time zone | null>
Timestamp at which the booking was confirmed
currency
Filter<Currency>
Base currency of the booking
display_currency
Filter<Currency>
Currency used to display prices to the customer
exchange_rate
Filter<real>
Exchange rate used to convert the booking currency to the display currency
method
Filter<text>
Method used to make the booking, request
or book
occupancy
Filter<Record<uuid, number>>
Occupancy per capacity group.
reference
Filter<text>
Publicly visible reference of the booking
secret
Filter<text>
Secret reference of the booking
silent
Filter<boolean>
Whether the booking was made without automatically sending a confirmation email
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"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this booking is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
confirmed_at
Filter<timestamp with time zone | null>
Timestamp at which the booking was confirmed
currency
Filter<Currency>
Base currency of the booking
display_currency
Filter<Currency>
Currency used to display prices to the customer
exchange_rate
Filter<real>
Exchange rate used to convert the booking currency to the display currency
method
Filter<text>
Method used to make the booking, request
or book
occupancy
Filter<Record<uuid, number>>
Occupancy per capacity group.
reference
Filter<text>
Publicly visible reference of the booking
secret
Filter<text>
Secret reference of the booking
silent
Filter<boolean>
Whether the booking was made without automatically sending a confirmation email
Partial<Booking>
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 '{}'
Private notes send around some calendar event
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
note
text
The note itself
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"author_id": "00000000-0000-0000-0000-000000000000",
"calendar_event_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"note": ""
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
note
Filter<text>
The note itself
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"
Partial<CalendarEventNote> | Array<Partial<CalendarEventNote>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
note
Filter<text>
The note itself
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
note
Filter<text>
The note itself
Partial<CalendarEventNote>
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 '{}'
Tasks defined per event.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
completed_at
timestamp with time zone | null
Timestamp at which the task was completed
due_at
timestamp with time zone
Due date of the task
label
text
Label of the task
notification_sent_at
timestamp with time zone | null
Timestamp of the last notification sent
schedule
"manual" | "arrival" | "departure"
Task schedule relative to the event
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"assignee_id": "00000000-0000-0000-0000-000000000000",
"calendar_event_id": "00000000-0000-0000-0000-000000000000",
"product_task_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"completed_at": "2025-02-22T08:26:32.519Z",
"due_at": "2025-02-22T08:26:32.519Z",
"label": "",
"notification_sent_at": "2025-02-22T08:26:32.519Z",
"schedule": "arrival"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
completed_at
Filter<timestamp with time zone | null>
Timestamp at which the task was completed
due_at
Filter<timestamp with time zone>
Due date of the task
label
Filter<text>
Label of the task
notification_sent_at
Filter<timestamp with time zone | null>
Timestamp of the last notification sent
schedule
Filter<"manual" | "arrival" | "departure">
Task schedule relative to the event
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"
Partial<CalendarEventTask> | Array<Partial<CalendarEventTask>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
completed_at
Filter<timestamp with time zone | null>
Timestamp at which the task was completed
due_at
Filter<timestamp with time zone>
Due date of the task
label
Filter<text>
Label of the task
notification_sent_at
Filter<timestamp with time zone | null>
Timestamp of the last notification sent
schedule
Filter<"manual" | "arrival" | "departure">
Task schedule relative to the event
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
completed_at
Filter<timestamp with time zone | null>
Timestamp at which the task was completed
due_at
Filter<timestamp with time zone>
Due date of the task
label
Filter<text>
Label of the task
notification_sent_at
Filter<timestamp with time zone | null>
Timestamp of the last notification sent
schedule
Filter<"manual" | "arrival" | "departure">
Task schedule relative to the event
Partial<CalendarEventTask>
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 '{}'
Snapshots of each time a calendar event is updated
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
next_interval
daterange
Event interval after the update
next_status
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
Status of the calendar event after the update
prev_interval
daterange
Event interval before the update
prev_status
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
Status of the calendar event before the update
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"calendar_event_id": "00000000-0000-0000-0000-000000000000",
"next_product_id": "00000000-0000-0000-0000-000000000000",
"prev_product_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"next_interval": null,
"next_status": "CANCELLED",
"prev_interval": null,
"prev_status": "CANCELLED"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
next_interval
Filter<daterange>
Event interval after the update
next_status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Status of the calendar event after the update
prev_interval
Filter<daterange>
Event interval before the update
prev_status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Status of the calendar event before the update
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"
Events as visible on your timeline. Can be bookings, blocked periods or notes.
id
uuid
Unique identifier
calendar_id
uuid | null
Identifier of the external calendar this event is related to
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
end_date
date
Event end date
fts
tsvector
Full text search index
generated_title
text
Title of the event generated from the product name and the customer name
notes
text
Private notes about the event
origin
text | null
Origin of the event
padding
smallint
Padding of the event due to cooldown time
start_date
date
Event start date
status
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
Status of the event
title
text
Title of the event
type
"booking" | "blocked period" | "note"
Type of the event
uid
text | null
Identifier of the event in the original calendar
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"calendar_id": "00000000-0000-0000-0000-000000000000",
"creator_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"end_date": null,
"generated_title": "",
"notes": "",
"origin": "",
"padding": 0,
"start_date": null,
"status": "CONFIRMED",
"title": "",
"type": "booking",
"uid": ""
}
id
Filter<uuid>
Unique identifier
calendar_id
Filter<uuid | null>
Identifier of the external calendar this event is related to
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
end_date
Filter<date>
Event end date
fts
Filter<tsvector>
Full text search index
generated_title
Filter<text>
Title of the event generated from the product name and the customer name
notes
Filter<text>
Private notes about the event
origin
Filter<text | null>
Origin of the event
padding
Filter<smallint>
Padding of the event due to cooldown time
start_date
Filter<date>
Event start date
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Status of the event
title
Filter<text>
Title of the event
type
Filter<"booking" | "blocked period" | "note">
Type of the event
uid
Filter<text | null>
Identifier of the event in the original calendar
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"
id
Filter<uuid>
Unique identifier
calendar_id
Filter<uuid | null>
Identifier of the external calendar this event is related to
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
end_date
Filter<date>
Event end date
fts
Filter<tsvector>
Full text search index
generated_title
Filter<text>
Title of the event generated from the product name and the customer name
notes
Filter<text>
Private notes about the event
origin
Filter<text | null>
Origin of the event
padding
Filter<smallint>
Padding of the event due to cooldown time
start_date
Filter<date>
Event start date
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Status of the event
title
Filter<text>
Title of the event
type
Filter<"booking" | "blocked period" | "note">
Type of the event
uid
Filter<text | null>
Identifier of the event in the original calendar
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"
id
Filter<uuid>
Unique identifier
calendar_id
Filter<uuid | null>
Identifier of the external calendar this event is related to
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
end_date
Filter<date>
Event end date
fts
Filter<tsvector>
Full text search index
generated_title
Filter<text>
Title of the event generated from the product name and the customer name
notes
Filter<text>
Private notes about the event
origin
Filter<text | null>
Origin of the event
padding
Filter<smallint>
Padding of the event due to cooldown time
start_date
Filter<date>
Event start date
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Status of the event
title
Filter<text>
Title of the event
type
Filter<"booking" | "blocked period" | "note">
Type of the event
uid
Filter<text | null>
Identifier of the event in the original calendar
Partial<CalendarEvent>
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 '{}'
Occupancy limits per unit per occupancy group
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
max
integer
Maximum allowed occupancy
min
integer
Minimum allowed occupancy
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"capacity_group_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"max": 1,
"min": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
max
Filter<integer>
Maximum allowed occupancy
min
Filter<integer>
Minimum allowed occupancy
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"
Partial<Capacity> | Array<Partial<Capacity>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
max
Filter<integer>
Maximum allowed occupancy
min
Filter<integer>
Minimum allowed occupancy
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
max
Filter<integer>
Maximum allowed occupancy
min
Filter<integer>
Minimum allowed occupancy
Partial<Capacity>
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 '{}'
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
.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"accumulator_id": "00000000-0000-0000-0000-000000000000",
"element_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
Partial<CapacityGroupDependency> | Array<Partial<CapacityGroupDependency>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<CapacityGroupDependency>
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 '{}'
Distinct groups that can occupy units. Useful for configuring separate prices & limits for adult / children / pets.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
description
MultiLanguageString
Localized description
name
MultiLanguageString
Localized name
name_singular
MultiLanguageString
Localized singular name
order
integer
Order to display the capacity group in
type
"manual" | "sum"
Type of the capacity group
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"description": {
"default": "Hello",
"nl-NL": "Hallo"
},
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"name_singular": {
"default": "Hello",
"nl-NL": "Hallo"
},
"order": 1,
"type": "manual"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<MultiLanguageString>
Localized description
name
Filter<MultiLanguageString>
Localized name
name_singular
Filter<MultiLanguageString>
Localized singular name
order
Filter<integer>
Order to display the capacity group in
type
Filter<"manual" | "sum">
Type of the capacity group
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"
Partial<CapacityGroup> | Array<Partial<CapacityGroup>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<MultiLanguageString>
Localized description
name
Filter<MultiLanguageString>
Localized name
name_singular
Filter<MultiLanguageString>
Localized singular name
order
Filter<integer>
Order to display the capacity group in
type
Filter<"manual" | "sum">
Type of the capacity group
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<MultiLanguageString>
Localized description
name
Filter<MultiLanguageString>
Localized name
name_singular
Filter<MultiLanguageString>
Localized singular name
order
Filter<integer>
Order to display the capacity group in
type
Filter<"manual" | "sum">
Type of the capacity group
Partial<CapacityGroup>
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 '{}'
Link between contacts and bookings
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"contact_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
Partial<ContactBooking> | Array<Partial<ContactBooking>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<ContactBooking>
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 '{}'
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
address
text
Concatenation of the address fields
avatar
text | null
URL of the avatar image
city
text
City of the contact
country
text
Country of the contact
email
text
Contact email address
first_name
text
First name of the contact
fts
tsvector
Full text search index
language
Language | null
Language of the contact
last_name
text
Last name of the contact
meta
Array<{ key: string; value: string }>
name
text
Full name of the contact
notes
text
phone
text
Contact phone number
province
text
Province of the contact
state
text
State of the contact
street
text
Street address of the contact
street2
text
Street address of the contact
zip
text
Zip code of the contact
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"creator_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"address": "",
"avatar": "",
"city": "",
"country": "",
"email": "",
"first_name": "",
"language": "en-US",
"last_name": "",
"meta": [
{
"key": "key",
"value": "value"
}
],
"name": "",
"notes": "",
"phone": "",
"province": "",
"state": "",
"street": "",
"street2": "",
"zip": ""
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this contact is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
address
Filter<text>
Concatenation of the address fields
avatar
Filter<text | null>
URL of the avatar image
city
Filter<text>
City of the contact
country
Filter<text>
Country of the contact
email
Filter<text>
Contact email address
first_name
Filter<text>
First name of the contact
fts
Filter<tsvector>
Full text search index
language
Filter<Language | null>
Language of the contact
last_name
Filter<text>
Last name of the contact
meta
Filter<Array<{ key: string; value: string }>>
name
Filter<text>
Full name of the contact
notes
Filter<text>
phone
Filter<text>
Contact phone number
province
Filter<text>
Province of the contact
state
Filter<text>
State of the contact
street
Filter<text>
Street address of the contact
street2
Filter<text>
Street address of the contact
zip
Filter<text>
Zip code of the contact
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"
Partial<Contact> | Array<Partial<Contact>>
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 '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this contact is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
address
Filter<text>
Concatenation of the address fields
avatar
Filter<text | null>
URL of the avatar image
city
Filter<text>
City of the contact
country
Filter<text>
Country of the contact
email
Filter<text>
Contact email address
first_name
Filter<text>
First name of the contact
fts
Filter<tsvector>
Full text search index
language
Filter<Language | null>
Language of the contact
last_name
Filter<text>
Last name of the contact
meta
Filter<Array<{ key: string; value: string }>>
name
Filter<text>
Full name of the contact
notes
Filter<text>
phone
Filter<text>
Contact phone number
province
Filter<text>
Province of the contact
state
Filter<text>
State of the contact
street
Filter<text>
Street address of the contact
street2
Filter<text>
Street address of the contact
zip
Filter<text>
Zip code of the contact
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"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this contact is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
address
Filter<text>
Concatenation of the address fields
avatar
Filter<text | null>
URL of the avatar image
city
Filter<text>
City of the contact
country
Filter<text>
Country of the contact
email
Filter<text>
Contact email address
first_name
Filter<text>
First name of the contact
fts
Filter<tsvector>
Full text search index
language
Filter<Language | null>
Language of the contact
last_name
Filter<text>
Last name of the contact
meta
Filter<Array<{ key: string; value: string }>>
name
Filter<text>
Full name of the contact
notes
Filter<text>
phone
Filter<text>
Contact phone number
province
Filter<text>
Province of the contact
state
Filter<text>
State of the contact
street
Filter<text>
Street address of the contact
street2
Filter<text>
Street address of the contact
zip
Filter<text>
Zip code of the contact
Partial<Contact>
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 '{}'
Defines for which products a coupon applies. Only checked when coupon.scope
is rent
or product
.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"coupon_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
Partial<CouponProduct> | Array<Partial<CouponProduct>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<CouponProduct>
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 '{}'
Defines for which services a coupon applies. Only checked when coupon.scope
is service
.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"coupon_id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
Partial<CouponService> | Array<Partial<CouponService>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<CouponService>
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 usage in bookings
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"coupon_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
Partial<CouponUse> | Array<Partial<CouponUse>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<CouponUse>
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 '{}'
Codes guests can enter for additional discounts
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
deleted_at
timestamp with time zone | null
Timestamp at which the coupon was deleted
code
text
Coupon code
definition
PriceExpression
Definition of the coupon
description
text
Description of the coupon
fts
tsvector
Full text search index
quota
integer | null
Maximum number of times this coupon can be used
scope
"global" | "product" | "service" | "rent"
Scope of the coupon
stackable
boolean
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"deleted_at": "2025-02-22T08:26:32.519Z",
"code": "",
"definition": {
"type": "absolute",
"restrictions": [],
"value": [
{
"value": 10,
"occupancy_group_id": null,
"period": null,
"variable": null
}
]
},
"description": "",
"quota": 0,
"scope": "global",
"stackable": true
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Timestamp at which the coupon was deleted
code
Filter<text>
Coupon code
definition
Filter<PriceExpression>
Definition of the coupon
description
Filter<text>
Description of the coupon
fts
Filter<tsvector>
Full text search index
quota
Filter<integer | null>
Maximum number of times this coupon can be used
scope
Filter<"global" | "product" | "service" | "rent">
Scope of the coupon
stackable
Filter<boolean>
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"
Partial<Coupon> | Array<Partial<Coupon>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Timestamp at which the coupon was deleted
code
Filter<text>
Coupon code
definition
Filter<PriceExpression>
Definition of the coupon
description
Filter<text>
Description of the coupon
fts
Filter<tsvector>
Full text search index
quota
Filter<integer | null>
Maximum number of times this coupon can be used
scope
Filter<"global" | "product" | "service" | "rent">
Scope of the coupon
stackable
Filter<boolean>
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Timestamp at which the coupon was deleted
code
Filter<text>
Coupon code
definition
Filter<PriceExpression>
Definition of the coupon
description
Filter<text>
Description of the coupon
fts
Filter<tsvector>
Full text search index
quota
Filter<integer | null>
Maximum number of times this coupon can be used
scope
Filter<"global" | "product" | "service" | "rent">
Scope of the coupon
stackable
Filter<boolean>
Partial<Coupon>
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 '{}'
Bounce, delivery and open events for emails
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
email_address
text
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
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"email_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"email_address": "",
"event_type": ""
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
email_address
Filter<text>
Email address the email was sent to
event_type
Filter<
| "processed"
| "dropped"
| "deferred"
| "bounce"
| "delivered"
| "open"
| "click"
| "spamreport"
| "unsubscribe"
| "group_unsubscribe"
| "group_resubscribe">
Type of the event
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"
Re-usable email templates
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
attachments
Array<{ filename: string; url: string; type: string }>
List of attachments to include in the email
body
MultiLanguageString
Body of the email
fts
tsvector
Full text search index
include_booking_details
boolean
Whether to include booking details in the email
include_booking_link
boolean
Whether to include a link to the booking status page in the email
include_ical_data
boolean
Whether to include an iCal attachment in the email
include_product_image
boolean
Whether to include a product image in the email
moment
MomentExpression | 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
subject
MultiLanguageString
Subject of the email
time
time without time zone | null
Time at which the message should be sent
trigger
text | null
Trigger of the email template
type
"email" | "sms"
Message type. email
or sms
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"attachments": [
{
"filename": "file",
"url": "https://example.com",
"type": "application/pdf"
}
],
"body": {
"default": "Hello",
"nl-NL": "Hallo"
},
"include_booking_details": false,
"include_booking_link": true,
"include_ical_data": false,
"include_product_image": false,
"moment": {
"type": "check-in",
"offset": 1
},
"past_schedule_behavior": "skip",
"status": "CONFIRMED",
"subject": {
"default": "Hello",
"nl-NL": "Hallo"
},
"time": null,
"trigger": "",
"type": "email"
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this email template is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
attachments
Filter<Array<{ filename: string; url: string; type: string }>>
List of attachments to include in the email
body
Filter<MultiLanguageString>
Body of the email
fts
Filter<tsvector>
Full text search index
include_booking_details
Filter<boolean>
Whether to include booking details in the email
include_booking_link
Filter<boolean>
Whether to include a link to the booking status page in the email
include_ical_data
Filter<boolean>
Whether to include an iCal attachment in the email
include_product_image
Filter<boolean>
Whether to include a product image in the email
moment
Filter<MomentExpression | null>
Moment at which the email should be sent.
past_schedule_behavior
Filter<"skip" | "send">
Behavior when the message is created with a schedule in the past
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Whether the message will be scheduled for pending and confirmed events, or just for confirmed events
subject
Filter<MultiLanguageString>
Subject of the email
time
Filter<time without time zone | null>
Time at which the message should be sent
trigger
Filter<text | null>
Trigger of the email template
type
Filter<"email" | "sms">
Message type. email
or sms
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"
Partial<EmailTemplate> | Array<Partial<EmailTemplate>>
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 '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this email template is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
attachments
Filter<Array<{ filename: string; url: string; type: string }>>
List of attachments to include in the email
body
Filter<MultiLanguageString>
Body of the email
fts
Filter<tsvector>
Full text search index
include_booking_details
Filter<boolean>
Whether to include booking details in the email
include_booking_link
Filter<boolean>
Whether to include a link to the booking status page in the email
include_ical_data
Filter<boolean>
Whether to include an iCal attachment in the email
include_product_image
Filter<boolean>
Whether to include a product image in the email
moment
Filter<MomentExpression | null>
Moment at which the email should be sent.
past_schedule_behavior
Filter<"skip" | "send">
Behavior when the message is created with a schedule in the past
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Whether the message will be scheduled for pending and confirmed events, or just for confirmed events
subject
Filter<MultiLanguageString>
Subject of the email
time
Filter<time without time zone | null>
Time at which the message should be sent
trigger
Filter<text | null>
Trigger of the email template
type
Filter<"email" | "sms">
Message type. email
or sms
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"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this email template is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
attachments
Filter<Array<{ filename: string; url: string; type: string }>>
List of attachments to include in the email
body
Filter<MultiLanguageString>
Body of the email
fts
Filter<tsvector>
Full text search index
include_booking_details
Filter<boolean>
Whether to include booking details in the email
include_booking_link
Filter<boolean>
Whether to include a link to the booking status page in the email
include_ical_data
Filter<boolean>
Whether to include an iCal attachment in the email
include_product_image
Filter<boolean>
Whether to include a product image in the email
moment
Filter<MomentExpression | null>
Moment at which the email should be sent.
past_schedule_behavior
Filter<"skip" | "send">
Behavior when the message is created with a schedule in the past
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Whether the message will be scheduled for pending and confirmed events, or just for confirmed events
subject
Filter<MultiLanguageString>
Subject of the email
time
Filter<time without time zone | null>
Time at which the message should be sent
trigger
Filter<text | null>
Trigger of the email template
type
Filter<"email" | "sms">
Message type. email
or sms
Partial<EmailTemplate>
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 scheduled or sent to guests
id
uuid
Unique identifier
email_template_id
uuid | null
Identifier of the email template this email is based on
created_at
timestamp with time zone
Creation timestamp
attachments
Array<{ filename: string; url: string; type: string }> | null
List of attachments to include in the email
body
text
Body of the email
html
text | null
HTML of the email
include_booking_details
boolean
Whether booking details should be included in the email
include_booking_link
boolean
Whether a link to the booking status page should be included in the email
include_ical_data
boolean
Whether an iCal attachment should be included in the email
include_product_image
boolean
Whether a product image should be included in the email
send_at
timestamp 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
subject
text
Subject of the email
template
text | null
Template of the email
type
"email" | "sms"
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"calendar_event_id": "00000000-0000-0000-0000-000000000000",
"email_template_id": "00000000-0000-0000-0000-000000000000",
"member_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"attachments": [
{
"filename": "file",
"url": "https://example.com",
"type": "application/pdf"
}
],
"body": "",
"html": "",
"include_booking_details": false,
"include_booking_link": false,
"include_ical_data": false,
"include_product_image": false,
"send_at": "2025-02-22T08:26:32.519Z",
"status": "sent",
"subject": "",
"template": "",
"type": "email"
}
id
Filter<uuid>
Unique identifier
email_template_id
Filter<uuid | null>
Identifier of the email template this email is based on
created_at
Filter<timestamp with time zone>
Creation timestamp
attachments
Filter<Array<{ filename: string; url: string; type: string }> | null>
List of attachments to include in the email
body
Filter<text>
Body of the email
html
Filter<text | null>
HTML of the email
include_booking_details
Filter<boolean>
Whether booking details should be included in the email
include_booking_link
Filter<boolean>
Whether a link to the booking status page should be included in the email
include_ical_data
Filter<boolean>
Whether an iCal attachment should be included in the email
include_product_image
Filter<boolean>
Whether a product image should be included in the email
send_at
Filter<timestamp with time zone>
Timestamp at which the email is sent or should be sent
status
Filter<"manually-scheduled" | "scheduled-around-arrival" | "scheduled-around-departure" | "sent">
Status of the email
subject
Filter<text>
Subject of the email
template
Filter<text | null>
Template of the email
type
Filter<"email" | "sms">
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"
Calendars which are being imported. Useful for syncing bookings with services like Airbnb or booking.com.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone | null
Timestamp at which the calendar last received new events
active
boolean
Whether the external calendar is active
error
text | null
Error message if the calendar could not be synced
ical_url
text
URL of the iCal feed
last_synced
timestamp with time zone | null
Timestamp at which the calendar was last synced
name
text | null
Name of the calendar
sync_requested_at
timestamp with time zone
Timestamp at which a sync was last requested
time_offset
integer
tld
text
update_fields
Array<ExternalCalendarUpdateField>
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"active": true,
"error": "",
"ical_url": "",
"last_synced": "2025-02-22T08:26:32.519Z",
"name": "",
"sync_requested_at": "2025-02-22T08:26:32.519Z",
"time_offset": 0,
"tld": "",
"update_fields": "[start_date, end_date]"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone | null>
Timestamp at which the calendar last received new events
active
Filter<boolean>
Whether the external calendar is active
error
Filter<text | null>
Error message if the calendar could not be synced
ical_url
Filter<text>
URL of the iCal feed
last_synced
Filter<timestamp with time zone | null>
Timestamp at which the calendar was last synced
name
Filter<text | null>
Name of the calendar
sync_requested_at
Filter<timestamp with time zone>
Timestamp at which a sync was last requested
time_offset
Filter<integer>
tld
Filter<text>
update_fields
Filter<Array<ExternalCalendarUpdateField>>
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"
Partial<ExternalCalendar> | Array<Partial<ExternalCalendar>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone | null>
Timestamp at which the calendar last received new events
active
Filter<boolean>
Whether the external calendar is active
error
Filter<text | null>
Error message if the calendar could not be synced
ical_url
Filter<text>
URL of the iCal feed
last_synced
Filter<timestamp with time zone | null>
Timestamp at which the calendar was last synced
name
Filter<text | null>
Name of the calendar
sync_requested_at
Filter<timestamp with time zone>
Timestamp at which a sync was last requested
time_offset
Filter<integer>
tld
Filter<text>
update_fields
Filter<Array<ExternalCalendarUpdateField>>
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone | null>
Timestamp at which the calendar last received new events
active
Filter<boolean>
Whether the external calendar is active
error
Filter<text | null>
Error message if the calendar could not be synced
ical_url
Filter<text>
URL of the iCal feed
last_synced
Filter<timestamp with time zone | null>
Timestamp at which the calendar was last synced
name
Filter<text | null>
Name of the calendar
sync_requested_at
Filter<timestamp with time zone>
Timestamp at which a sync was last requested
time_offset
Filter<integer>
tld
Filter<text>
update_fields
Filter<Array<ExternalCalendarUpdateField>>
Partial<ExternalCalendar>
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 for bookings
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
reference
text
Invoice reference
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"reference": ""
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this invoice is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
reference
Filter<text>
Invoice reference
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"
Partial<Invoice> | Array<Partial<Invoice>>
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 '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this invoice is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
reference
Filter<text>
Invoice reference
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"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this invoice is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
reference
Filter<text>
Invoice reference
Partial<Invoice>
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 '{}'
Taxes applying on line items
id
uuid
Unique identifier
amount
integer
Amount of the tax
name
MultiLanguageString
Name of the tax
percentage
real
Percentage of the tax
type
"on-top" | "included"
Type of the tax
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"
}
id
Filter<uuid>
Unique identifier
amount
Filter<integer>
Amount of the tax
name
Filter<MultiLanguageString>
Name of the tax
percentage
Filter<real>
Percentage of the tax
type
Filter<"on-top" | "included">
Type of the tax
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"
Partial<LineItemTax> | Array<Partial<LineItemTax>>
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 '[]'
id
Filter<uuid>
Unique identifier
amount
Filter<integer>
Amount of the tax
name
Filter<MultiLanguageString>
Name of the tax
percentage
Filter<real>
Percentage of the tax
type
Filter<"on-top" | "included">
Type of the tax
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"
id
Filter<uuid>
Unique identifier
amount
Filter<integer>
Amount of the tax
name
Filter<MultiLanguageString>
Name of the tax
percentage
Filter<real>
Percentage of the tax
type
Filter<"on-top" | "included">
Type of the tax
Partial<LineItemTax>
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 '{}'
Invoice lines for booking invoices
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
amount
integer
Amount of the line item
fee_type
"fee" | "deposit"
Type of the fee. fee
or deposit
item_type
text
Type of the line item. Most commonly fee
name
MultiLanguageString
Name of the line item
quantity
integer
Quantity of the line item
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"invoice_id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"amount": 0,
"fee_type": "fee",
"item_type": "rent",
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"quantity": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
amount
Filter<integer>
Amount of the line item
fee_type
Filter<"fee" | "deposit">
Type of the fee. fee
or deposit
item_type
Filter<text>
Type of the line item. Most commonly fee
name
Filter<MultiLanguageString>
Name of the line item
quantity
Filter<integer>
Quantity of the line item
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"
Partial<LineItem> | Array<Partial<LineItem>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
amount
Filter<integer>
Amount of the line item
fee_type
Filter<"fee" | "deposit">
Type of the fee. fee
or deposit
item_type
Filter<text>
Type of the line item. Most commonly fee
name
Filter<MultiLanguageString>
Name of the line item
quantity
Filter<integer>
Quantity of the line item
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
amount
Filter<integer>
Amount of the line item
fee_type
Filter<"fee" | "deposit">
Type of the fee. fee
or deposit
item_type
Filter<text>
Type of the line item. Most commonly fee
name
Filter<MultiLanguageString>
Name of the line item
quantity
Filter<integer>
Quantity of the line item
Partial<LineItem>
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 '{}'
Organization members.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
role
"user" | "admin" | "superuser"
Role of the member
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"role": "user"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
role
Filter<"user" | "admin" | "superuser">
Role of the member
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 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.
email
required
string
The email address of the member to invite.
language
AppLanguage
The member's preferred language.
name
string
The name of the member to invite.
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"
}'
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"role": "user",
"user_profile": {
"referrer_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"avatar": "",
"email": "",
"first_week_contains_date": 0,
"last_login_at": "2025-02-22T08:26:32.519Z",
"locale": "en-US",
"name": "",
"source": "",
"week_starts_on": 0
}
}
Revoke 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.
id
required
uuid
The identifier of the member to revoke.
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"
Booking payments. Both planned, partially paid and paid.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
amount
integer
Total amount of the payment
currency
Currency
Currency of the payment
due_at
timestamp with time zone
Timestamp at which the payment is due
offline
boolean
paid
integer
Amount of the payment that was paid
reference
text
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"invoice_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"amount": 0,
"currency": "USD",
"due_at": "2025-02-22T08:26:32.519Z",
"offline": false,
"paid": 0,
"reference": ""
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
amount
Filter<integer>
Total amount of the payment
currency
Filter<Currency>
Currency of the payment
due_at
Filter<timestamp with time zone>
Timestamp at which the payment is due
offline
Filter<boolean>
paid
Filter<integer>
Amount of the payment that was paid
reference
Filter<text>
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"
Partial<Payment> | Array<Partial<Payment>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
amount
Filter<integer>
Total amount of the payment
currency
Filter<Currency>
Currency of the payment
due_at
Filter<timestamp with time zone>
Timestamp at which the payment is due
offline
Filter<boolean>
paid
Filter<integer>
Amount of the payment that was paid
reference
Filter<text>
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
amount
Filter<integer>
Total amount of the payment
currency
Filter<Currency>
Currency of the payment
due_at
Filter<timestamp with time zone>
Timestamp at which the payment is due
offline
Filter<boolean>
paid
Filter<integer>
Amount of the payment that was paid
reference
Filter<text>
Partial<Payment>
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 '{}'
Access level for team members with the user
role per unit.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp 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
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"member_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"bookings": "view",
"notifications": "none",
"permission": "view-bookings",
"settings": "none"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
bookings
Filter<"none" | "maintenance" | "view" | "manage">
Bookings permission level
notifications
Filter<"none" | "non-financial" | "all">
Notifications permission level
permission
Filter<"maintenance" | "view-bookings" | "manage-bookings" | "all">
Permission level
settings
Filter<"none" | "all">
Settings permission level
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"
Partial<Permission> | Array<Partial<Permission>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
bookings
Filter<"none" | "maintenance" | "view" | "manage">
Bookings permission level
notifications
Filter<"none" | "non-financial" | "all">
Notifications permission level
permission
Filter<"maintenance" | "view-bookings" | "manage-bookings" | "all">
Permission level
settings
Filter<"none" | "all">
Settings permission level
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
bookings
Filter<"none" | "maintenance" | "view" | "manage">
Bookings permission level
notifications
Filter<"none" | "non-financial" | "all">
Notifications permission level
permission
Filter<"maintenance" | "view-bookings" | "manage-bookings" | "all">
Permission level
settings
Filter<"none" | "all">
Settings permission level
Partial<Permission>
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 '{}'
Attribute options assigned to each unit
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"option_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
Partial<ProductAttributeOption> | Array<Partial<ProductAttributeOption>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<ProductAttributeOption>
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 '{}'
Logs for each time the ical feed of a unit is read by an external platform
id
bigint
Unique identifier
created_at
timestamp with time zone
Creation timestamp
params
jsonb
Params of the request
referrer
text
Referrer of the request
status
"success" | "error"
Status of the request
JSON
{
"id": 0,
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"params": {},
"referrer": "",
"status": "success"
}
id
Filter<bigint>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
params
Filter<jsonb>
Params of the request
referrer
Filter<text>
Referrer of the request
status
Filter<"success" | "error">
Status of the request
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"
Rate and availability configurations. Applied per unit on multiple intervals
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp 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
color
text
Color to distinguish the configuration from others
fts
tsvector
Full text search index
intervals
datemultirange
max_advance
integer
Maximum number of days between booking and arrival
max_duration
integer
Maximum duration of a booking in days
min_advance
integer
Minimum number of days between booking and arrival
min_duration
integer
Minimum duration of a booking in days
name
MultiLanguageString
Localized name
new_rates
Array<{ duration: number; occupancy: number; rate: number }>
Rate per night on day X of a booking given some occupancy
order
integer
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"check_in_days": [
true,
false,
true,
false,
true,
false,
true
],
"checkout_days": [
true,
false,
true,
false,
true,
false,
true
],
"color": "#FACC15",
"intervals": null,
"max_advance": 365,
"max_duration": 30,
"min_advance": 0,
"min_duration": 1,
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"new_rates": [
{
"duration": 1,
"occupancy": 1,
"rate": 1500
}
],
"order": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
check_in_days
Filter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>
List of days of the week on which check-in is possible
checkout_days
Filter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>
List of days of the week on which check-out is possible
color
Filter<text>
Color to distinguish the configuration from others
fts
Filter<tsvector>
Full text search index
intervals
Filter<datemultirange>
max_advance
Filter<integer>
Maximum number of days between booking and arrival
max_duration
Filter<integer>
Maximum duration of a booking in days
min_advance
Filter<integer>
Minimum number of days between booking and arrival
min_duration
Filter<integer>
Minimum duration of a booking in days
name
Filter<MultiLanguageString>
Localized name
new_rates
Filter<Array<{ duration: number; occupancy: number; rate: number }>>
Rate per night on day X of a booking given some occupancy
order
Filter<integer>
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"
Partial<ProductConfiguration> | Array<Partial<ProductConfiguration>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
check_in_days
Filter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>
List of days of the week on which check-in is possible
checkout_days
Filter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>
List of days of the week on which check-out is possible
color
Filter<text>
Color to distinguish the configuration from others
fts
Filter<tsvector>
Full text search index
intervals
Filter<datemultirange>
max_advance
Filter<integer>
Maximum number of days between booking and arrival
max_duration
Filter<integer>
Maximum duration of a booking in days
min_advance
Filter<integer>
Minimum number of days between booking and arrival
min_duration
Filter<integer>
Minimum duration of a booking in days
name
Filter<MultiLanguageString>
Localized name
new_rates
Filter<Array<{ duration: number; occupancy: number; rate: number }>>
Rate per night on day X of a booking given some occupancy
order
Filter<integer>
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
check_in_days
Filter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>
List of days of the week on which check-in is possible
checkout_days
Filter<[boolean, boolean, boolean, boolean, boolean, boolean, boolean]>
List of days of the week on which check-out is possible
color
Filter<text>
Color to distinguish the configuration from others
fts
Filter<tsvector>
Full text search index
intervals
Filter<datemultirange>
max_advance
Filter<integer>
Maximum number of days between booking and arrival
max_duration
Filter<integer>
Maximum duration of a booking in days
min_advance
Filter<integer>
Minimum number of days between booking and arrival
min_duration
Filter<integer>
Minimum duration of a booking in days
name
Filter<MultiLanguageString>
Localized name
new_rates
Filter<Array<{ duration: number; occupancy: number; rate: number }>>
Rate per night on day X of a booking given some occupancy
order
Filter<integer>
Partial<ProductConfiguration>
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 '{}'
Automated emails active per unit
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
order
integer
Order of the email template as displayed in the admin
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"email_template_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"order": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
order
Filter<integer>
Order of the email template as displayed in the admin
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"
Partial<ProductEmailTemplate> | Array<Partial<ProductEmailTemplate>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
order
Filter<integer>
Order of the email template as displayed in the admin
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
order
Filter<integer>
Order of the email template as displayed in the admin
Partial<ProductEmailTemplate>
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 '{}'
Reply-to addresses per unit
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"reply_to_address_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
Partial<ProductReplyToAddresse> | Array<Partial<ProductReplyToAddresse>>
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 '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
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"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<ProductReplyToAddresse>
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 '{}'
Services included in the booking form of a unit
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
order
integer
Order of the service in the booking form of the unit
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"order": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<integer>
Order of the service in the booking form of the unit
200
A list of product services with the selected columns
206
Partial Content
GET /product_services
curl -X GET "https://api.bookingmood.com/v1/product_services?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ProductService> | Array<Partial<ProductService>>
201
The newly created product services with the selected columns
POST /product_services
curl -X POST "https://api.bookingmood.com/v1/product_services" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<integer>
Order of the service in the booking form of the unit
204
The deleted product services with the selected columns
DELETE /product_services
curl -X DELETE "https://api.bookingmood.com/v1/product_services" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<integer>
Order of the service in the booking form of the unit
Partial<ProductService>
204
The updated product services with the selected columns
PATCH /product_services
curl -X PATCH "https://api.bookingmood.com/v1/product_services" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Tasks required for all bookings for a unit
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
label
text
Label of the task
moment
MomentExpression
Moment at which the task should be completed
status
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
Whether the task only applies to confirmed events, or also to pending events
time
time without time zone | null
Time at which the task should be scheduled
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"assignee_id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"label": "",
"moment": {
"type": "check-in",
"offset": 1
},
"status": "CONFIRMED",
"time": null
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
label
Filter<text>
Label of the task
moment
Filter<MomentExpression>
Moment at which the task should be completed
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Whether the task only applies to confirmed events, or also to pending events
time
Filter<time without time zone | null>
Time at which the task should be scheduled
200
A list of product tasks with the selected columns
206
Partial Content
GET /product_tasks
curl -X GET "https://api.bookingmood.com/v1/product_tasks?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ProductTask> | Array<Partial<ProductTask>>
201
The newly created product tasks with the selected columns
POST /product_tasks
curl -X POST "https://api.bookingmood.com/v1/product_tasks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
label
Filter<text>
Label of the task
moment
Filter<MomentExpression>
Moment at which the task should be completed
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Whether the task only applies to confirmed events, or also to pending events
time
Filter<time without time zone | null>
Time at which the task should be scheduled
204
The deleted product tasks with the selected columns
DELETE /product_tasks
curl -X DELETE "https://api.bookingmood.com/v1/product_tasks" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
label
Filter<text>
Label of the task
moment
Filter<MomentExpression>
Moment at which the task should be completed
status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Whether the task only applies to confirmed events, or also to pending events
time
Filter<time without time zone | null>
Time at which the task should be scheduled
Partial<ProductTask>
204
The updated product tasks with the selected columns
PATCH /product_tasks
curl -X PATCH "https://api.bookingmood.com/v1/product_tasks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Units that can be booked individually
id
uuid
Unique identifier
ac_id
text | null
Identifier for products imported from AvailabilityCalendar.com
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
deleted_at
timestamp with time zone | null
Timestamp at which the unit was deleted
approximate_address
text
Approximate address of the unit
approximate_coordinates
Coordinates | null
Coordinates of the approximate address
cancel_after_initial_payment_error
boolean
confirm_after_initial_payment
boolean
Whether to automatically confirm the booking after the initial payment. Only applies when interaction is request
confirmation_message
MultiLanguageString
Message to show to the customer after submitting a booking from a widget or website
confirmation_message_title
MultiLanguageString
cooldown_time
integer
Minimum number of days between bookings
cta
MultiLanguageString
Call to action shown at the bottom of the booking form
currency
Currency
Currency bookings are made in
description
MultiLanguageString
Localized description
exact_address
text
Exact address of the unit
exact_coordinates
Coordinates | null
Coordinates of the exact address
fts
tsvector
Full text search index
hide_exact_address
boolean
Whether to hide the exact address from customers before bookings are confirmed
ical_export_secret
text
Secret used to generate iCal feed URLs
ical_export_secret_no_details
text
Secret used to generate iCal feed URLs without booking details
images
Array<ProductImage>
List of images
interaction
"request" | "book"
Interaction type, either request
or book
latest_arrival_time
time without time zone | null
name
MultiLanguageString
Localized name
payment_expiration_duration
integer
price_breakdown_specificity
"combined" | "separate"
rent_period
"daily" | "nightly"
Rent period of the unit
rent_pricing_definition
"configurations" | "service"
Pricing definition of the unit. Either configuration
or services
request_status
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
Status of new bookings. Only applies when interaction is request
timezone
text
Timezone of the unit
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"ac_id": "",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"deleted_at": "2025-02-22T08:26:32.519Z",
"approximate_address": "",
"approximate_coordinates": {
"lat": 52.379189,
"lng": 4.899431
},
"cancel_after_initial_payment_error": false,
"confirm_after_initial_payment": false,
"confirmation_message": {
"default": "Hello",
"nl-NL": "Hallo"
},
"confirmation_message_title": {
"default": "Hello",
"nl-NL": "Hallo"
},
"cooldown_time": 0,
"cta": {
"default": "Hello",
"nl-NL": "Hallo"
},
"currency": "USD",
"description": {
"default": "Hello",
"nl-NL": "Hallo"
},
"exact_address": "",
"exact_coordinates": {
"lat": 52.379189,
"lng": 4.899431
},
"hide_exact_address": false,
"ical_export_secret": "",
"ical_export_secret_no_details": "",
"images": [
{
"alt": {
"default": "Image"
},
"size": "1x1",
"src": "https://example.com/image.jpg"
}
],
"interaction": "request",
"latest_arrival_time": null,
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"payment_expiration_duration": 0,
"price_breakdown_specificity": "combined",
"rent_period": "nightly",
"rent_pricing_definition": "configurations",
"request_status": "TENTATIVE",
"timezone": "UTC"
}
id
Filter<uuid>
Unique identifier
ac_id
Filter<text | null>
Identifier for products imported from AvailabilityCalendar.com
organization_id
Filter<uuid>
Identifier of the organization this product is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Timestamp at which the unit was deleted
approximate_address
Filter<text>
Approximate address of the unit
approximate_coordinates
Filter<Coordinates | null>
Coordinates of the approximate address
cancel_after_initial_payment_error
Filter<boolean>
confirm_after_initial_payment
Filter<boolean>
Whether to automatically confirm the booking after the initial payment. Only applies when interaction is request
confirmation_message
Filter<MultiLanguageString>
Message to show to the customer after submitting a booking from a widget or website
confirmation_message_title
Filter<MultiLanguageString>
cooldown_time
Filter<integer>
Minimum number of days between bookings
cta
Filter<MultiLanguageString>
Call to action shown at the bottom of the booking form
currency
Filter<Currency>
Currency bookings are made in
description
Filter<MultiLanguageString>
Localized description
exact_address
Filter<text>
Exact address of the unit
exact_coordinates
Filter<Coordinates | null>
Coordinates of the exact address
fts
Filter<tsvector>
Full text search index
hide_exact_address
Filter<boolean>
Whether to hide the exact address from customers before bookings are confirmed
ical_export_secret
Filter<text>
Secret used to generate iCal feed URLs
ical_export_secret_no_details
Filter<text>
Secret used to generate iCal feed URLs without booking details
images
Filter<Array<ProductImage>>
List of images
interaction
Filter<"request" | "book">
Interaction type, either request
or book
latest_arrival_time
Filter<time without time zone | null>
name
Filter<MultiLanguageString>
Localized name
payment_expiration_duration
Filter<integer>
price_breakdown_specificity
Filter<"combined" | "separate">
rent_period
Filter<"daily" | "nightly">
Rent period of the unit
rent_pricing_definition
Filter<"configurations" | "service">
Pricing definition of the unit. Either configuration
or services
request_status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Status of new bookings. Only applies when interaction is request
timezone
Filter<text>
Timezone of the unit
200
A list of products with the selected columns
206
Partial Content
GET /products
curl -X GET "https://api.bookingmood.com/v1/products?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
ac_id
Filter<text | null>
Identifier for products imported from AvailabilityCalendar.com
organization_id
Filter<uuid>
Identifier of the organization this product is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Timestamp at which the unit was deleted
approximate_address
Filter<text>
Approximate address of the unit
approximate_coordinates
Filter<Coordinates | null>
Coordinates of the approximate address
cancel_after_initial_payment_error
Filter<boolean>
confirm_after_initial_payment
Filter<boolean>
Whether to automatically confirm the booking after the initial payment. Only applies when interaction is request
confirmation_message
Filter<MultiLanguageString>
Message to show to the customer after submitting a booking from a widget or website
confirmation_message_title
Filter<MultiLanguageString>
cooldown_time
Filter<integer>
Minimum number of days between bookings
cta
Filter<MultiLanguageString>
Call to action shown at the bottom of the booking form
currency
Filter<Currency>
Currency bookings are made in
description
Filter<MultiLanguageString>
Localized description
exact_address
Filter<text>
Exact address of the unit
exact_coordinates
Filter<Coordinates | null>
Coordinates of the exact address
fts
Filter<tsvector>
Full text search index
hide_exact_address
Filter<boolean>
Whether to hide the exact address from customers before bookings are confirmed
ical_export_secret
Filter<text>
Secret used to generate iCal feed URLs
ical_export_secret_no_details
Filter<text>
Secret used to generate iCal feed URLs without booking details
images
Filter<Array<ProductImage>>
List of images
interaction
Filter<"request" | "book">
Interaction type, either request
or book
latest_arrival_time
Filter<time without time zone | null>
name
Filter<MultiLanguageString>
Localized name
payment_expiration_duration
Filter<integer>
price_breakdown_specificity
Filter<"combined" | "separate">
rent_period
Filter<"daily" | "nightly">
Rent period of the unit
rent_pricing_definition
Filter<"configurations" | "service">
Pricing definition of the unit. Either configuration
or services
request_status
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
Status of new bookings. Only applies when interaction is request
timezone
Filter<text>
Timezone of the unit
Partial<Product>
204
The updated products with the selected columns
PATCH /products
curl -X PATCH "https://api.bookingmood.com/v1/products" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Register a new product in your organization. This action will automatically update your subscription.
name
MultiLanguageString
Localized name
rent_period
"daily" | "nightly"
Rent period of the unit
timezone
text
Timezone of the unit
201
The newly created product
POST /products
curl -X POST "https://api.bookingmood.com/v1/products" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"name": {},
"rent_period": "nightly",
"timezone": "UTC"
}'
Delete a product from your organization. This will also delete all bookings for this product. Your subscription will be adjusted automatically. This action cannot be undone.
id
required
uuid
The identifier of the product to delete
200
The deleted product
DELETE /products
curl -X DELETE "https://api.bookingmood.com/v1/products" \
-H "Authorization: Bearer YOUR_API_KEY"
Reply-to email addresses
id
uuid
Unique identifier
organization_id
uuid
Identifier of the organization this reply-to address is defined in
email
text
The email address to send the reply to
name
text
The display name of email address to send the reply to
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"email": "",
"name": ""
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this reply-to address is defined in
email
Filter<text>
The email address to send the reply to
name
Filter<text>
The display name of email address to send the reply to
200
A list of reply to addresses with the selected columns
206
Partial Content
GET /reply_to_addresses
curl -X GET "https://api.bookingmood.com/v1/reply_to_addresses?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ReplyToAddresse> | Array<Partial<ReplyToAddresse>>
201
The newly created reply to addresses with the selected columns
POST /reply_to_addresses
curl -X POST "https://api.bookingmood.com/v1/reply_to_addresses" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this reply-to address is defined in
email
Filter<text>
The email address to send the reply to
name
Filter<text>
The display name of email address to send the reply to
204
The deleted reply to addresses with the selected columns
DELETE /reply_to_addresses
curl -X DELETE "https://api.bookingmood.com/v1/reply_to_addresses" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this reply-to address is defined in
email
Filter<text>
The email address to send the reply to
name
Filter<text>
The display name of email address to send the reply to
Partial<ReplyToAddresse>
204
The updated reply to addresses with the selected columns
PATCH /reply_to_addresses
curl -X PATCH "https://api.bookingmood.com/v1/reply_to_addresses" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Season definitions. Useful for making re-usable pricing definitions
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
name
MultiLanguageString
Localized name
value
SeasonExpression | null
List of intervals defining the season
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"value": {
"type": "recurring-date-range",
"intervals": [
{
"min": {
"month": 1,
"day": 1
},
"max": {
"month": 12,
"day": 31
}
}
]
}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
name
Filter<MultiLanguageString>
Localized name
value
Filter<SeasonExpression | null>
List of intervals defining the season
200
A list of seasons with the selected columns
206
Partial Content
GET /seasons
curl -X GET "https://api.bookingmood.com/v1/seasons?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<Season> | Array<Partial<Season>>
201
The newly created seasons with the selected columns
POST /seasons
curl -X POST "https://api.bookingmood.com/v1/seasons" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
name
Filter<MultiLanguageString>
Localized name
value
Filter<SeasonExpression | null>
List of intervals defining the season
204
The deleted seasons with the selected columns
DELETE /seasons
curl -X DELETE "https://api.bookingmood.com/v1/seasons" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
name
Filter<MultiLanguageString>
Localized name
value
Filter<SeasonExpression | null>
List of intervals defining the season
Partial<Season>
204
The updated seasons with the selected columns
PATCH /seasons
curl -X PATCH "https://api.bookingmood.com/v1/seasons" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Deposit schedule per service
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
moment
MomentExpression
Moment at which the deposit should be paid
value
PriceExpression
Value of the deposit
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"moment": {
"type": "check-in",
"offset": 1
},
"value": {
"type": "absolute",
"restrictions": [],
"value": [
{
"value": 10,
"occupancy_group_id": null,
"period": null,
"variable": null
}
]
}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
moment
Filter<MomentExpression>
Moment at which the deposit should be paid
value
Filter<PriceExpression>
Value of the deposit
200
A list of service deposit moments with the selected columns
206
Partial Content
GET /service_deposit_moments
curl -X GET "https://api.bookingmood.com/v1/service_deposit_moments?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ServiceDepositMoment> | Array<Partial<ServiceDepositMoment>>
201
The newly created service deposit moments with the selected columns
POST /service_deposit_moments
curl -X POST "https://api.bookingmood.com/v1/service_deposit_moments" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
moment
Filter<MomentExpression>
Moment at which the deposit should be paid
value
Filter<PriceExpression>
Value of the deposit
204
The deleted service deposit moments with the selected columns
DELETE /service_deposit_moments
curl -X DELETE "https://api.bookingmood.com/v1/service_deposit_moments" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
moment
Filter<MomentExpression>
Moment at which the deposit should be paid
value
Filter<PriceExpression>
Value of the deposit
Partial<ServiceDepositMoment>
204
The updated service deposit moments with the selected columns
PATCH /service_deposit_moments
curl -X PATCH "https://api.bookingmood.com/v1/service_deposit_moments" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"tax_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
service_id
Filter<uuid>
tax_id
Filter<uuid>
created_at
Filter<timestamp with time zone>
200
A list of service deposit taxes with the selected columns
206
Partial Content
GET /service_deposit_taxes
curl -X GET "https://api.bookingmood.com/v1/service_deposit_taxes?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ServiceDepositTax> | Array<Partial<ServiceDepositTax>>
201
The newly created service deposit taxes with the selected columns
POST /service_deposit_taxes
curl -X POST "https://api.bookingmood.com/v1/service_deposit_taxes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
service_id
Filter<uuid>
tax_id
Filter<uuid>
created_at
Filter<timestamp with time zone>
204
The deleted service deposit taxes with the selected columns
DELETE /service_deposit_taxes
curl -X DELETE "https://api.bookingmood.com/v1/service_deposit_taxes" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
service_id
Filter<uuid>
tax_id
Filter<uuid>
created_at
Filter<timestamp with time zone>
Partial<ServiceDepositTax>
204
The updated service deposit taxes with the selected columns
PATCH /service_deposit_taxes
curl -X PATCH "https://api.bookingmood.com/v1/service_deposit_taxes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Discounts per service
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
definition
PriceExpression
Definition of the discount
name
MultiLanguageString
Localized name
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"definition": {
"type": "absolute",
"restrictions": [],
"value": [
{
"value": 10,
"occupancy_group_id": null,
"period": null,
"variable": null
}
]
},
"name": {
"default": "Hello",
"nl-NL": "Hallo"
}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
definition
Filter<PriceExpression>
Definition of the discount
name
Filter<MultiLanguageString>
Localized name
200
A list of service discounts with the selected columns
206
Partial Content
GET /service_discounts
curl -X GET "https://api.bookingmood.com/v1/service_discounts?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ServiceDiscount> | Array<Partial<ServiceDiscount>>
201
The newly created service discounts with the selected columns
POST /service_discounts
curl -X POST "https://api.bookingmood.com/v1/service_discounts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
definition
Filter<PriceExpression>
Definition of the discount
name
Filter<MultiLanguageString>
Localized name
204
The deleted service discounts with the selected columns
DELETE /service_discounts
curl -X DELETE "https://api.bookingmood.com/v1/service_discounts" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
definition
Filter<PriceExpression>
Definition of the discount
name
Filter<MultiLanguageString>
Localized name
Partial<ServiceDiscount>
204
The updated service discounts with the selected columns
PATCH /service_discounts
curl -X PATCH "https://api.bookingmood.com/v1/service_discounts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Payment schedule per service
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
moment
MomentExpression
Moment at which the payment should be made
value
PriceExpression
Value of the payment
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"moment": {
"type": "check-in",
"offset": 1
},
"value": {
"type": "absolute",
"restrictions": [],
"value": [
{
"value": 10,
"occupancy_group_id": null,
"period": null,
"variable": null
}
]
}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
moment
Filter<MomentExpression>
Moment at which the payment should be made
value
Filter<PriceExpression>
Value of the payment
200
A list of service payment moments with the selected columns
206
Partial Content
GET /service_payment_moments
curl -X GET "https://api.bookingmood.com/v1/service_payment_moments?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ServicePaymentMoment> | Array<Partial<ServicePaymentMoment>>
201
The newly created service payment moments with the selected columns
POST /service_payment_moments
curl -X POST "https://api.bookingmood.com/v1/service_payment_moments" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
moment
Filter<MomentExpression>
Moment at which the payment should be made
value
Filter<PriceExpression>
Value of the payment
204
The deleted service payment moments with the selected columns
DELETE /service_payment_moments
curl -X DELETE "https://api.bookingmood.com/v1/service_payment_moments" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
moment
Filter<MomentExpression>
Moment at which the payment should be made
value
Filter<PriceExpression>
Value of the payment
Partial<ServicePaymentMoment>
204
The updated service payment moments with the selected columns
PATCH /service_payment_moments
curl -X PATCH "https://api.bookingmood.com/v1/service_payment_moments" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Taxes applying per service
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"service_id": "00000000-0000-0000-0000-000000000000",
"tax_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
200
A list of service taxes with the selected columns
206
Partial Content
GET /service_taxes
curl -X GET "https://api.bookingmood.com/v1/service_taxes?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<ServiceTax> | Array<Partial<ServiceTax>>
201
The newly created service taxes with the selected columns
POST /service_taxes
curl -X POST "https://api.bookingmood.com/v1/service_taxes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
204
The deleted service taxes with the selected columns
DELETE /service_taxes
curl -X DELETE "https://api.bookingmood.com/v1/service_taxes" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
Partial<ServiceTax>
204
The updated service taxes with the selected columns
PATCH /service_taxes
curl -X PATCH "https://api.bookingmood.com/v1/service_taxes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Re-usable elements that can be included in the booking forms of units
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
deposit
PriceExpression | null
Deposit of the service
deposit_refund_moment
MomentExpression | null
deposit_refund_policy
MultiLanguageString
description
MultiLanguageString
Localized description
fts
tsvector
Full text search index
label
MultiLanguageString
Localized label
meta
Partial<ServiceMeta>
Meta data of the service
order
smallint
Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.
price
PriceExpression | null
Price of the service
type
| "address"
| "checkbox"
| "contact-meta"
| "email"
| "long-text"
| "multiple-choice"
| "multiple-choice-option"
| "name"
| "number"
| "phone"
| "rent"
| "short-text"
| "statement"
| "time"
Type of the service
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"parent_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"deposit": {
"type": "absolute",
"restrictions": [],
"value": [
{
"value": 10,
"occupancy_group_id": null,
"period": null,
"variable": null
}
]
},
"deposit_refund_moment": {
"type": "check-in",
"offset": 1
},
"deposit_refund_policy": {
"default": "Hello",
"nl-NL": "Hallo"
},
"description": {
"default": "Hello",
"nl-NL": "Hallo"
},
"label": {
"default": "Hello",
"nl-NL": "Hallo"
},
"meta": {
"address_display": "single",
"address_segments": {
"city": "required",
"country": "required",
"phone_number_display": "international",
"province": "required",
"state": "required",
"street": "required",
"street2": "optional",
"zip": "required"
},
"max": 10,
"min": 1,
"multiple_choice_display": "dropdown",
"name_display": "single",
"required": true
},
"order": 0,
"price": {
"type": "absolute",
"restrictions": [],
"value": [
{
"value": 10,
"occupancy_group_id": null,
"period": null,
"variable": null
}
]
},
"type": ""
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this service is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deposit
Filter<PriceExpression | null>
Deposit of the service
deposit_refund_moment
Filter<MomentExpression | null>
deposit_refund_policy
Filter<MultiLanguageString>
description
Filter<MultiLanguageString>
Localized description
fts
Filter<tsvector>
Full text search index
label
Filter<MultiLanguageString>
Localized label
meta
Filter<Partial<ServiceMeta>>
Meta data of the service
order
Filter<smallint>
Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.
price
Filter<PriceExpression | null>
Price of the service
type
Filter<
| "address"
| "checkbox"
| "contact-meta"
| "email"
| "long-text"
| "multiple-choice"
| "multiple-choice-option"
| "name"
| "number"
| "phone"
| "rent"
| "short-text"
| "statement"
| "time">
Type of the service
200
A list of services with the selected columns
206
Partial Content
GET /services
curl -X GET "https://api.bookingmood.com/v1/services?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<Service> | Array<Partial<Service>>
201
The newly created services with the selected columns
POST /services
curl -X POST "https://api.bookingmood.com/v1/services" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this service is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deposit
Filter<PriceExpression | null>
Deposit of the service
deposit_refund_moment
Filter<MomentExpression | null>
deposit_refund_policy
Filter<MultiLanguageString>
description
Filter<MultiLanguageString>
Localized description
fts
Filter<tsvector>
Full text search index
label
Filter<MultiLanguageString>
Localized label
meta
Filter<Partial<ServiceMeta>>
Meta data of the service
order
Filter<smallint>
Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.
price
Filter<PriceExpression | null>
Price of the service
type
Filter<
| "address"
| "checkbox"
| "contact-meta"
| "email"
| "long-text"
| "multiple-choice"
| "multiple-choice-option"
| "name"
| "number"
| "phone"
| "rent"
| "short-text"
| "statement"
| "time">
Type of the service
204
The deleted services with the selected columns
DELETE /services
curl -X DELETE "https://api.bookingmood.com/v1/services" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this service is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deposit
Filter<PriceExpression | null>
Deposit of the service
deposit_refund_moment
Filter<MomentExpression | null>
deposit_refund_policy
Filter<MultiLanguageString>
description
Filter<MultiLanguageString>
Localized description
fts
Filter<tsvector>
Full text search index
label
Filter<MultiLanguageString>
Localized label
meta
Filter<Partial<ServiceMeta>>
Meta data of the service
order
Filter<smallint>
Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.
price
Filter<PriceExpression | null>
Price of the service
type
Filter<
| "address"
| "checkbox"
| "contact-meta"
| "email"
| "long-text"
| "multiple-choice"
| "multiple-choice-option"
| "name"
| "number"
| "phone"
| "rent"
| "short-text"
| "statement"
| "time">
Type of the service
Partial<Service>
204
The updated services with the selected columns
PATCH /services
curl -X PATCH "https://api.bookingmood.com/v1/services" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Listed units on a site
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
order
integer
Order of the listing as displayed on the site
slug
MultiLanguageString
Slug of the listing
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"site_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"order": 0,
"slug": {
"default": "Hello",
"nl-NL": "Hallo"
}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<integer>
Order of the listing as displayed on the site
slug
Filter<MultiLanguageString>
Slug of the listing
200
A list of site listings with the selected columns
206
Partial Content
GET /site_listings
curl -X GET "https://api.bookingmood.com/v1/site_listings?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<SiteListing> | Array<Partial<SiteListing>>
201
The newly created site listings with the selected columns
POST /site_listings
curl -X POST "https://api.bookingmood.com/v1/site_listings" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<integer>
Order of the listing as displayed on the site
slug
Filter<MultiLanguageString>
Slug of the listing
204
The deleted site listings with the selected columns
DELETE /site_listings
curl -X DELETE "https://api.bookingmood.com/v1/site_listings" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<integer>
Order of the listing as displayed on the site
slug
Filter<MultiLanguageString>
Slug of the listing
Partial<SiteListing>
204
The updated site listings with the selected columns
PATCH /site_listings
curl -X PATCH "https://api.bookingmood.com/v1/site_listings" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Items in the navigation bar of a site
id
uuid
Unique identifier
site_page_id
uuid | null
Identifier of the related page. Only applies when type is internal
created_at
timestamp with time zone
Creation timestamp
label
MultiLanguageString
Localized label of the navigation item
order
integer
Order of the navigation item as displayed on the site
target
"_blank" | "_self"
Where the link is opened (_self
, or _blank
)
url
MultiLanguageString
URL of the navigation item. Only applies when type is external
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"parent_id": "00000000-0000-0000-0000-000000000000",
"site_id": "00000000-0000-0000-0000-000000000000",
"site_page_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"label": {
"default": "Hello",
"nl-NL": "Hallo"
},
"order": 0,
"target": "_self",
"url": {
"default": "Hello",
"nl-NL": "Hallo"
}
}
id
Filter<uuid>
Unique identifier
site_page_id
Filter<uuid | null>
Identifier of the related page. Only applies when type is internal
created_at
Filter<timestamp with time zone>
Creation timestamp
label
Filter<MultiLanguageString>
Localized label of the navigation item
order
Filter<integer>
Order of the navigation item as displayed on the site
target
Filter<"_blank" | "_self">
Where the link is opened (_self
, or _blank
)
url
Filter<MultiLanguageString>
URL of the navigation item. Only applies when type is external
200
A list of site nav items with the selected columns
206
Partial Content
GET /site_nav_items
curl -X GET "https://api.bookingmood.com/v1/site_nav_items?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<SiteNavItem> | Array<Partial<SiteNavItem>>
201
The newly created site nav items with the selected columns
POST /site_nav_items
curl -X POST "https://api.bookingmood.com/v1/site_nav_items" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
site_page_id
Filter<uuid | null>
Identifier of the related page. Only applies when type is internal
created_at
Filter<timestamp with time zone>
Creation timestamp
label
Filter<MultiLanguageString>
Localized label of the navigation item
order
Filter<integer>
Order of the navigation item as displayed on the site
target
Filter<"_blank" | "_self">
Where the link is opened (_self
, or _blank
)
url
Filter<MultiLanguageString>
URL of the navigation item. Only applies when type is external
204
The deleted site nav items with the selected columns
DELETE /site_nav_items
curl -X DELETE "https://api.bookingmood.com/v1/site_nav_items" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
site_page_id
Filter<uuid | null>
Identifier of the related page. Only applies when type is internal
created_at
Filter<timestamp with time zone>
Creation timestamp
label
Filter<MultiLanguageString>
Localized label of the navigation item
order
Filter<integer>
Order of the navigation item as displayed on the site
target
Filter<"_blank" | "_self">
Where the link is opened (_self
, or _blank
)
url
Filter<MultiLanguageString>
URL of the navigation item. Only applies when type is external
Partial<SiteNavItem>
204
The updated site nav items with the selected columns
PATCH /site_nav_items
curl -X PATCH "https://api.bookingmood.com/v1/site_nav_items" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Additional pages on a site
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
description
MultiLanguageString
Localized description of the page
node
jsonb
slug
MultiLanguageString
Slug of the page
status
"draft" | "published"
Publication status of the page
title
MultiLanguageString
Localized title of the page
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"site_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"description": {
"default": "Hello",
"nl-NL": "Hallo"
},
"node": {},
"slug": {
"default": "Hello",
"nl-NL": "Hallo"
},
"status": "draft",
"title": {
"default": "Hello",
"nl-NL": "Hallo"
}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<MultiLanguageString>
Localized description of the page
node
Filter<jsonb>
slug
Filter<MultiLanguageString>
Slug of the page
status
Filter<"draft" | "published">
Publication status of the page
title
Filter<MultiLanguageString>
Localized title of the page
200
A list of site pages with the selected columns
206
Partial Content
GET /site_pages
curl -X GET "https://api.bookingmood.com/v1/site_pages?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<SitePage> | Array<Partial<SitePage>>
201
The newly created site pages with the selected columns
POST /site_pages
curl -X POST "https://api.bookingmood.com/v1/site_pages" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<MultiLanguageString>
Localized description of the page
node
Filter<jsonb>
slug
Filter<MultiLanguageString>
Slug of the page
status
Filter<"draft" | "published">
Publication status of the page
title
Filter<MultiLanguageString>
Localized title of the page
204
The deleted site pages with the selected columns
DELETE /site_pages
curl -X DELETE "https://api.bookingmood.com/v1/site_pages" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<MultiLanguageString>
Localized description of the page
node
Filter<jsonb>
slug
Filter<MultiLanguageString>
Slug of the page
status
Filter<"draft" | "published">
Publication status of the page
title
Filter<MultiLanguageString>
Localized title of the page
Partial<SitePage>
204
The updated site pages with the selected columns
PATCH /site_pages
curl -X PATCH "https://api.bookingmood.com/v1/site_pages" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Logs of each pageview for a site
id
integer
Unique identifier
created_at
timestamp with time zone
Creation timestamp
country
text | null
Country of the view
pathname
text
Pathname of the page
referer
text | null
Referer of the view
session
uuid
Session identifier
JSON
{
"id": 0,
"site_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"country": "",
"pathname": "",
"referer": "",
"session": "00000000-0000-0000-0000-000000000000"
}
id
Filter<integer>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
country
Filter<text | null>
Country of the view
pathname
Filter<text>
Pathname of the page
referer
Filter<text | null>
Referer of the view
session
Filter<uuid>
Session identifier
200
A list of site views with the selected columns
206
Partial Content
GET /site_views
curl -X GET "https://api.bookingmood.com/v1/site_views?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Websites, either single-unit or catalog sites.
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
autocomplete_date_selection
boolean
Whether to autocomplete the date selection when only one date is available
color_background
text
Background color of the site
color_booked
text
color_closed
text
color_error
text
Error color of the site
color_header
text
color_info
text
color_primary
text
Primary color of the site
color_text
text
Text color of the site
color_unavailable
text
color_warning
text
cover
text | null
URL of the cover image
currency
Currency
Currency of the site
custom_domain
text | null
Custom domain of the site
date_visibility
"all" | "hide-unavailable" | "hide-closed" | "custom"
Visible dates in the calendar. Either all
or available
filters
text[]
Filters to show in the search bar
first_week_contains_date
1 | 4 | null
First week of the year. Either 1
(first week with a Thursday) or 4
(first week with a Monday)
font
text | null
Font of the site
icon
text | null
URL of the icon image
initial_date
"today" | "next-open" | "next-available"
Initial date shown in the calendar
interval_wrap_style
"square" | "jagged"
Style of the interval when wrapping weeks
logo
text | null
URL of the logo image
logo_alt
text | null
Alt text of the logo image
name
MultiLanguageString
Localized name
password_hash
text | null
Hash of the password required to access the site
pricing_version
text
rate_location
"inline" | "tooltip"
Location where rates are shown in the calendar. Either inline
or tooltip
rate_visibility
"all" | "available" | "none"
Visibility of rates in the calendar. Either all
, available
or none
related_listings
integer | null
Number of related listings to show on detail pages
show_booked_as
"booked" | "unavailable"
show_branding
boolean
Whether to show the Bookingmood branding
show_closed_as
"closed" | "unavailable"
show_legend
boolean
Whether to show a legend in the calendar
show_organization_description_section
boolean
Whether to show the organization description section
show_pending_as
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
show_pricing
boolean
show_totals
boolean
Whether to show totals in the calendar
show_unavailable_results
boolean
subdomain
text
Subdomain of the site
type
"listing-site" | "single-unit-site"
Type of the site, either single-unit-site
or listing-site
week_starts_on
0 | 1 | null
First day of the week. Either 1
or 0
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"autocomplete_date_selection": false,
"color_background": "#fff",
"color_booked": "#faa5a5",
"color_closed": "#f5f5f5",
"color_error": "#faa5a5",
"color_header": "#000",
"color_info": "#2463eb",
"color_primary": "#22c55e",
"color_text": "#000",
"color_unavailable": "#faa5a5",
"color_warning": "#a75c03",
"cover": "",
"currency": "USD",
"custom_domain": "",
"date_visibility": "all",
"filters": [
""
],
"first_week_contains_date": 0,
"font": "",
"icon": "",
"initial_date": "today",
"interval_wrap_style": "square",
"logo": "",
"logo_alt": "",
"name": {
"default": "Hello",
"nl-NL": "Hallo"
},
"password_hash": "",
"pricing_version": "V0",
"rate_location": "inline",
"rate_visibility": "available",
"related_listings": 6,
"show_booked_as": "unavailable",
"show_branding": true,
"show_closed_as": "closed",
"show_legend": true,
"show_organization_description_section": true,
"show_pending_as": "TENTATIVE",
"show_pricing": true,
"show_totals": true,
"show_unavailable_results": true,
"subdomain": "",
"type": "listing-site",
"week_starts_on": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
autocomplete_date_selection
Filter<boolean>
Whether to autocomplete the date selection when only one date is available
color_background
Filter<text>
Background color of the site
color_booked
Filter<text>
color_closed
Filter<text>
color_error
Filter<text>
Error color of the site
color_header
Filter<text>
color_info
Filter<text>
color_primary
Filter<text>
Primary color of the site
color_text
Filter<text>
Text color of the site
color_unavailable
Filter<text>
color_warning
Filter<text>
cover
Filter<text | null>
URL of the cover image
currency
Filter<Currency>
Currency of the site
custom_domain
Filter<text | null>
Custom domain of the site
date_visibility
Filter<"all" | "hide-unavailable" | "hide-closed" | "custom">
Visible dates in the calendar. Either all
or available
filters
Filter<text[]>
Filters to show in the search bar
first_week_contains_date
Filter<1 | 4 | null>
First week of the year. Either 1
(first week with a Thursday) or 4
(first week with a Monday)
font
Filter<text | null>
Font of the site
icon
Filter<text | null>
URL of the icon image
initial_date
Filter<"today" | "next-open" | "next-available">
Initial date shown in the calendar
interval_wrap_style
Filter<"square" | "jagged">
Style of the interval when wrapping weeks
logo
Filter<text | null>
URL of the logo image
logo_alt
Filter<text | null>
Alt text of the logo image
name
Filter<MultiLanguageString>
Localized name
password_hash
Filter<text | null>
Hash of the password required to access the site
pricing_version
Filter<text>
rate_location
Filter<"inline" | "tooltip">
Location where rates are shown in the calendar. Either inline
or tooltip
rate_visibility
Filter<"all" | "available" | "none">
Visibility of rates in the calendar. Either all
, available
or none
related_listings
Filter<integer | null>
Number of related listings to show on detail pages
show_booked_as
Filter<"booked" | "unavailable">
show_branding
Filter<boolean>
Whether to show the Bookingmood branding
show_closed_as
Filter<"closed" | "unavailable">
show_legend
Filter<boolean>
Whether to show a legend in the calendar
show_organization_description_section
Filter<boolean>
Whether to show the organization description section
show_pending_as
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_pricing
Filter<boolean>
show_totals
Filter<boolean>
Whether to show totals in the calendar
show_unavailable_results
Filter<boolean>
subdomain
Filter<text>
Subdomain of the site
type
Filter<"listing-site" | "single-unit-site">
Type of the site, either single-unit-site
or listing-site
week_starts_on
Filter<0 | 1 | null>
First day of the week. Either 1
or 0
200
A list of sites with the selected columns
206
Partial Content
GET /sites
curl -X GET "https://api.bookingmood.com/v1/sites?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
autocomplete_date_selection
Filter<boolean>
Whether to autocomplete the date selection when only one date is available
color_background
Filter<text>
Background color of the site
color_booked
Filter<text>
color_closed
Filter<text>
color_error
Filter<text>
Error color of the site
color_header
Filter<text>
color_info
Filter<text>
color_primary
Filter<text>
Primary color of the site
color_text
Filter<text>
Text color of the site
color_unavailable
Filter<text>
color_warning
Filter<text>
cover
Filter<text | null>
URL of the cover image
currency
Filter<Currency>
Currency of the site
custom_domain
Filter<text | null>
Custom domain of the site
date_visibility
Filter<"all" | "hide-unavailable" | "hide-closed" | "custom">
Visible dates in the calendar. Either all
or available
filters
Filter<text[]>
Filters to show in the search bar
first_week_contains_date
Filter<1 | 4 | null>
First week of the year. Either 1
(first week with a Thursday) or 4
(first week with a Monday)
font
Filter<text | null>
Font of the site
icon
Filter<text | null>
URL of the icon image
initial_date
Filter<"today" | "next-open" | "next-available">
Initial date shown in the calendar
interval_wrap_style
Filter<"square" | "jagged">
Style of the interval when wrapping weeks
logo
Filter<text | null>
URL of the logo image
logo_alt
Filter<text | null>
Alt text of the logo image
name
Filter<MultiLanguageString>
Localized name
password_hash
Filter<text | null>
Hash of the password required to access the site
pricing_version
Filter<text>
rate_location
Filter<"inline" | "tooltip">
Location where rates are shown in the calendar. Either inline
or tooltip
rate_visibility
Filter<"all" | "available" | "none">
Visibility of rates in the calendar. Either all
, available
or none
related_listings
Filter<integer | null>
Number of related listings to show on detail pages
show_booked_as
Filter<"booked" | "unavailable">
show_branding
Filter<boolean>
Whether to show the Bookingmood branding
show_closed_as
Filter<"closed" | "unavailable">
show_legend
Filter<boolean>
Whether to show a legend in the calendar
show_organization_description_section
Filter<boolean>
Whether to show the organization description section
show_pending_as
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_pricing
Filter<boolean>
show_totals
Filter<boolean>
Whether to show totals in the calendar
show_unavailable_results
Filter<boolean>
subdomain
Filter<text>
Subdomain of the site
type
Filter<"listing-site" | "single-unit-site">
Type of the site, either single-unit-site
or listing-site
week_starts_on
Filter<0 | 1 | null>
First day of the week. Either 1
or 0
Partial<Site>
204
The updated sites with the selected columns
PATCH /sites
curl -X PATCH "https://api.bookingmood.com/v1/sites" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Re-usable tax definitions
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
fts
tsvector | null
Full text search index
label
MultiLanguageString
Localized label
percentage
real
Percentage of the tax
type
"on-top" | "included"
Type of the tax. Either on-top
or included
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"label": {
"default": "Hello",
"nl-NL": "Hallo"
},
"percentage": 0,
"type": "on-top"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
fts
Filter<tsvector | null>
Full text search index
label
Filter<MultiLanguageString>
Localized label
percentage
Filter<real>
Percentage of the tax
type
Filter<"on-top" | "included">
Type of the tax. Either on-top
or included
200
A list of taxes with the selected columns
206
Partial Content
GET /taxes
curl -X GET "https://api.bookingmood.com/v1/taxes?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<Tax> | Array<Partial<Tax>>
201
The newly created taxes with the selected columns
POST /taxes
curl -X POST "https://api.bookingmood.com/v1/taxes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
fts
Filter<tsvector | null>
Full text search index
label
Filter<MultiLanguageString>
Localized label
percentage
Filter<real>
Percentage of the tax
type
Filter<"on-top" | "included">
Type of the tax. Either on-top
or included
204
The deleted taxes with the selected columns
DELETE /taxes
curl -X DELETE "https://api.bookingmood.com/v1/taxes" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
fts
Filter<tsvector | null>
Full text search index
label
Filter<MultiLanguageString>
Localized label
percentage
Filter<real>
Percentage of the tax
type
Filter<"on-top" | "included">
Type of the tax. Either on-top
or included
Partial<Tax>
204
The updated taxes with the selected columns
PATCH /taxes
curl -X PATCH "https://api.bookingmood.com/v1/taxes" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
User profiles
referrer_id
uuid | null
user_id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
avatar
text | null
URL of the avatar image
email
text
User email address
first_week_contains_date
1 | 4 | null
First week of the year. Either 1
(first week with a Thursday) or 4
(first week with a Monday)
fts
tsvector
Full text search index
last_login_at
timestamp with time zone | null
Timestamp at which the user last logged in
locale
AppLanguage
User language
name
text | null
User name
source
text | null
Source of the user
week_starts_on
0 | 1 | null
First day of the week. Either 1
or 0
JSON
{
"referrer_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"avatar": "",
"email": "",
"first_week_contains_date": 0,
"last_login_at": "2025-02-22T08:26:32.519Z",
"locale": "en-US",
"name": "",
"source": "",
"week_starts_on": 0
}
referrer_id
Filter<uuid | null>
user_id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
avatar
Filter<text | null>
URL of the avatar image
email
Filter<text>
User email address
first_week_contains_date
Filter<1 | 4 | null>
First week of the year. Either 1
(first week with a Thursday) or 4
(first week with a Monday)
fts
Filter<tsvector>
Full text search index
last_login_at
Filter<timestamp with time zone | null>
Timestamp at which the user last logged in
locale
Filter<AppLanguage>
User language
name
Filter<text | null>
User name
source
Filter<text | null>
Source of the user
week_starts_on
Filter<0 | 1 | null>
First day of the week. Either 1
or 0
200
A list of user profiles with the selected columns
206
Partial Content
GET /user_profiles
curl -X GET "https://api.bookingmood.com/v1/user_profiles?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
referrer_id
Filter<uuid | null>
user_id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
avatar
Filter<text | null>
URL of the avatar image
email
Filter<text>
User email address
first_week_contains_date
Filter<1 | 4 | null>
First week of the year. Either 1
(first week with a Thursday) or 4
(first week with a Monday)
fts
Filter<tsvector>
Full text search index
last_login_at
Filter<timestamp with time zone | null>
Timestamp at which the user last logged in
locale
Filter<AppLanguage>
User language
name
Filter<text | null>
User name
source
Filter<text | null>
Source of the user
week_starts_on
Filter<0 | 1 | null>
First day of the week. Either 1
or 0
Partial<UserProfile>
204
The updated user profiles with the selected columns
PATCH /user_profiles
curl -X PATCH "https://api.bookingmood.com/v1/user_profiles" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Notifications sent and scheduled per webhook
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
event_type
text
Event this notification is for
payload
jsonb
JSON payload that is sent along with this notification
response
text | null
Stored response
status
"pending" | "sent" | "error"
Notification status. Either pending
, sent
or error
tries
integer
Amount of times this webhook notification has been tried to be delivered
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"webhook_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"event_type": "",
"payload": {},
"response": "",
"status": "pending",
"tries": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
event_type
Filter<text>
Event this notification is for
payload
Filter<jsonb>
JSON payload that is sent along with this notification
response
Filter<text | null>
Stored response
status
Filter<"pending" | "sent" | "error">
Notification status. Either pending
, sent
or error
tries
Filter<integer>
Amount of times this webhook notification has been tried to be delivered
200
A list of webhook notifications with the selected columns
206
Partial Content
GET /webhook_notifications
curl -X GET "https://api.bookingmood.com/v1/webhook_notifications?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Webhooks are a messaging mechanism that allow you to get notified on an endpoint of your choice as soon as certain events happen in Bookingmood.
For more information on the webhook mechanics, see our documentation
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
description
text
An optional description of the webhook
endpoint
text
URL to which notifications should be sent
events
text[]
Events to which the webhook is subscribed. For possible values, see a complete list
signing_secret
text
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.
source
text
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"description": "",
"endpoint": "",
"events": [
""
],
"signing_secret": "md5((random())::text)",
"source": ""
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this webhook is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<text>
An optional description of the webhook
endpoint
Filter<text>
URL to which notifications should be sent
events
Filter<text[]>
Events to which the webhook is subscribed. For possible values, see a complete list
signing_secret
Filter<text>
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.
source
Filter<text>
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.
200
A list of webhooks with the selected columns
206
Partial Content
GET /webhooks
curl -X GET "https://api.bookingmood.com/v1/webhooks?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<Webhook> | Array<Partial<Webhook>>
201
The newly created webhooks with the selected columns
POST /webhooks
curl -X POST "https://api.bookingmood.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this webhook is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<text>
An optional description of the webhook
endpoint
Filter<text>
URL to which notifications should be sent
events
Filter<text[]>
Events to which the webhook is subscribed. For possible values, see a complete list
signing_secret
Filter<text>
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.
source
Filter<text>
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.
204
The deleted webhooks with the selected columns
DELETE /webhooks
curl -X DELETE "https://api.bookingmood.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this webhook is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<text>
An optional description of the webhook
endpoint
Filter<text>
URL to which notifications should be sent
events
Filter<text[]>
Events to which the webhook is subscribed. For possible values, see a complete list
signing_secret
Filter<text>
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications.
source
Filter<text>
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier.
Partial<Webhook>
204
The updated webhooks with the selected columns
PATCH /webhooks
curl -X PATCH "https://api.bookingmood.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Units listed in a widget
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
order
smallint
Order of the listing as displayed in the widget
url
MultiLanguageString
URL of the listing. Only applies when widget.interaction
is forward
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"product_id": "00000000-0000-0000-0000-000000000000",
"widget_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"order": 0,
"url": {
"default": "Hello",
"nl-NL": "Hallo"
}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<smallint>
Order of the listing as displayed in the widget
url
Filter<MultiLanguageString>
URL of the listing. Only applies when widget.interaction
is forward
200
A list of widget listings with the selected columns
206
Partial Content
GET /widget_listings
curl -X GET "https://api.bookingmood.com/v1/widget_listings?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<WidgetListing> | Array<Partial<WidgetListing>>
201
The newly created widget listings with the selected columns
POST /widget_listings
curl -X POST "https://api.bookingmood.com/v1/widget_listings" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<smallint>
Order of the listing as displayed in the widget
url
Filter<MultiLanguageString>
URL of the listing. Only applies when widget.interaction
is forward
204
The deleted widget listings with the selected columns
DELETE /widget_listings
curl -X DELETE "https://api.bookingmood.com/v1/widget_listings" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
order
Filter<smallint>
Order of the listing as displayed in the widget
url
Filter<MultiLanguageString>
URL of the listing. Only applies when widget.interaction
is forward
Partial<WidgetListing>
204
The updated widget listings with the selected columns
PATCH /widget_listings
curl -X PATCH "https://api.bookingmood.com/v1/widget_listings" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Logs for each widget view
id
bigint
Unique identifier
created_at
timestamp with time zone
Creation timestamp
country
text | null
Country of the view
referer
text | null
Referer of the view
status
"success" | "tier-insufficient" | "inactive"
Status of the widget view
JSON
{
"id": 0,
"widget_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"country": "",
"referer": "",
"status": "success"
}
id
Filter<bigint>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
country
Filter<text | null>
Country of the view
referer
Filter<text | null>
Referer of the view
status
Filter<"success" | "tier-insufficient" | "inactive">
Status of the widget view
200
A list of widget views with the selected columns
206
Partial Content
GET /widget_views
curl -X GET "https://api.bookingmood.com/v1/widget_views?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Embeddable widgets
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
autocomplete_date_selection
boolean
Whether to autocomplete the date selection when only one date is available
currency
Currency | null
Currency of the widget
date_visibility
"all" | "hide-unavailable" | "hide-closed" | "custom"
Visible dates in the calendar. Either all
or available
font
text | null
Font of the widget
fts
tsvector | null
Full text search index
initial_date
"today" | "next-open" | "next-available"
Initial date shown in the calendar
interaction
"forward" | "book" | null
Interaction type, either "book"
, "forward"
or null
locale
Language
Language of the widget
redirect_url
text | null
URL to redirect to after submitting a booking
settings
WidgetSettings
Settings of the widget
show_booked_as
"booked" | "unavailable"
show_bookingmood_branding
boolean
Whether to show the Bookingmood branding
show_closed_as
"closed" | "unavailable"
show_past
boolean
Whether to show past dates in the calendar
show_pending_as
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
show_reviews
boolean
stay_expanded
boolean
Whether the date-selection section should stay expanded after selecting dates
title
text
Title of the widget
type
| "calendar"
| "timeline"
| "inventory"
| "search"
Type of the widget, either calendar
, timeline
, inventory
or search
.
visible_months
boolean[] | null
List of months that are visible in the calendar (deprecated).
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-02-22T08:26:32.519Z",
"updated_at": "2025-02-22T08:26:32.519Z",
"autocomplete_date_selection": false,
"currency": "USD",
"date_visibility": "all",
"font": "",
"initial_date": "today",
"interaction": "",
"locale": "en-US",
"redirect_url": "",
"settings": {},
"show_booked_as": "unavailable",
"show_bookingmood_branding": true,
"show_closed_as": "unavailable",
"show_past": false,
"show_pending_as": "TENTATIVE",
"show_reviews": false,
"stay_expanded": false,
"title": "",
"type": "calendar",
"visible_months": [
false
]
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
autocomplete_date_selection
Filter<boolean>
Whether to autocomplete the date selection when only one date is available
currency
Filter<Currency | null>
Currency of the widget
date_visibility
Filter<"all" | "hide-unavailable" | "hide-closed" | "custom">
Visible dates in the calendar. Either all
or available
font
Filter<text | null>
Font of the widget
fts
Filter<tsvector | null>
Full text search index
initial_date
Filter<"today" | "next-open" | "next-available">
Initial date shown in the calendar
interaction
Filter<"forward" | "book" | null>
Interaction type, either "book"
, "forward"
or null
locale
Filter<Language>
Language of the widget
redirect_url
Filter<text | null>
URL to redirect to after submitting a booking
settings
Filter<WidgetSettings>
Settings of the widget
show_booked_as
Filter<"booked" | "unavailable">
show_bookingmood_branding
Filter<boolean>
Whether to show the Bookingmood branding
show_closed_as
Filter<"closed" | "unavailable">
show_past
Filter<boolean>
Whether to show past dates in the calendar
show_pending_as
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_reviews
Filter<boolean>
stay_expanded
Filter<boolean>
Whether the date-selection section should stay expanded after selecting dates
title
Filter<text>
Title of the widget
type
Filter<
| "calendar"
| "timeline"
| "inventory"
| "search">
Type of the widget, either calendar
, timeline
, inventory
or search
.
visible_months
Filter<boolean[] | null>
List of months that are visible in the calendar (deprecated).
200
A list of widgets with the selected columns
206
Partial Content
GET /widgets
curl -X GET "https://api.bookingmood.com/v1/widgets?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<Widget> | Array<Partial<Widget>>
201
The newly created widgets with the selected columns
POST /widgets
curl -X POST "https://api.bookingmood.com/v1/widgets" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
autocomplete_date_selection
Filter<boolean>
Whether to autocomplete the date selection when only one date is available
currency
Filter<Currency | null>
Currency of the widget
date_visibility
Filter<"all" | "hide-unavailable" | "hide-closed" | "custom">
Visible dates in the calendar. Either all
or available
font
Filter<text | null>
Font of the widget
fts
Filter<tsvector | null>
Full text search index
initial_date
Filter<"today" | "next-open" | "next-available">
Initial date shown in the calendar
interaction
Filter<"forward" | "book" | null>
Interaction type, either "book"
, "forward"
or null
locale
Filter<Language>
Language of the widget
redirect_url
Filter<text | null>
URL to redirect to after submitting a booking
settings
Filter<WidgetSettings>
Settings of the widget
show_booked_as
Filter<"booked" | "unavailable">
show_bookingmood_branding
Filter<boolean>
Whether to show the Bookingmood branding
show_closed_as
Filter<"closed" | "unavailable">
show_past
Filter<boolean>
Whether to show past dates in the calendar
show_pending_as
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_reviews
Filter<boolean>
stay_expanded
Filter<boolean>
Whether the date-selection section should stay expanded after selecting dates
title
Filter<text>
Title of the widget
type
Filter<
| "calendar"
| "timeline"
| "inventory"
| "search">
Type of the widget, either calendar
, timeline
, inventory
or search
.
visible_months
Filter<boolean[] | null>
List of months that are visible in the calendar (deprecated).
204
The deleted widgets with the selected columns
DELETE /widgets
curl -X DELETE "https://api.bookingmood.com/v1/widgets" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
autocomplete_date_selection
Filter<boolean>
Whether to autocomplete the date selection when only one date is available
currency
Filter<Currency | null>
Currency of the widget
date_visibility
Filter<"all" | "hide-unavailable" | "hide-closed" | "custom">
Visible dates in the calendar. Either all
or available
font
Filter<text | null>
Font of the widget
fts
Filter<tsvector | null>
Full text search index
initial_date
Filter<"today" | "next-open" | "next-available">
Initial date shown in the calendar
interaction
Filter<"forward" | "book" | null>
Interaction type, either "book"
, "forward"
or null
locale
Filter<Language>
Language of the widget
redirect_url
Filter<text | null>
URL to redirect to after submitting a booking
settings
Filter<WidgetSettings>
Settings of the widget
show_booked_as
Filter<"booked" | "unavailable">
show_bookingmood_branding
Filter<boolean>
Whether to show the Bookingmood branding
show_closed_as
Filter<"closed" | "unavailable">
show_past
Filter<boolean>
Whether to show past dates in the calendar
show_pending_as
Filter<"CANCELLED" | "TENTATIVE" | "CONFIRMED">
show_reviews
Filter<boolean>
stay_expanded
Filter<boolean>
Whether the date-selection section should stay expanded after selecting dates
title
Filter<text>
Title of the widget
type
Filter<
| "calendar"
| "timeline"
| "inventory"
| "search">
Type of the widget, either calendar
, timeline
, inventory
or search
.
visible_months
Filter<boolean[] | null>
List of months that are visible in the calendar (deprecated).
Partial<Widget>
204
The updated widgets with the selected columns
PATCH /widgets
curl -X PATCH "https://api.bookingmood.com/v1/widgets" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Fetch the availability of multiple products over a long period of time.
perform_sync
boolean
Whether to sync external calendars before fetching availability. Defaults to false
product_ids
Array<uuid>
The product IDs to fetch availability for.
show_booked_as
"booked" | "unavailable"
How to interpret confirmed bookings. Defaults to unavailable
show_closed_as
"closed" | "unavailable"
How to interpret blocked / closed periods. Defaults to unavailable
show_pending_as
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
How to interpret pending events. Defaults to TENTATIVE
200
TypeScript
Array<{
product_id: uuid;
intervals: Array<{
start: string;
end: string;
status: "available" | "tentative" | "unavailable" | "booked" | "reserved";
}>
}>
GET /availability
curl -X GET "https://api.bookingmood.com/v1/availability?product_id=00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY"
JSON
[
{
"product_id": "00000000-0000-0000-0000-000000000000",
"intervals": [
{
"start": "2025-02-22T08:26:32.519Z",
"end": "2025-02-26T08:26:32.519Z",
"status": "unavailable"
},
{
"start": "2025-02-26T08:26:32.519Z",
"end": "2025-06-02T08:26:32.519Z",
"status": "available"
}
]
}
]
Find the availability of multiple products for a given date range. Filter by occupancy and attribute options.
interval
{ start: string, end: string }
The interval to search for availability in. If not provided, search will check each product for a match with the other parameters.
occupancy
Record<uuid, integer>
Filter search results by occupancy.
option_ids
Array<uuid>
Filter search results by attribute_options.
show_booked_as
"booked" | "unavailable"
How to interpret booked events. Defaults to unavailable
show_closed_as
"closed" | "unavailable"
How to interpret closed events. Defaults to unavailable
show_pending_as
"CONFIRMED" | "TENTATIVE" | "CANCELLED"
How to interpret pending events. Defaults to TENTATIVE
200
TypeScript
Array<{
productId: uuid;
match: boolean;
occupancyMatches: boolean;
optionsMatch: boolean;
availability: "available" | "tentative" | "unavailable" | "booked" | "reserved";
price: { min: number, max: number } | null;
}>
POST /search
curl -X POST "https://api.bookingmood.com/v1/search" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
JSON
[
{
"productId": "00000000-0000-0000-0000-000000000000",
"match": false,
"occupancyMatches": true,
"optionsMatch": true,
"availability": "unavailable",
"price": {
"min": 100,
"max": 200
}
}
]
Perform a booking.
coupon_codes
Array<string>
The coupon codes entered for the booking.
currency
Currency
The currency to use for the booking. Defaults to the product's currency. See the widget docs for the allowed values.
form_values
Record<uuid, uuid | text | number | boolean>
Values for each of the form fields. The keys refer to services.id
, the values should be valid values for each of these services.
interval
required
{ start: string, end: string }
The interval to book.
language
Language
The user's preferred language.
occupancy
required
Record<uuid, integer>
The occupancy for each capacity group. The keys refer to capacity_groups.id
, the values are the number of guests for that group.
product_id
required
uuid
The identifier of the product to book.
redirect_url
uuid
The URL to redirect the user to after the booking is completed.
show_pending_as
"CANCELLED" | "TENTATIVE" | "CONFIRMED"
How to interpret pending events when checking if the booking is possible. Defaults to TENTATIVE
201
Information identifying the booking. If a payment URL is set, the user should be redirected to that URL to complete the booking.
TypeScript
{
reference: uuid;
booking_id: uuid;
payment_url: string | null;
}
POST /book
curl -X POST "https://api.bookingmood.com/v1/book" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"product_id": "00000000-0000-0000-0000-000000000000",
"interval": {
"start": "2025-02-22",
"end": "2025-02-26"
},
"occupancy": {
"00000000-0000-0000-0000-000000000000": 1
}
}'
JSON
{
"reference": "00000000-0000-0000-0000-000000000000",
"booking_id": "00000000-0000-0000-0000-000000000000",
"payment_url": null
}