Skip to main content

Get Settings

Retrieve supplier settings including business information, localization, and enabled features.

Endpointโ€‹

GET /v1/settings

Authenticationโ€‹

Requires an API key with the settings:read scope.

Responseโ€‹

Success (200 OK)โ€‹

{
"data": {
"business": {
"name": "Beach Rentals Co",
"slug": "beach-rentals-co",
"email": "hello@beachrentals.com",
"phone": "0412345678",
"phone_country_code": "+61",
"website": "https://beachrentals.com",
"abn": "12345678901"
},
"localization": {
"timezone": "Australia/Sydney",
"currency": "AUD",
"date_format": "DD-MM-YYYY",
"country": "AU",
"terminology": {
"words": {
"rental": { "choice": "hire", "shown_as": "Hire" },
"experience": { "choice": "tour", "shown_as": "Tour" },
"pickup": { "choice": "start", "shown_as": "Start time" },
"return": { "choice": "return", "shown_as": "Return time" },
"security_deposit": { "choice": "security_deposit", "shown_as": "Security deposit" },
"customer": { "choice": "customer", "shown_as": "Customer" },
"participant": { "choice": "other", "word": "Diver", "plural": "Divers", "shown_as": "Diver" }
},
"tokens": { "rental": "hire", "rentals": "hires", "experiences": "tours", "pickup_time": "start time", "participants": "divers" }
}
},
"features": {
"rentals_enabled": true,
"experiences_enabled": true,
"pos_enabled": true,
"waivers_enabled": true,
"surveys_enabled": true,
"inventory_tracking": true,
"variations_enabled": true,
"bundles_enabled": true,
"payment_methods": {
"credit_card": { "pos": true, "online": true, "discount": null },
"stripe_terminal": { "pos": true, "online": false, "discount": null },
"payment_link": { "pos": true, "online": false, "discount": null },
"voucher": { "pos": true, "online": true, "discount": null },
"cash": { "pos": true, "online": false, "discount": 3 },
"bank_transfer": { "pos": true, "online": false, "discount": null },
"other": { "pos": true, "online": false, "discount": null }
}
},
"booking": {
"require_customer_details": true,
"allow_booking_notes": true,
"default_booking_status": "confirmed",
"booking_prefix": "BK"
},
"widget_settings": {
"slug": "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",
"logo_max_height": 56,
"cart_hold_minutes": 10,
"suggest_in_cart": true,
"look": {
"font": "poppins",
"button_shape": "pill",
"card_style": "outline",
"background_color": "#ffffff"
},
"tagline": "Ocean gear for every adventure.",
"social_share_image": "supplier-uploads/1/share-card.png",
"short_notice": {
"enabled": true,
"message": "Booking for today? Give us a call and we'll do our best to fit you in.",
"show_phone": true
}
}
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-01-15T12:00:00+00:00"
}
}

Response Fieldsโ€‹

Business Objectโ€‹

FieldTypeDescription
namestringBusiness name
slugstringWidget URL slug โ€” the public identifier used in https://app.equipdash.com/widget/{slug}/... URLs. Lowercase letters, numbers and dashes only; 3โ€“64 chars. Updatable via PATCH /v1/settings. Old slugs 308-redirect to the current one.
emailstringContact email
phonestringContact phone
phone_country_codestringPhone country code
websitestring|nullBusiness website
abnstring|nullBusiness number (ABN, EIN, etc.)

Localization Objectโ€‹

FieldTypeDescription
timezonestringIANA timezone (e.g., "Australia/Sydney")
currencystringISO 4217 currency code
date_formatstringDate display format
countrystringISO 3166-1 alpha-2 country code
terminologyobjectThe words this shop uses for rental, experience, pickup time, return time, security deposit, customer and participant. words holds each pick, tokens every form of every word (the example is shortened). See Shop Words.

Features Objectโ€‹

FieldTypeDescription
rentals_enabledbooleanRental products enabled
experiences_enabledbooleanExperiences enabled
pos_enabledbooleanPoint of sale enabled
waivers_enabledbooleanWaivers and forms enabled
surveys_enabledbooleanSurveys enabled
inventory_trackingbooleanInventory tracking enabled
variations_enabledbooleanProduct variations enabled
bundles_enabledbooleanProduct bundles enabled
payment_methodsobjectPer-method configuration โ€” see Payment Methods below.

Payment Methodsโ€‹

features.payment_methods is a map keyed by method id. Each entry describes where the method is offered and whether it carries an in-person discount.

Method idDescription
credit_cardCredit / debit card
stripe_terminalTap to Pay (terminal)
payment_linkPayment link
voucherVoucher / gift card
cashCash
bank_transferBank transfer, including manual transfer after online booking when the shop has enabled it
otherOther

Each value is an object:

FieldTypeDescription
posbooleanMethod is offered when taking payment in person (POS / mobile).
onlinebooleanMethod is offered in the online (widget) checkout.
discountnumber|nullIn-person discount percentage for this method, or null when none is configured. Only the offline methods (cash, bank_transfer, other) can carry a discount. This is the percentage applied by PUT /v1/bookings/{id}/payment-method-discount โ€” a discount off the full price for paying in person, never a card surcharge.

Bank transfer online is off by default. It requires the owner's instructions and replaces card payment and pay at pickup. See Booking payments by bank transfer for the approved settings write. An online booking made this way remains unpaid until staff record the received transfer.

Booking Defaults โ€” Participant Detailsโ€‹

Under booking_defaults:

FieldTypeDescription
require_participants.rentalsbooleanShop-wide default: collect each participant's details at checkout for rental products. Products with a null require_participants_override follow this.
require_participants.experiencesbooleanShop-wide default for experiences. Experiences with a null participants_required_override follow this.

Booking Defaults - Booking Noticeโ€‹

Under booking_defaults.booking_notice, once for rentals and once for experiences. Items without a notice of their own follow these.

FieldTypeDescription
valueinteger|nullNotice length, in unit.
unitstring|nullMinutes, Hours or Days.
same_day_cutoff_timestring|nullSame-day cut-off in the shop's time zone, 24-hour "HH:MM" such as "08:30". Online bookings for that day close at this time; later days are not affected. A session that starts earlier closes at its start. Works alongside the notice length, and the stricter one wins.

Start Timesโ€‹

Under booking_defaults.

FieldTypeDescription
customer_start_timesstringWhich pickup times customers can book online: every_15_minutes, every_half_hour, on_the_hour or set_start_times.
staff_start_times_matchbooleantrue when bookings staff make (POS, Quick Book, the phone app) keep to the customer start times.
staff_start_timesarray of strings or nullThe 24-hour times a staff app should offer, such as ["09:00", "10:00"], before opening hours are applied. null means staff may start at any 15 minutes.

How a Rental Day Is Countedโ€‹

Under booking_defaults. A day-priced rental's total depends on both of these, so read them before quoting one yourself.

FieldTypeDescription
charge_by_calendar_daysbooleanfalse (default) counts elapsed time and rounds any part-day up, so 2:00 PM Tuesday to 3:00 PM Thursday is three days. true counts the pickup date to the return date, so the time of day never changes the price and the same window is two days. Applies to day and week prices only; hourly prices are unaffected either way.
day_rentals_end_at_closingbooleantrue means a "day" duration is due back by the shop's closing time that day rather than 24 hours after pickup. Only meaningful when rental_duration_mode is defined.

Booking Defaults โ€” Rental Durationsโ€‹

Under booking_defaults:

FieldTypeDescription
rental_duration_modestringfree (customer picks any return time) or defined (customer picks from a fixed list).
defined_rental_durationsarrayWhen mode is defined, the allowed durations: [{ "value": 2, "unit": "hour", "label": "..." }, ...]. Use these to render a duration picker and when creating bookings โ€” see Create booking. Empty when mode is free.

Widget Settings Objectโ€‹

Configuration that drives the public booking widget at https://app.equipdash.com/widget/{slug}/....

FieldTypeDescription
slugstringPublic URL slug for the widget. Lowercase letters, digits, hyphens only; 3โ€“50 chars. Old slugs 308-redirect to the current one.
trust_badge_secured_enabledbooleanShow the "Secured" trust badge on the checkout step.
trust_badge_safety_enabledbooleanShow the "Health & Safety" trust badge on the widget.
trust_badge_safety_textstringSupplier-authored safety statement shown when the safety badge is enabled. Max 2000 chars.
listing_default_modestringDefault experiences-listing mode. One of "activities", "by-date", "choose". "choose" shows a customer-facing toggle between the two modes.
timezone_display_stylestringHow timezones are labelled next to times. "short" ("PDT") or "long" ("Los Angeles time").
logo_sizestringHeader logo size in the booking widget. One of "small", "medium", "large", "extra_large". Defaults to "medium".
logo_max_heightintegerThe resolved header logo max-height in px for the chosen logo_size (40 / 56 / 72 / 96). Use this to mirror the widget header in a custom embed.
cart_hold_minutesintegerHow long a booking-page cart holds an experience's spots once a customer adds it, in minutes. 10 unless the shop changes it; 0 means spots are not held. Read-only here; the shop sets it in Settings > Booking widget > Advanced.
suggest_in_cartbooleanWhether the cart, the confirmation page and the confirmation email suggest a few items. true unless the shop turns it off. What to suggest is worked out from the shop's own bookings. Read-only here; the shop sets it in Settings > Booking widget, and update_supplier_widget_settings sets it over MCP.
lookobjectHow the booking widget looks, set by the shop in Settings > Booking widget > Your brand. Read-only. font (string|null): a font key such as "inter", "poppins" or "playfair" (the same list the website builder uses), null for the widget's standard font. button_shape: "rounded", "pill" or "square". card_style: "shadow", "outline" or "flat". background_color: the page background as #rrggbb, "#ffffff" unless the shop picks another; dark colors are allowed and the widget switches its text to light.
taglinestring|nullSupplier tagline used as the fallback meta description on widget listing pages. Max 200 chars; truncated to 160 for the meta tag itself.
social_share_imagestring|nullRelative storage path for the Open Graph share image (1200ร—630 ideal). External http(s):// URLs are rejected โ€” upload via the portal and store the returned relative path.
short_noticeobjectSame-day / short-notice "call us" prompt shown on the widget when a customer picks a time inside the supplier's minimum booking notice. enabled (bool) turns it on; message (string|null, max 300 โ€” raw source text, served translated to the widget language; null uses a localized default); show_phone (bool) renders a tap-to-call button using the business phone.

Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyInvalid API key
403insufficient_scopeAPI key lacks settings:read scope

Example Requestโ€‹

curl -X GET "https://app.equipdash.com/api/v1/settings" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."