F45 Ossington
#603 · rble · ossington · Canada · 11 plans
Trial
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
7 shown on this tab · 7 across all tabs
Not in the memberships grid
3 of 11 plansThe memberships section means every tab together, so this list does not change when you switch tabs. The other 7 plans are assigned to a tab and a column.
Program not surfaced here · 3Hyrox, Scans and similar are booked through their own flow
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
| Field | Value | Test | Description |
|---|---|---|---|
| studio_id | 603 | — | Primary key |
| name | "F45 Ossington" | — | Studio name shown in the page copy |
| code | "rble" | — | Short studio code |
| slug | "ossington" | — | Microsite path segment |
| status | 1ok | — | API status: 1 = live; plans are only synced for 1 |
| country | "Canada" | — | Country name |
| state | "ON" | — | State or region code |
| timezone | "America/Toronto" | — | Studio timezone |
| booking_provider | "mindbody" | — | mindbody or glofox |
| deleted_at | null | — | Set when the API stops listing this studio |
| synced_at | "2026-08-27 09:38:41" | — | Last successful sync |
Display gates
| Field | Value | Test | Description |
|---|---|---|---|
| membership_option_display | "1"ok | Turns this whole page off for the studio | |
| membership_option_type | "f45_widget" | — | Which membership widget is used |
| membership_option_url | null | — | External membership URL, when set |
| membership_join_url | null | — | Deep 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
| Field | Value | Test | Description |
|---|---|---|---|
| trial_plan_uid | "2788610"ok | Points at plan.id — the authoritative way a plan becomes the trial | |
| trial_plan_id | "500118" | Points at plan.code — the fallback match | |
| trial_form_type | "trial_mindbody" | — | trial_mindbody / trial_glofox are purchasable in-app; anything else sends the member elsewhere |
| trial_copy | "14 Day Trial" | — | Marketing line. Only on /v1/studio/{id}, not the bulk list |
| trial_plan_description | "10-Day Trial at F45 Training\n\nCurious what F45 is all about? Our 10-Day Trial is the perfect way to experience the energy, coaching, and results that make F45 different.\nOver two weeks, you’ll take part in coach-led, 45-minute functional workouts that combine strength training, cardio, and team-style motivation. Every class is designed to be fast-paced, effective, and scalable, so whether you’re brand new to training or already experienced, you’ll feel challenged and supported.\n\nWhat you can expect:\n🔥 Full-body workouts that burn calories and build strength\n🧠 Expert coaching to guide technique, modify movements, and help you get the most out of every class\n👥 Team atmosphere that keeps you motivated and accountable\n⏱ Efficient sessions—get a complete workout in just 45 minutes\n📊 A glimpse into how we track progress and help you improve over time\nThis trial is about more than just workouts—it’s about discovering how F45 can fit into your lifestyle and routine.\n\nCome train, sweat, and feel the difference for yourself.\nNo pressure. Just results.\nYour first step starts here 💪" | — | Longer trial description |
| trial_form_btn_label | "Intro Offer" | — | CTA label on the trial form |
Currency
| Field | Value | Test | Description |
|---|---|---|---|
| currency | null | — | ISO code, when the API supplies one |
| currency_symbol | nullwarn | — | Null on most studios, so prices fall back to the ISO code and then to $ |
Derived — not API fields
| Field | Value | Test | Description |
|---|---|---|---|
| columns_filled | "3 of 3"ok | — | Membership columns with at least one product |
| unlimited_column | 3 | — | Plans in the Unlimited column |
| limited_column | 1 | — | Plans in the Limited column |
| pack_column | 3 | — | Plans in Class Packs — includes drop-ins |
| tabs_shown | "Memberships" | — | Tab bar only renders when there are 2 or more |
| offpage_plans | 3warn | — | Program not surfaced here (Hyrox, Scans...) |
| trial_section_cards | 1ok | — | Cards in the Trial section |
| resolved_trial | "10 Day Trial (Local Residents Only)"ok | — | Trial config points at a plan the studio still sells |
| popular_plan | "F45 Unlimited | 3 Month | Weekly Autopay ($69)"bad | — | F45 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 |