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โ
| Field | Type | Description |
|---|---|---|
name | string | Business name |
slug | string | Widget 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. |
email | string | Contact email |
phone | string | Contact phone |
phone_country_code | string | Phone country code |
website | string|null | Business website |
abn | string|null | Business number (ABN, EIN, etc.) |
Localization Objectโ
| Field | Type | Description |
|---|---|---|
timezone | string | IANA timezone (e.g., "Australia/Sydney") |
currency | string | ISO 4217 currency code |
date_format | string | Date display format |
country | string | ISO 3166-1 alpha-2 country code |
terminology | object | The 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โ
| Field | Type | Description |
|---|---|---|
rentals_enabled | boolean | Rental products enabled |
experiences_enabled | boolean | Experiences enabled |
pos_enabled | boolean | Point of sale enabled |
waivers_enabled | boolean | Waivers and forms enabled |
surveys_enabled | boolean | Surveys enabled |
inventory_tracking | boolean | Inventory tracking enabled |
variations_enabled | boolean | Product variations enabled |
bundles_enabled | boolean | Product bundles enabled |
payment_methods | object | Per-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 id | Description |
|---|---|
credit_card | Credit / debit card |
stripe_terminal | Tap to Pay (terminal) |
payment_link | Payment link |
voucher | Voucher / gift card |
cash | Cash |
bank_transfer | Bank transfer, including manual transfer after online booking when the shop has enabled it |
other | Other |
Each value is an object:
| Field | Type | Description |
|---|---|---|
pos | boolean | Method is offered when taking payment in person (POS / mobile). |
online | boolean | Method is offered in the online (widget) checkout. |
discount | number|null | In-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:
| Field | Type | Description |
|---|---|---|
require_participants.rentals | boolean | Shop-wide default: collect each participant's details at checkout for rental products. Products with a null require_participants_override follow this. |
require_participants.experiences | boolean | Shop-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.
| Field | Type | Description |
|---|---|---|
value | integer|null | Notice length, in unit. |
unit | string|null | Minutes, Hours or Days. |
same_day_cutoff_time | string|null | Same-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.
| Field | Type | Description |
|---|---|---|
customer_start_times | string | Which pickup times customers can book online: every_15_minutes, every_half_hour, on_the_hour or set_start_times. |
staff_start_times_match | boolean | true when bookings staff make (POS, Quick Book, the phone app) keep to the customer start times. |
staff_start_times | array of strings or null | The 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.
| Field | Type | Description |
|---|---|---|
charge_by_calendar_days | boolean | false (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_closing | boolean | true 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:
| Field | Type | Description |
|---|---|---|
rental_duration_mode | string | free (customer picks any return time) or defined (customer picks from a fixed list). |
defined_rental_durations | array | When 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}/....
| Field | Type | Description |
|---|---|---|
slug | string | Public URL slug for the widget. Lowercase letters, digits, hyphens only; 3โ50 chars. Old slugs 308-redirect to the current one. |
trust_badge_secured_enabled | boolean | Show the "Secured" trust badge on the checkout step. |
trust_badge_safety_enabled | boolean | Show the "Health & Safety" trust badge on the widget. |
trust_badge_safety_text | string | Supplier-authored safety statement shown when the safety badge is enabled. Max 2000 chars. |
listing_default_mode | string | Default experiences-listing mode. One of "activities", "by-date", "choose". "choose" shows a customer-facing toggle between the two modes. |
timezone_display_style | string | How timezones are labelled next to times. "short" ("PDT") or "long" ("Los Angeles time"). |
logo_size | string | Header logo size in the booking widget. One of "small", "medium", "large", "extra_large". Defaults to "medium". |
logo_max_height | integer | The 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_minutes | integer | How 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_cart | boolean | Whether 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. |
look | object | How 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. |
tagline | string|null | Supplier tagline used as the fallback meta description on widget listing pages. Max 200 chars; truncated to 160 for the meta tag itself. |
social_share_image | string|null | Relative 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_notice | object | Same-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โ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks settings:read scope |
Example Requestโ
curl -X GET "https://app.equipdash.com/api/v1/settings" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."