Sites
Websites, either single-unit or catalog sites
The site object
Attributes
iduuidUnique identifier
created_atread-onlytimestamp with time zoneCreation timestamp
updated_atread-onlytimestamp with time zoneLast modification timestamp
autocomplete_date_selectionbooleanWhether to autocomplete the date selection when only one date is available
color_backgroundtextBackground color of the site
color_bookedtextColor of booked dates
color_closedtextColor of closed dates
color_errortextError color of the site
color_headertextHeader color of the site
color_infotextInfo color of the site
color_primarytextPrimary color of the site
color_texttextText color of the site
color_unavailabletextColor of unavailable dates
color_warningtextWarning color of the site
covertext | nullURL of the cover image
currencyCurrencyCurrency of the site
custom_domaintext | nullCustom domain of the site
custom_htmltextCustom HTML added to every page of the site
date_visibilityWidgetDateVisibilityWhich dates the calendar shows: all, hide-closed to hide closed dates, hide-unavailable to hide unavailable dates, or the deprecated custom to show selected months
enable_shopping_cartbooleanWhether guests can book multiple units at once
failure_urltextURL to redirect to when a payment fails. __BOOKING_PAGE__ shows the guest page
filterstext[]Filters to show in the search bar
first_week_contains_date1 | 4 | nullDay of January the first week of the year contains: 1, or 4 as in ISO 8601
fonttext | nullFont of the site
ftsread-onlytsvectoricontext | nullURL of the icon image
initial_dateWidgetInitialDateInitial date shown in the calendar
interval_wrap_styleChannelIntervalWrapStyleStyle of the interval when wrapping weeks
logotext | nullURL of the logo image
logo_alttext | nullURL of the logo image for dark backgrounds
logo_sizeinteger | nullSize of the logo in pixels, or null for automatic
nameMultiLanguageStringLocalized name of the site
password_hashtext | nullHash of the password required to access the site
pricing_versionSitePricingVersionVersion of Bookingmood's pricing that applies to the site: V1 sites are paid, older V0 sites are free
rate_locationChannelRateLocationWhere rates are shown in the calendar: inline or tooltip
rate_visibilityChannelRateVisibilityWhich rates the calendar shows: all, available or none
redirect_urltext | nullURL to redirect to after submitting a booking
related_productsSiteRelatedProducts | nullSettings of the related units section on unit pages
show_booked_asShowBookedAsHow to show booked dates
show_brandingbooleanWhether to show the Bookingmood branding
show_closed_asShowClosedAsHow to show closed dates
show_complex_pricesbooleanWhether guests can inspect seasonal prices in the calendar
show_legendbooleanWhether to show a legend in the calendar
show_pending_asCalendarEventStatusHow to interpret pending events
show_pricingbooleanWhether to show the pricing section on unit pages
show_searchbarbooleanWhether to show the search bar
show_totalsbooleanWhether to show totals in the calendar
show_unavailable_resultsbooleanWhether search results also list units that don't match the search
subdomaintextSubdomain of the site
typeSiteTypeType of the site: single-unit-site or multi-unit-site
week_starts_onDay | nullFirst day of the week: 0 for Sunday or 1 for Monday
Related resources
Embed related resources in the response with the select parameter, for example select=*,organizations!organization_id(*). Resources related through more than one column need the column as a hint, like table!column(*).
organizations!organization_id(*)object | nullThe organization referenced by organization_id.
site_listings(*)arrayThe site listings referencing this site through site_listings.site_id.
site_nav_items(*)arrayThe site nav items referencing this site through site_nav_items.site_id.
site_pages!site_id(*)arrayThe site pages referencing this site through site_pages.site_id.
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-10-30T23:21:07.688Z",
"updated_at": "2026-10-30T23:21:07.688Z",
"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": "",
"custom_html": "",
"date_visibility": "all",
"enable_shopping_cart": false,
"failure_url": "__BOOKING_PAGE__",
"filters": [
""
],
"first_week_contains_date": 0,
"font": "",
"icon": "",
"initial_date": "today",
"interval_wrap_style": "square",
"logo": "",
"logo_alt": "",
"logo_size": 0,
"name": {},
"password_hash": "",
"pricing_version": "V0",
"rate_location": "inline",
"rate_visibility": "available",
"redirect_url": "https://example.com",
"related_products": {
"count": 3,
"show_address": true,
"show_capacity": true,
"show_price_range": true,
"show_rating": true
},
"show_booked_as": "unavailable",
"show_branding": true,
"show_closed_as": "closed",
"show_complex_prices": true,
"show_legend": true,
"show_pending_as": "TENTATIVE",
"show_pricing": true,
"show_searchbar": true,
"show_totals": true,
"show_unavailable_results": true,
"subdomain": "",
"type": "multi-unit-site",
"week_starts_on": 0
}curl -X GET "https://api.bookingmood.com/v1/sites?limit=10&select=*,organizations!organization_id(*),bookings(*)" \
-H "Authorization: Bearer YOUR_API_KEY"List sites
Filters
idFilter<uuid>Unique identifier
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
autocomplete_date_selectionFilter<boolean>Whether to autocomplete the date selection when only one date is available
color_backgroundFilter<text>Background color of the site
color_bookedFilter<text>Color of booked dates
color_closedFilter<text>Color of closed dates
color_errorFilter<text>Error color of the site
color_headerFilter<text>Header color of the site
color_infoFilter<text>Info color of the site
color_primaryFilter<text>Primary color of the site
color_textFilter<text>Text color of the site
color_unavailableFilter<text>Color of unavailable dates
color_warningFilter<text>Warning color of the site
coverFilter<text | null>URL of the cover image
currencyFilter<Currency>Currency of the site
custom_domainFilter<text | null>Custom domain of the site
custom_htmlFilter<text>Custom HTML added to every page of the site
date_visibilityFilter<WidgetDateVisibility>Which dates the calendar shows: all, hide-closed to hide closed dates, hide-unavailable to hide unavailable dates, or the deprecated custom to show selected months
enable_shopping_cartFilter<boolean>Whether guests can book multiple units at once
failure_urlFilter<text>URL to redirect to when a payment fails. __BOOKING_PAGE__ shows the guest page
filtersFilter<text[]>Filters to show in the search bar
first_week_contains_dateFilter<1 | 4 | null>Day of January the first week of the year contains: 1, or 4 as in ISO 8601
fontFilter<text | null>Font of the site
ftsFilter<tsvector>iconFilter<text | null>URL of the icon image
initial_dateFilter<WidgetInitialDate>Initial date shown in the calendar
interval_wrap_styleFilter<ChannelIntervalWrapStyle>Style of the interval when wrapping weeks
logoFilter<text | null>URL of the logo image
logo_altFilter<text | null>URL of the logo image for dark backgrounds
logo_sizeFilter<integer | null>Size of the logo in pixels, or null for automatic
nameFilter<MultiLanguageString>Localized name of the site
password_hashFilter<text | null>Hash of the password required to access the site
pricing_versionFilter<SitePricingVersion>Version of Bookingmood's pricing that applies to the site: V1 sites are paid, older V0 sites are free
rate_locationFilter<ChannelRateLocation>Where rates are shown in the calendar: inline or tooltip
rate_visibilityFilter<ChannelRateVisibility>Which rates the calendar shows: all, available or none
redirect_urlFilter<text | null>URL to redirect to after submitting a booking
related_productsFilter<SiteRelatedProducts | null>Settings of the related units section on unit pages
show_booked_asFilter<ShowBookedAs>How to show booked dates
show_brandingFilter<boolean>Whether to show the Bookingmood branding
show_closed_asFilter<ShowClosedAs>How to show closed dates
show_complex_pricesFilter<boolean>Whether guests can inspect seasonal prices in the calendar
show_legendFilter<boolean>Whether to show a legend in the calendar
show_pending_asFilter<CalendarEventStatus>How to interpret pending events
show_pricingFilter<boolean>Whether to show the pricing section on unit pages
show_searchbarFilter<boolean>Whether to show the search bar
show_totalsFilter<boolean>Whether to show totals in the calendar
show_unavailable_resultsFilter<boolean>Whether search results also list units that don't match the search
subdomainFilter<text>Subdomain of the site
typeFilter<SiteType>Type of the site: single-unit-site or multi-unit-site
week_starts_onFilter<Day | null>First day of the week: 0 for Sunday or 1 for Monday
Responses
200A list of sites with the selected columns
206Partial Content
400The request is malformed, for example an unknown column or an invalid filter.
401The API key is missing or invalid.
code, message, details and hint. See the introduction for more on errors.GET /sitescurl -X GET "https://api.bookingmood.com/v1/sites?select=*&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-10-30T23:21:07.688Z",
"updated_at": "2026-10-30T23:21:07.688Z",
"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": "",
"custom_html": "",
"date_visibility": "all",
"enable_shopping_cart": false,
"failure_url": "__BOOKING_PAGE__",
"filters": [
""
],
"first_week_contains_date": 0,
"font": "",
"icon": "",
"initial_date": "today",
"interval_wrap_style": "square",
"logo": "",
"logo_alt": "",
"logo_size": 0,
"name": {},
"password_hash": "",
"pricing_version": "V0",
"rate_location": "inline",
"rate_visibility": "available",
"redirect_url": "https://example.com",
"related_products": {
"count": 3,
"show_address": true,
"show_capacity": true,
"show_price_range": true,
"show_rating": true
},
"show_booked_as": "unavailable",
"show_branding": true,
"show_closed_as": "closed",
"show_complex_prices": true,
"show_legend": true,
"show_pending_as": "TENTATIVE",
"show_pricing": true,
"show_searchbar": true,
"show_totals": true,
"show_unavailable_results": true,
"subdomain": "",
"type": "multi-unit-site",
"week_starts_on": 0
}
]Update sites
Filters
Without filters, this request updates all sites you have access to. Always filter on at least one column, e.g. id=eq.{id}.
idFilter<uuid>Unique identifier
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
autocomplete_date_selectionFilter<boolean>Whether to autocomplete the date selection when only one date is available
color_backgroundFilter<text>Background color of the site
color_bookedFilter<text>Color of booked dates
color_closedFilter<text>Color of closed dates
color_errorFilter<text>Error color of the site
color_headerFilter<text>Header color of the site
color_infoFilter<text>Info color of the site
color_primaryFilter<text>Primary color of the site
color_textFilter<text>Text color of the site
color_unavailableFilter<text>Color of unavailable dates
color_warningFilter<text>Warning color of the site
coverFilter<text | null>URL of the cover image
currencyFilter<Currency>Currency of the site
custom_domainFilter<text | null>Custom domain of the site
custom_htmlFilter<text>Custom HTML added to every page of the site
date_visibilityFilter<WidgetDateVisibility>Which dates the calendar shows: all, hide-closed to hide closed dates, hide-unavailable to hide unavailable dates, or the deprecated custom to show selected months
enable_shopping_cartFilter<boolean>Whether guests can book multiple units at once
failure_urlFilter<text>URL to redirect to when a payment fails. __BOOKING_PAGE__ shows the guest page
filtersFilter<text[]>Filters to show in the search bar
first_week_contains_dateFilter<1 | 4 | null>Day of January the first week of the year contains: 1, or 4 as in ISO 8601
fontFilter<text | null>Font of the site
ftsFilter<tsvector>iconFilter<text | null>URL of the icon image
initial_dateFilter<WidgetInitialDate>Initial date shown in the calendar
interval_wrap_styleFilter<ChannelIntervalWrapStyle>Style of the interval when wrapping weeks
logoFilter<text | null>URL of the logo image
logo_altFilter<text | null>URL of the logo image for dark backgrounds
logo_sizeFilter<integer | null>Size of the logo in pixels, or null for automatic
nameFilter<MultiLanguageString>Localized name of the site
password_hashFilter<text | null>Hash of the password required to access the site
pricing_versionFilter<SitePricingVersion>Version of Bookingmood's pricing that applies to the site: V1 sites are paid, older V0 sites are free
rate_locationFilter<ChannelRateLocation>Where rates are shown in the calendar: inline or tooltip
rate_visibilityFilter<ChannelRateVisibility>Which rates the calendar shows: all, available or none
redirect_urlFilter<text | null>URL to redirect to after submitting a booking
related_productsFilter<SiteRelatedProducts | null>Settings of the related units section on unit pages
show_booked_asFilter<ShowBookedAs>How to show booked dates
show_brandingFilter<boolean>Whether to show the Bookingmood branding
show_closed_asFilter<ShowClosedAs>How to show closed dates
show_complex_pricesFilter<boolean>Whether guests can inspect seasonal prices in the calendar
show_legendFilter<boolean>Whether to show a legend in the calendar
show_pending_asFilter<CalendarEventStatus>How to interpret pending events
show_pricingFilter<boolean>Whether to show the pricing section on unit pages
show_searchbarFilter<boolean>Whether to show the search bar
show_totalsFilter<boolean>Whether to show totals in the calendar
show_unavailable_resultsFilter<boolean>Whether search results also list units that don't match the search
subdomainFilter<text>Subdomain of the site
typeFilter<SiteType>Type of the site: single-unit-site or multi-unit-site
week_starts_onFilter<Day | null>First day of the week: 0 for Sunday or 1 for Monday
Body
Partial<Site>Read-only attributes are set by the database and can't be written.
Responses
200The updated sites with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.
400The request is malformed, for example an unknown column, an invalid filter or an invalid body.
401The API key is missing or invalid.
403The API key has no permission for this change, for example when writing rows of another organization.
409The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.
code, message, details and hint. See the introduction for more on errors.PATCH /sitescurl -X PATCH "https://api.bookingmood.com/v1/sites?id=eq.00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"autocomplete_date_selection": false
}'[
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-10-30T23:21:07.688Z",
"updated_at": "2026-10-30T23:21:07.688Z",
"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": "",
"custom_html": "",
"date_visibility": "all",
"enable_shopping_cart": false,
"failure_url": "__BOOKING_PAGE__",
"filters": [
""
],
"first_week_contains_date": 0,
"font": "",
"icon": "",
"initial_date": "today",
"interval_wrap_style": "square",
"logo": "",
"logo_alt": "",
"logo_size": 0,
"name": {},
"password_hash": "",
"pricing_version": "V0",
"rate_location": "inline",
"rate_visibility": "available",
"redirect_url": "https://example.com",
"related_products": {
"count": 3,
"show_address": true,
"show_capacity": true,
"show_price_range": true,
"show_rating": true
},
"show_booked_as": "unavailable",
"show_branding": true,
"show_closed_as": "closed",
"show_complex_prices": true,
"show_legend": true,
"show_pending_as": "TENTATIVE",
"show_pricing": true,
"show_searchbar": true,
"show_totals": true,
"show_unavailable_results": true,
"subdomain": "",
"type": "multi-unit-site",
"week_starts_on": 0
}
]