Country → regionStudio → region

F45 Dubai Marina

#323 · m9gl · dubaimarina · United Arab Emirates · 3 plans

Pricing region: not assigned— From Sheet cannot place these plans until a region is set.all regions

Trial

This studio has no trial plan configured.

Membership options

Unlimited Memberships

  • Unlimited Classes
  • Recommended for 3x or more per week
Select your plan

Limited Memberships

  • Limited Classes
  • Recommended for less than 3x per week
Select your plan

Class Packs

  • Flexibility to visit with varying frequency
  • No lock-in contract
Select your plan

No available products.

3 shown on this tab · 3 across all tabs

How this studio maps to the design

Values are shown exactly as stored. Flags in the Test column can be flipped to re-render the page with a different config — nothing is written to the database.

Studio

FieldValueTestDescription
studio_id323Primary key
name"F45 Dubai Marina"Studio name shown in the page copy
code"m9gl"Short studio code
slug"dubaimarina"Microsite path segment
status2warnAPI status: 1 = live; plans are only synced for 1
country"United Arab Emirates"Country name
state"Dubai"State or region code
timezone"Asia/Dubai"Studio timezone
booking_provider"mindbody"mindbody or glofox
deleted_atnullSet when the API stops listing this studio
synced_at"2026-08-27 09:38:35"Last successful sync

Display gates

FieldValueTestDescription
membership_option_display"1"okTurns this whole page off for the studio
membership_option_type"f45_widget"Which membership widget is used
membership_option_urlnullExternal membership URL, when set
membership_join_urlnullDeep link into the booking provider
hide_on_website"0"Hidden from the public site
is_test_studio"0"Internal test site — skipped by sync
is_recovery_tab_enabled"0"Config flag for the Recovery tab. NOT what the page uses: the tab appears when the studio actually sells Recovery products, which is why the two can disagree

Trial config

FieldValueTestDescription
trial_plan_uidnullbadPoints at plan.id — the authoritative way a plan becomes the trial
trial_plan_idnullPoints at plan.code — the fallback match
trial_form_type"lead_capture"trial_mindbody / trial_glofox are purchasable in-app; anything else sends the member elsewhere
trial_copy"1 Free Trial session"Marketing line. Only on /v1/studio/{id}, not the bulk list
trial_plan_descriptionnullLonger trial description
trial_form_btn_label"Register Interest"CTA label on the trial form

Currency

FieldValueTestDescription
currencynullISO code, when the API supplies one
currency_symbolnullwarnNull on most studios, so prices fall back to the ISO code and then to $

Derived — not API fields

FieldValueTestDescription
columns_filled"2 of 3"warnMembership columns with at least one product
unlimited_column1Plans in the Unlimited column
limited_column2Plans in the Limited column
pack_column0badPlans in Class Packs — includes drop-ins
tabs_shown"Memberships"Tab bar only renders when there are 2 or more
offpage_plans0okProgram not surfaced here (Hyrox, Scans...)
trial_section_cards0warnCards in the Trial section
resolved_trialnullbadNo trial configured for this studio
popular_plan"F45 Unlimited | Annual | Monthly Autopay ($1250)"badF45 exposes no featured field, so the pill is derived: cheapest Unlimited by monthly-equivalent price — which currently means raw price, since the widget produces no cadence to normalise by