Skip to main content

Settings Tools

Access business configuration including operating hours and location information.

Required scope: settings:read

Read tools use settings:read; write tools use settings:write and the caller must hold the relevant settings permission.

Tools Overviewโ€‹

ToolDescriptionRead-only?
list_settings_areasList the settings areas the caller can accessYes
get_settingsRead current values and writable fields for one areaYes
update_settingsReview or save approved changes to one areaNo
get_business_hoursGet the business operating hoursYes
get_locationsGet the business locationsYes
get_supplier_widget_settingsRead the supplier's booking-widget configurationYes
update_supplier_widget_settingsUpdate any subset of widget settings (trust badges, listing mode, timezone style, logo size, URL slug, tagline, social share image, suggestions in the cart, the booking page look, the home page sections and renamed page words)No
get_my_accountThe signed-in person's name, login email and whether two-factor authentication (2FA) is onYes
get_custom_domainsThe shop's own addresses, whether each is live, and the records to addYes
connect_custom_domainPut the booking page or website on the shop's own addressNo
remove_custom_domainRemove one of the shop's own addressesNo
get_embed_codeCodes for the whole booking page, a rental or activity list, one item, or one category on the shop's websiteYes

Minimum rental orderโ€‹

To keep bookings your staff make on the customer start times, set both fields in the rentals area. rental_customer_start_time_mode takes every_15_minutes, every_half_hour or on_the_hour; a list of set times is chosen on Settings > Rentals.

{
"area": "rentals",
"values": { "rental_customer_start_time_mode": "on_the_hour", "rental_staff_start_times_match": true }
}

Read get_settings with area: "rentals", then use update_settings to change minimum_rental_subtotal in the shop's currency:

{
"area": "rentals",
"values": {"minimum_rental_subtotal": 100},
"user_confirmed": true
}

The amount applies to pickup and delivery bookings that contain rentals. It counts rental items before tax and delivery; extras, activities and store items do not count. Included tax is removed before the comparison. For a mixed flat-price bundle, only the rental share of its sold price counts. Set 0 to remove the minimum.

The write requires settings:write and the Rentals settings permission. Booking creation checks current server prices and rejects a rental order below the saved amount, including bookings created through the API and Dash. Existing bookings remain editable.

get_business_hoursโ€‹

Get the business operating hours for each day of the week, including open/close times and whether the business is open on each day.

Parametersโ€‹

None.


get_locationsโ€‹

Get the business locations, including address details and contact information for each location.

Parametersโ€‹

None.


get_supplier_widget_settingsโ€‹

Read every widget-configuration field for the current supplier in one call. Covers trust badges, default listing mode, timezone display style, logo size, URL slug, tagline, social share image, the booking page look, the home page sections in order and the page words the shop renamed.

Parametersโ€‹

None.

Returnsโ€‹

{
"success": true,
"widget_settings": {
"slug": "beach-rentals-co",
"widget_url": "https://app.equipdash.com/widget/beach-rentals-co",
"trust_badge_secured_enabled": true,
"trust_badge_safety_enabled": false,
"trust_badge_safety_text": "",
"listing_default_mode": "choose",
"timezone_display_style": "short",
"logo_size": "medium",
"tagline": "Ocean gear for every adventure.",
"social_share_image": "supplier-uploads/1/share-card.png",
"primary_color": "#0d3b66",
"text_color": "#303233",
"font": "standard",
"button_shape": "rounded",
"card_style": "shadow",
"background_color": "#ffffff",
"listing_layout": "grid",
"page_layouts": { "rentals": "list" },
"home_sections": [
{ "id": "tiles", "type": "tiles", "name": "Ways to book", "hidden": false, "show_from": null, "show_until": null },
{ "id": "sk3n8xq2a", "type": "welcome", "name": "Welcome", "hidden": false, "show_from": null, "show_until": null,
"words": { "en": { "heading": "Welcome in", "text": "Open every day." } } },
{ "id": "s7hd02lmq", "type": "collection", "name": "Collection", "hidden": false, "show_from": "2026-12-01", "show_until": "2026-12-31",
"collection_id": 4, "collection_name": "Holiday gifts" },
{ "id": "categories", "type": "categories", "name": "Categories", "hidden": false, "show_from": null, "show_until": null }
],
"renamed_words": { "en": { "Add to booking": "Reserve" } }
}
}

font is standard when the shop uses the booking page's own font. A featured section also carries item_kind, item_id and item_name.


update_supplier_widget_settingsโ€‹

Update any subset of widget settings. All fields are optional โ€” untouched fields keep their current value. Changing slug automatically records the old slug in history so existing /widget/{old-slug}/... URLs 308-redirect to the new one.

Required scope: settings:write

Parametersโ€‹

NameTypeRequiredDescription
slugstringNoNew URL slug. Lowercase letters, digits, hyphens; 3โ€“50 chars. Rejected if it collides with a reserved word or another supplier's slug.
trust_badge_secured_enabledbooleanNoShow the "Secured" trust badge on the checkout.
trust_badge_safety_enabledbooleanNoShow the "Health & Safety" trust badge + disclosure.
trust_badge_safety_textstringNoSupplier-authored safety statement (max 2000 chars).
listing_default_modestringNo"activities", "by-date", or "choose".
timezone_display_stylestringNo"short" or "long".
logo_sizestringNoHeader logo size: "small", "medium", "large", or "extra_large". Square logos usually look best a size up.
taglinestringNoMax 200 chars.
social_share_imagestringNoRelative storage path only (no external URLs).
suggest_in_cartbooleanNoSuggest a few items in the cart, on the confirmation page and in the confirmation email, worked out from what customers buy together and what is popular. false turns suggestions off for the whole shop.
leave_out_of_suggestionsarrayNoItems never to suggest, like [{"item_type": "rental", "item_id": 12}]. item_type is rental, experience or store.
put_back_in_suggestionsarrayNoItems left out earlier that may be suggested again, same shape.
primary_colorstringNoButtons and brand color, as a hex code like "#0d3b66".
text_colorstringNoText color, as a hex code.
fontstringNo"standard" (the booking page's own font) or one of inter, poppins, montserrat, dmsans, worksans, raleway, spacegrotesk, archivo, playfair, lora, oswald, bebas.
button_shapestringNo"rounded", "pill" or "square".
card_stylestringNo"shadow", "outline" or "flat".
background_colorstringNoThe page color behind the cards, as a hex code. "#ffffff" is the standard white page.
listing_layoutstringNoHow items are laid out on every listing page: grid, list, tile, editorial, showcase, bento, mosaic or pricelist. Changing it clears the layouts set on single pages in the booking page editor (page_layouts in the read).
home_sectionsarrayNoChanges to the home page, applied in order. See Home page sections.
rename_wordsarrayNoFixed page words to rename, like [{"original": "Add to booking", "renamed": "Reserve", "language": "en"}]. An empty renamed puts the original back. language defaults to en. Only words the booking page prints on its own can be renamed; item names and the shop's own words are changed where they are set. New words can't contain quotes, backslashes, angle brackets, braces or backticks.
user_confirmedbooleanYesMust be true to write. First call with false returns a preview of the planned changes.

Returnsโ€‹

{
"success": true,
"message": "Widget settings updated.",
"updated_fields": ["slug", "tagline"],
"widget_settings": { "โ€ฆ": "full updated bundle" }
}

Every value is checked with the same rules as Settings > Booking widget. If any value, home page change or rename is not valid, the tool returns an error that names each one by its position (like home_sections[1]), and nothing in the call is saved.

Home page sectionsโ€‹

Each change is an object with an action. Section ids come from get_supplier_widget_settings.

ActionFieldsWhat it does
move_up, move_downsection_idMoves the section one place.
hide, showsection_idHides the section from customers, or shows it again.
addtype, optional section_id, words, language, show_from, show_untilAdds a section at the top, or after section_id. type is welcome, notice, cover, collection (needs collection_id) or featured (needs item_kind of rental, experience, store or bundle, and item_id). The collection or item must belong to the shop. A cover's photo is picked in the booking page editor.
removesection_idRemoves a section the shop added. tiles and categories can only be hidden.
set_wordssection_id, words, optional languageSets heading (up to 80 characters) and text (up to 300) in one language. A notice has text only.
set_datessection_id, show_from and/or show_untilShows the section only between these days (YYYY-MM-DD, in the shop's time zone). An empty date clears it.
{
"home_sections": [
{ "action": "add", "type": "welcome", "section_id": "tiles", "words": { "heading": "Welcome in", "text": "Open every day." } },
{ "action": "hide", "section_id": "categories" }
],
"user_confirmed": true
}

The reply lists each change with done, and an add gives the new section_id:

{
"success": true,
"home_sections": [
{ "action": "add", "section_id": "sk3n8xq2a", "after": "tiles", "done": true },
{ "action": "hide", "section_id": "categories", "done": true }
]
}

rename_words replies the same way, one entry per word. A change that could not be made has done: false and an error, and the message names it.


create_policyโ€‹

Create a new cancellation/reschedule policy for the supplier.

Required scope: settings:write

Parametersโ€‹

NameTypeRequiredDescription
namestringYesPolicy name
descriptionstringNoCustomer-facing description
time_before_bookingintegerNoHours before booking when this policy applies (default 24)
allow_reschedulebooleanNoCustomer can reschedule (default true)
reschedule_cutoff_hoursintegerNoHours before the booking start a customer may still self-reschedule. Omit / null = any time before start. Staff are never blocked.
allow_cancellationsbooleanNoCustomer can cancel (default true)
refund_percentageintegerNo0-100 (default 100)

Returnsโ€‹

{
"success": true,
"message": "Policy '48hr cancellation' created.",
"policy": { "id": 11, "name": "48hr cancellation" }
}

create_email_templateโ€‹

Customise the subject/body of an existing email template type for the supplier. Email templates are seeded per type โ€” this tool overwrites the editable copy.

Required scope: settings:write

Parametersโ€‹

NameTypeRequiredDescription
template_typestringYesEmailTemplate enum value, e.g. booking_confirmation, payment_receipt
subjectstringNoEmail subject line
intro_textstringNoOpening 1-2 sentences (structured layouts only)
outro_textstringNoSign-off / call to action (structured layouts only)
bodystringNoFull email body (HTML or plain text)

Returnsโ€‹

{
"success": true,
"message": "Email template 'Booking Confirmation' updated.",
"template": { "id": 33, "type": "booking_confirmation" }
}

get_my_accountโ€‹

The signed-in person's own name and the email they sign in with, and whether two-factor authentication (2FA) is on. Read only: no tool turns 2FA on or off or shows backup codes. The person does that themselves in Settings > Account details. An API key has no person behind it, so the tool returns an error for a key-only call.

Parametersโ€‹

None.

Returnsโ€‹

{
"success": true,
"account": { "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@example.test" },
"two_step_sign_in": {
"on": true,
"signs_in_with_google": false,
"required_by_team": false,
"backup_codes_left": 8
},
"settings_page": "settings.accountDetails"
}

get_custom_domainsโ€‹

The shop's own addresses (like book.yourshop.com): what each opens, whether it is live, and if not, the two DNS records with the short names to type and the steps at the company that holds the domain. Scope settings:read.

Parametersโ€‹

None.

Returnsโ€‹

{ "success": true, "addresses": [ ... ] } - each address is the same object the Custom Domains REST API returns. Only call an address live when status is live.


connect_custom_domainโ€‹

Put the booking page (no website needed) or the website on the shop's own address. Scope settings:write. Pro plan.

Parametersโ€‹

NameTypeRequiredDescription
domainstringYese.g. book.yourshop.com. Not the bare yourshop.com.
opensstringYesbooking or website

Returnsโ€‹

{ "success": true, "address": { ... } }, or an error sentence to read to the owner.


remove_custom_domainโ€‹

Remove one of the shop's own addresses. It stops opening the shop's pages at once. Scope settings:write. Dash asks the owner before running it.

Parametersโ€‹

NameTypeRequiredDescription
idintegerYesThe address id from get_custom_domains

get_embed_codeโ€‹

The direct link and the code that put something the shop sells on its own website.

Parametersโ€‹

NameTypeRequiredDescription
kindstringYesrental, experience, store_product, bundle, program, gift_card, service, collection, rental_category, experience_category, booking_page, rentals_list or experiences_list
item_idintegerNoThe item or category. Give this or item_name (not needed for booking_page, rentals_list, experiences_list, gift_card or service)
item_namestringNoThe item or category name, matched within this shop

booking_page returns one inline booking widget with rentals and activities together when both are enabled. rentals_list and experiences_list return a list for one booking type. These kinds need no item. The result includes the complete embed code, a direct link, a floating button code, and shared Shopify and WordPress installation steps. Paste the entire code, including its script.

rental_category and experience_category return the listing of one category, so new items added to it show up on the website by themselves. A category the shop does not have returns an error that names the categories it has.


Booking payments by bank transferโ€‹

Call get_settings with area: "payments" to read the current rules. To offer bank transfer checkout, review these values with the owner, then call update_settings with user_confirmed: true:

{
"area": "payments",
"values": {
"bank_transfer_online": true,
"bank_transfer_instructions": "Example Bank, account 1234567. Use your booking number as the reference.",
"credit_card_online": false,
"pay_at_pickup_online": false,
"checkout_payment_requirement": "deposit",
"checkout_deposit_type": "percentage",
"checkout_deposit_value": 25,
"balance_collection_method": "manual",
"balance_collection_days_before": 3
},
"user_confirmed": true
}

Use instructions supplied by the owner, up to 2,000 characters. Bank transfer checkout replaces card payment and pay at pickup; it requires instructions and manual balance collection. It is off by default. Bookings inside the balance deadline owe the full remaining amount immediately. Monthly memberships still require a card.

The booking remains unpaid until a received payment is recorded. Checkout, confirmation and email show the transfer amount, remaining balance, deadline and the instructions approved for that booking. A pending transfer request is not received money. Record the actual bank transfer through the existing booking payment operation.

Booking requests still follow their existing approval and card rules. Enabling bank transfer does not remove those rules.