Discover/Mindbodyonline API
live

Mindbodyonline APImindbodyonline.com ↗

Search fitness and wellness class times near any location, read studio schedules, check course availability, and fetch booking prices via the Mindbody API.

Endpoint health
verified 1h ago
get_course_availability
search_classes
get_class_schedule
get_booking_details
4/4 passing latest checkself-healing
Endpoints
4
Updated
2h ago

What is the Mindbodyonline API?

The Mindbody API exposes 4 endpoints that cover the full discovery-to-booking flow on Mindbody's Explore marketplace. Use search_classes to find upcoming class times near any city or address, then drill into a studio's daily schedule with get_class_schedule, check day-by-day availability across up to 90 days with get_course_availability, and retrieve per-class-time purchase options — prices, passes, and intro offers — via get_booking_details.

This call costs2 credits / call— charged only on success
Try it
Calendar day to search, ISO YYYY-MM-DD, interpreted in the resolved location's timezone. Omitted = today (local), from the current moment onward.
1-based results page.
Free-text relevance search term (class name, studio name, activity). Omitted = all classes.
Exact site category name as shown in class_times[*].category, e.g. 'Yoga' or 'Pilates'. Omitted = all categories.
Free-text place to search around, e.g. 'Austin, TX' or a street address. Resolved to coordinates and a timezone by the site; the resolution is echoed in resolved_location.
Rows per page, 1-100.
Search radius around the resolved location, 1-100 miles. The site treats the radius loosely, so a few results slightly beyond it can appear.
Restricts results to one of the site's top-level business types. Omitted = all types.
→ api.parse.bot/scraper/a4f3826c-786a-40eb-8907-bc1ce986f82d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/a4f3826c-786a-40eb-8907-bc1ce986f82d/search_classes?date=2026-10-09&category=Yoga&location=Austin%2C+TX&category_type=fitness' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace mindbodyonline-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Mindbody class search → course availability → booking details."""
from parse_apis.mindbodyonline_com_api import Mindbody, CategoryType, InputNotFound

client = Mindbody()

# Search for yoga classes near Austin, capped at 5 results.
try:
    for ct in client.class_times.search(location="Austin, TX", category_type=CategoryType.FITNESS, query="yoga", limit=5):
        print(ct.name, ct.start_time_local, ct.location.name, f"{ct.openings}/{ct.capacity} spots")
except InputNotFound:
    print("Location could not be resolved; try a different search term.")

# Drill into the first result's course to check upcoming availability.
ct = client.class_times.search(location="Austin, TX", query="yoga", limit=1).first()
if ct is not None:
    avail = ct.course.availability(days=14)
    print(f"{avail.course_name} at {avail.location.name} ({avail.timezone})")
    for day in avail.availability:
        print(f"  {day.date}: {day.class_count} class(es)")

    # Fetch booking/purchase options for that specific class time.
    booking = ct.booking_details()
    for po in booking.purchase_options:
        label = " [intro]" if po.is_intro_offer else ""
        print(f"  {po.name}: ${po.price} {po.currency_code}{label}")

    # Browse the studio's full schedule for the same day.
    for sibling in ct.location.schedule(date="2026-10-09", limit=3):
        print(sibling.name, sibling.instructor.name, sibling.duration_minutes, "min")

print("exercised: class_times.search / course.availability / booking_details / location.schedule")
All endpoints · 4 totalmissing one? ·

Searches upcoming class times near a free-text location (city, address or place name, resolved by the site's own geocoder) for one calendar day in that location's timezone. One result row is one scheduled class time with its course, instructor, studio location, openings and advertised purchase options. Omitting date searches the remainder of today (local time); a date in the past returns an empty list. query is the site's relevance search and matches course, studio and category text loosely (e.g. 'yoga' also surfaces Pilates classes); use category for an exact category match. Results are sorted by start time. Paginated with page and page_size (max 100); total_found is the site's total for the search and has_more says whether a further page exists. Round trips: one geocode plus one search. An unresolvable location yields a stale_input error.

Input
ParamTypeDescription
datestringCalendar day to search, ISO YYYY-MM-DD, interpreted in the resolved location's timezone. Omitted = today (local), from the current moment onward.
pageinteger1-based results page.
querystringFree-text relevance search term (class name, studio name, activity). Omitted = all classes.
categorystringExact site category name as shown in class_times[*].category, e.g. 'Yoga' or 'Pilates'. Omitted = all categories.
locationrequiredstringFree-text place to search around, e.g. 'Austin, TX' or a street address. Resolved to coordinates and a timezone by the site; the resolution is echoed in resolved_location.
page_sizeintegerRows per page, 1-100.
radius_milesintegerSearch radius around the resolved location, 1-100 miles. The site treats the radius loosely, so a few results slightly beyond it can appear.
category_typestringRestricts results to one of the site's top-level business types. Omitted = all types.
Response
{
  "type": "object",
  "fields": {
    "date": "the local calendar day that was searched (YYYY-MM-DD)",
    "page": "integer page returned",
    "has_more": "boolean: whether page+1 exists",
    "page_size": "integer rows per page requested",
    "class_times": "array of class time rows: class_time_id, name, category, subcategory, start/end times in UTC and local (with timezone), duration_minutes, capacity, openings, web_openings, waitlistable, free, bookable_after_utc, booking_cutoff_utc, drop_in_price (null when not advertised), purchase_options (id, name, is_single_session, is_intro_offer, retail_price, online_price), booking_ref (opaque string for get_booking_details), course (course_slug, name, description, virtual, image), instructor (name, instructor_slug), location (studio details incl. location_slug, address, coordinates, timezone, distance_miles, rating, currency_code, categories)",
    "total_found": "integer: site's total number of matching class times across all pages",
    "radius_miles": "integer radius applied",
    "resolved_location": "object: how the site resolved the location input (city, region_code, country_code, latitude, longitude, timezone)"
  },
  "sample": {
    "data": {
      "date": "2026-10-09",
      "page": 1,
      "has_more": true,
      "page_size": 2,
      "class_times": [
        {
          "free": false,
          "name": "Swan Sculpt",
          "course": {
            "name": "Swan Sculpt",
            "image": "https://prodapilymberfitness.mindbodyonline.com/system_stock_images/118/images/original_Web-Image_0005_iStock-936121424_super.jpg?1536882602",
            "virtual": false,
            "course_slug": "swan-sculpt-black-swan-yoga-3",
            "description": "Our Sculpt class is a dynamic, high-energy workout that blends yoga, strength training, and cardio."
          },
          "capacity": 50,
          "category": "Yoga",
          "location": {
            "city": "Austin",
            "name": "Black Swan Yoga Austin",
            "phone": "+1 (555) 012-3456",
            "state": "TX",
            "address": "123 Main St",
            "address2": "",
            "latitude": 30.2604525,
            "timezone": "America/Chicago",
            "longitude": -97.7348381,
            "categories": [
              "Pilates",
              "Weight training",
              "Yoga"
            ],
            "postal_code": "62704",
            "country_code": "US",
            "neighborhood": "East Cesar Chavez",
            "currency_code": "USD",
            "location_name": "Cesar Chavez - Black Swan Yoga",
            "location_slug": "black-swan-yoga-3",
            "total_ratings": 610,
            "average_rating": 4.91,
            "distance_miles": 1.085711635963428
          },
          "openings": 49,
          "timezone": "America/Chicago",
          "instructor": {
            "name": "John Doe",
            "instructor_slug": "drew-c0d99506"
          },
          "booking_ref": "{\"mb_class_id\":241904,\"mb_class_schedule_id\":7520,\"mb_class_description_id\":595,\"mb_site_id\":164427,\"mb_location_id\":5,\"mb_master_location_id\":1876137,\"inventory_source\":\"MB\",\"inventory_category\":\"class_time\"}",
          "subcategory": "Yoga sculpt",
          "end_time_utc": "2026-10-09T11:45:00Z",
          "waitlistable": false,
          "web_openings": 49,
          "class_time_id": "386745334",
          "drop_in_price": null,
          "end_time_local": "2026-10-09T06:45:00-0500",
          "start_time_utc": "2026-10-09T11:00:00Z",
          "duration_minutes": 45,
          "purchase_options": [
            {
              "id": "108333",
              "name": "*1 Month Unlimited",
              "online_price": 128,
              "retail_price": 128,
              "is_intro_offer": false,
              "is_single_session": false
            },
            {
              "id": "108480",
              "name": "1 Week Unlimited",
              "online_price": 35,
              "retail_price": 35,
              "is_intro_offer": false,
              "is_single_session": false
            }
          ],
          "start_time_local": "2026-10-09T06:00:00-0500",
          "bookable_after_utc": "2026-09-18T06:58:28Z",
          "booking_cutoff_utc": "2026-10-09T11:00:00Z"
        }
      ],
      "total_found": 74,
      "radius_miles": 5,
      "resolved_location": {
        "city": "Austin",
        "query": "Austin, TX",
        "latitude": 30.267153,
        "timezone": "America/Chicago",
        "longitude": -97.7430608,
        "region_code": "TX",
        "country_code": "US"
      }
    },
    "status": "success"
  }
}

About the Mindbodyonline API

What the API Covers

The Mindbody API surfaces structured data from Mindbody's public Explore marketplace, which aggregates fitness, wellness, and beauty businesses. The four endpoints follow the natural discovery funnel: search → schedule → availability → pricing. Every class time object returned by search_classes and get_class_schedule shares the same field shape, including class_time_id, name, category, subcategory, UTC and local start/end times with timezone, duration_minutes, instructor details, studio location (with location_slug), open spots, and the booking_ref string needed by get_booking_details.

Searching and Filtering Classes

search_classes accepts a free-text location parameter (city name, address, or place name) that the site resolves to coordinates and a timezone. The resolved_location object in the response exposes latitude, longitude, timezone, city, region_code, and country_code, so you can confirm exactly what geography was matched. Results can be narrowed by query (class or studio name), category (e.g. Yoga, Pilates), category_type (top-level business type), date (ISO YYYY-MM-DD), and radius_miles (1–100). The total_found field tells you how many class times matched across all pages; use page and page_size to paginate.

Schedule and Availability

get_class_schedule requires exactly one of course_slug or location_slug — both come from the search_classes response. Pass location_slug to get every upcoming class time at a studio on a given day; pass course_slug to narrow to one class. get_course_availability takes a course_slug and an optional days window (1–90) and returns an availability array of {date, class_count} objects — only days with at least one scheduled class are included — plus total_class_times for the window. This is useful for building calendar views without fetching full schedule data for every day.

Booking Details

get_booking_details takes the opaque booking_ref string from any class time object and returns the full list of purchase options the site offers for that specific class time. Each option in purchase_options includes id, name, description, price, currency_code, is_single_session, is_intro_offer, is_dynamically_priced, session count, validity duration, and activation/expiration dates. The endpoint also decodes site_id, class_id, and location_id from the booking_ref, which can be useful for cross-referencing.

Reliability & maintenanceVerified

The Mindbodyonline API is a managed, monitored endpoint for mindbodyonline.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mindbodyonline.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official mindbodyonline.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1h ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a geo-aware fitness class finder using search_classes with location, category, and radius_miles filters.
  • Display a studio's full daily timetable by calling get_class_schedule with a location_slug.
  • Render a month-view availability calendar for a recurring class using get_course_availability with a 90-day window.
  • Show real-time pricing and pass options for a selected class time by calling get_booking_details with the booking_ref.
  • Aggregate intro offers across studios in a city by parsing is_intro_offer flags from purchase_options.
  • Track instructor schedules by filtering search_classes results by the instructor fields in class_times.
  • Compare drop-in prices across studios for the same activity type using category filtering and get_booking_details.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Mindbody have an official developer API?+
Yes. Mindbody publishes an official API for businesses at https://developers.mindbodyonline.com. It is intended for studios and software partners managing their own business data and requires business-level credentials. The Parse API described here covers the public Explore marketplace discovery flow — class search, schedules, availability, and pricing — without requiring those credentials.
What exactly does `get_booking_details` return, and can I use it to complete a booking?+
The endpoint returns all purchase options the site displays for a specific class time: each option's name, description, price, currency code, whether it is a single session or intro offer, session count, validity duration, and activation/expiration dates. It does not complete or initiate a booking transaction. Booking transactions go through Mindbody's authenticated business flow, which is outside the scope of this API.
How does the `location` parameter in `search_classes` work, and what if the resolved location is wrong?+
The location input is a free-text string — city name, street address, or place name — that the site's own geocoder resolves to coordinates and a timezone. The resolved_location object in the response includes the matched latitude, longitude, city, region_code, country_code, and timezone, so you can verify what was resolved. If the resolution is ambiguous, pass a more specific string (e.g. include the state or country). The radius_miles parameter is applied loosely by the site, so a small number of results outside the exact radius may appear.
Does the API return historical class data or past schedule dates?+
No. search_classes and get_class_schedule return upcoming class times only, and get_course_availability covers from the current moment forward up to 90 days. Historical or past-session data is not exposed. You can fork this API on Parse and revise it to add an endpoint if you identify a historical data surface to target.
Can I retrieve user reviews or ratings for a studio through this API?+
Not currently. The API covers class discovery, studio schedules, course availability, and booking purchase options. Studio reviews and ratings are not exposed by any of the current endpoints. You can fork this API on Parse and revise it to add a reviews endpoint targeting that data.
Page content last updated . Spec covers 4 endpoints from mindbodyonline.com.
Related APIs in HealthcareSee all →
yogastudiozuerich.ch API
Access comprehensive information from Yoga Pilates Studio Zürich including class schedules, team profiles, pricing details, and studio rental options to integrate their offerings into your application or service. Build features that display current classes, instructor information, rates, and rental availability all from a single unified source.
fresha.com API
Search for beauty and wellness businesses, view detailed venue information like services and pricing, and browse the help center's knowledge base articles and categories. Find exactly what you need across Fresha's marketplace with powerful filtering and category options.
booksy.com API
Retrieve detailed business information including ratings, reviews, and booking links from Booksy, and check real-time available appointment time slots to schedule your next visit. Perfect for finding service providers and managing your bookings all in one place.
bookyogaretreats.com API
Search and explore yoga retreat listings from BookYogaRetreats.com, including pricing, location, duration, ratings, and guest reviews. Browse paginated listings, retrieve full retreat details, and export results to CSV.
bookretreats.com API
Search and browse retreats across multiple locations and categories on BookRetreats.com. Access detailed information for individual retreat listings including pricing, availability, ratings, duration, amenities, and host details. Filter by destination, retreat type, price range, and duration to surface relevant results.
app.yogaalliance.org API
Access data from app.yogaalliance.org.
planetfitness.com API
Search Planet Fitness club locations across the US by city, state, or ZIP code. Retrieve detailed information including addresses, operating hours, amenities, equipment, and membership plans for any club.
classforkids.io API
Search and explore kids clubs, classes, camps, and activities across the UK by location or club name. Access schedules, pricing, availability, and direct booking links, with detailed information for each club all in one place.