Search fitness & wellness experiences
Find upcoming fitness and wellness experiences (classes, run clubs, workouts, retreats, wellness sessions) that match what the user asked for, ranked by semantic relevance to query.
Use it whenever the user wants something to do, join or attend — "a beginner yoga class this weekend in Austin", "free run clubs near me", "sound bath under $30". Put the activity and vibe in query; put place, dates and budget in the dedicated parameters rather than in query.
Location: send lat + lng (+ optional radius_km) when you know the user's position, otherwise market with a city slug from GET /public/v1/markets or a plain city name ("Austin" or "Austin, TX"). Without either, results are not location-filtered. Dates default to the next 90 days. Only public, published experiences are returned, one entry per recurring series (its next matching date).
Pagination: when next_cursor is non-null, call again with the same parameters plus cursor. A page can contain fewer than limit results (e.g. when price_max filters some out) — keep going while next_cursor is non-null.
Example: GET /public/v1/experiences/search?query=sunrise%20trail%20run&market=austin-tx&date_from=2026-10-01&date_to=2026-10-07&price_max=20&limit=5
Send the user to each result's url to view and book; call GET /public/v1/experiences/{id} for full details.
Request
- Base URLhttps://ilove.sweatpals.com/api
- Authnone declared
Query parameters
What the user is looking for, in natural language (1-300 chars). Activity, style, level and vibe work best.
Latitude of the search center. Must be sent together with lng; takes precedence over market.
Longitude of the search center. Must be sent together with lat.
Radius around lat/lng in km (default 25, max 200). Requires lat and lng.
City to search in: a slug from GET /public/v1/markets, or a city name optionally followed by ", region". Ignored when lat/lng are sent. Unknown values return 400 INVALID_PARAMETER.
Earliest start, ISO 8601 date or date-time. Defaults to now; past values are clamped to now.
Latest start, ISO 8601 date or date-time (a bare date includes that whole UTC day). Defaults to 90 days after date_from (or now); date_from..date_to may span at most 366 days.
Maximum ticket price in major units of currency (e.g. 20 = $20). Free and donation-based experiences always pass; priced ones in another currency are excluded.
ISO 4217 currency for price_max (default USD).
Results per page (default 10, max 25).
Opaque next_cursor from the previous page. Send it with exactly the same other parameters.
Response
Matching experiences, most relevant first.
Example response
{
"results": [
{
"id": "0b7e5c1a-2f3d-4e5f-8a9b-0c1d2e3f4a5b",
"event_id": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",
"title": "Sunrise Trail Run + Coffee",
"short_description": "An easy-paced 5K on the Butler trail followed by coffee with the crew. All paces welcome.",
"start": "2026-10-03T07:00:00-05:00",
"end": "2026-10-03T08:30:00-05:00",
"timezone": "America/Chicago",
"venue": {
"name": "Zilker Park",
"address": "Austin, Texas, United States",
"lat": 30.2669,
"lng": -97.7729
},
"market": {
"slug": "austin-tx",
"name": "Austin",
"region": "Texas"
},
"price": {
"amount": 25,
"currency": "USD"
},
"host": {
"id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
"name": "Austin Sunrise Runners",
"url": "https://sweatpals.com/host/austinsunriserunners"
},
"tags": [
"Running"
],
"spots_remaining": 12,
"image_url": "https://edge.sweatpals.com/api/files/2c9f0a1b-3d4e-4f5a-9b8c-7d6e5f4a3b2c?variant=l",
"url": "https://sweatpals.com/event/sunrise-trail-run/2026-10-03?utm_source=agent&utm_medium=ai_agent&ref=agent"
}
],
"next_cursor": "eyJvIjoxMCwicSI6IjNmMmExYjRjIn0",
"market": {
"slug": "austin-tx",
"name": "Austin",
"region": "Texas"
},
"query": "trail run"
}Changes
No recorded changes to this operation across all 1 revision of this API.