Skip to content

Studios

The studios API lets you search for OrangeTheory studios by location, get detailed studio information, and manage your list of favorite studios. All studio operations are accessed through otf.studios.

Searching Studios by Location

Use search_studios_by_geo to find studios near a geographic location:

# Search near your home studio (default)
studios = otf.studios.search_studios_by_geo()

# Search near specific coordinates
studios = otf.studios.search_studios_by_geo(
    latitude=39.7392,
    longitude=-104.9903,
)

# Adjust search radius (default is 50 miles)
studios = otf.studios.search_studios_by_geo(
    latitude=39.7392,
    longitude=-104.9903,
    distance=25,
)

Each result is a StudioDetail object containing the studio name, address, contact info, status, and geographic coordinates.

Tip

When called with no arguments, search_studios_by_geo uses your home studio's coordinates and returns studios within 50 miles.

Getting Studio Details

Retrieve detailed information about a specific studio:

# Your home studio (default)
studio = otf.studios.get_studio_detail()

# A specific studio by UUID
studio = otf.studios.get_studio_detail("c9e81931-6845-4ab5-ba06-6479d63553ae")

print(f"Name: {studio.name}")
print(f"Email: {studio.contact_email}")
print(f"Address: {studio.location.address_line1}, {studio.location.city}")
print(f"Status: {studio.status}")
print(f"Time Zone: {studio.time_zone}")

Note

If a studio UUID does not exist, get_studio_detail returns a placeholder object with name="Studio Not Found" and status="Unknown" rather than raising an exception. This allows downstream code to continue without null checks.

Studio Services

View pricing and service packages available at a studio:

services = otf.studios.get_studio_services()

for svc in services:
    print(f"{svc.name} - ${svc.price} (qty: {svc.qty})")

Pass a studio_uuid argument to check services at a different studio. Defaults to your home studio.

Managing Favorites

Add and remove studios from your favorites list:

# Get your current favorites
favorites = otf.studios.get_favorite_studios()
for studio in favorites:
    print(f"  {studio.name}")

# Add a studio to favorites
otf.studios.add_favorite_studio("c9e81931-6845-4ab5-ba06-6479d63553ae")

# Add multiple studios at once
otf.studios.add_favorite_studio(["uuid-1", "uuid-2"])

# Remove a studio from favorites
otf.studios.remove_favorite_studio("c9e81931-6845-4ab5-ba06-6479d63553ae")

Tip

Your home studio UUID is accessible via otf.home_studio_uuid, making it easy to add your home studio to favorites:

otf.studios.add_favorite_studio(otf.home_studio_uuid)