Public API

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.

get/public/v1/experiences/search

Request

  • Base URL
    https://ilove.sweatpals.com/api
  • Auth
    none declared

Query parameters

querystring required
Example:beginner friendly sunrise trail run

What the user is looking for, in natural language (1-300 chars). Activity, style, level and vibe work best.

latnumber
Example:30.2672

Latitude of the search center. Must be sent together with lng; takes precedence over market.

lngnumber
Example:-97.7431

Longitude of the search center. Must be sent together with lat.

radius_kmnumber
Example:10

Radius around lat/lng in km (default 25, max 200). Requires lat and lng.

marketstring
Example:austin-tx

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.

date_fromstring
Example:2026-10-01

Earliest start, ISO 8601 date or date-time. Defaults to now; past values are clamped to now.

date_tostring
Example:2026-10-07

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.

price_maxnumber
Example:20

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.

currencystring
Example:USD

ISO 4217 currency for price_max (default USD).

limitnumber
Example:5

Results per page (default 10, max 25).

cursorstring
Example:eyJvIjoxMCwicSI6IjNmMmExYjRjIn0

Opaque next_cursor from the previous page. Send it with exactly the same other parameters.

Response

Matching experiences, most relevant first.

next_cursorstring nullable required

Pass as cursor (with the same other params) for the next page; null on the last page. Pages may hold fewer than limit results.

querystring required

The query as interpreted (trimmed).

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.