Getting Started with the Xeni Activities APIHow to Book an ActivityHow to Browse Activity Tags and CategoriesHow to Cancel an Activity BookingHow to Check Activity AvailabilityHow to Get Activity DetailsHow to Retrieve Activity Booking DetailsHow to Search for Activities with FiltersHow to Search for Activity DestinationsCar Rental API - Getting StartedCar Rental API - Understanding Response FieldsHow to Book a Car RentalHow to Get Rental Car Details and Equipment Add-OnsHow to Retrieve or Cancel a Car Rental BookingHow to Search for Available Rental CarsHow to Search for Pickup LocationsHow to Use Car Rental Search FiltersDeals API Best Practices for IntegrationDeals API Frequently Asked QuestionsGetting Started with the Xeni Deals APIDeals API Request Parameters and Headers ReferenceDeals API Supported Currencies and LocalizationHow to Display Deals in Your ApplicationHow to Fetch Hotel Deals by LocationFlights API Error Codes and TroubleshootingGetting Started with the Xeni Flights APIHow to Book a FlightHow to Check Flight Availability and PricingHow to Confirm or Cancel a Flight BookingHow to Retrieve Fare Rules for a FlightHow to Retrieve Flight Booking DetailsHow to Search for Airports Using AutocompleteHow to Search for FlightsHow to Use Flight Search Filters, Sorting, and PaginationHow to Check Room Availability and PricingHow to Filter Vacation Rental ResultsHow to Get Resort Property Details, Amenities, and AccessibilityHow to Hold and Confirm a Resort BookingHow to Release a Resort HoldHow to Retrieve Resort Booking DetailsHow to Search for Available ResortsHow to Search for Resort DestinationsHow to Search for Vacation Rental LocationsHow to Search for Vacation RentalsHow to Use Resort Search Filters and SortingGetting Started with the Xeni Resorts APIResorts API: Understanding Booking Statuses and PoliciesGetting Started with the Vacation Rentals APIVacation Rentals Frequently Asked QuestionsVacation Rentals Supported Property TypesUnderstanding Async Search for Vacation RentalsAuthentication & API SignaturesBooking Hotels — Direct API & SSO CheckoutError Handling, Rate Limits & Best PracticesGetting Started with the Xeni Hotels APIManaging Bookings: Status, Retrieval & CancellationPricing Confirmation & Token LifecycleRetrieving Hotel Details & Room AvailabilitySearching for Hotels: Locations, Filters & PaginationSearching for HotelsSession Management & Correlation IDsAPI authentication and getting your API keys

How to Search for Activities with Filters

Last updated: 2026-03-03

How to Search for Activities with Filters

The search endpoint returns available activities for a destination. You can apply a wide range of filters to narrow results by category, price, duration, time of day, and more.

Endpoint

POST {{api_host}}/api/ext/activity/search

Headers

HeaderRequiredDescription
x-api-keyYesYour Xeni API key
Content-TypeYesapplication/json

Request Body

ParameterTypeRequiredDescription
destinationIdstringYesThe destination ID from the autocomplete endpoint.
filterItemobjectNoFilter and sort options. See below.
offSetintegerNoPagination offset. Defaults to 0.
limitintegerNoNumber of results to return. Defaults to 50.
currencystringNoCurrency code for pricing (e.g., "USD").
includePriceRangebooleanNoWhen true, includes the overall price range in the response. Defaults to false.

Filter Item Object

ParameterTypeDescription
sortOrderstringSort results. Options: "asc", "desc", "isFeatured", "durationAsc", "durationDesc".
tagIdsarray of integersFilter by tag IDs obtained from the tags endpoint.
titlestringFree-text search within activity titles (e.g., "private transfer").
popularityarray of stringsFilter by popularity attributes.
specialsarray of stringsFilter by special offers.
priceRangearrayPrice range filter as [min, max].
priceRangeLowarrayLow price range filter as [min, max].
durationsarray of stringsFilter by activity duration.
timeOfDaysarray of stringsFilter by time of day.
startDatestringFilter activities starting on or after this date.
endDatestringFilter activities ending on or before this date.

Popularity Options

ValueDescription
"Kid friendly"Activities suitable for children.
"Taking safety measures"Activities with enhanced safety protocols.
"Virtual Experience"Virtual or online activities.
"Good to avoid crowd"Activities in less crowded settings.

Specials Options

ValueDescription
"FREECANCELLATION"Activities offering free cancellation.
"DEALSANDDISCOUNT"Activities with active deals or discounts.
"LIKELYTOSELLOUT"Popular activities likely to sell out.

Duration Options

ValueDescription
"Up to 1 hour"Activities lasting less than 1 hour.
"1 hour to 4 hours"Activities lasting 1 to 4 hours.
"4 hours to 1 day"Half-day to full-day activities.
"1 day to 3 days"Multi-day activities.
"3 days +"Extended multi-day activities.

Time of Day Options

ValueDescription
"6 am to 12 pm"Morning activities.
"12 pm to 5 pm"Afternoon activities.
"5 pm to 12 am"Evening and night activities.

Example Request

JSON
{
  "destinationId": "737",
  "filterItem": {
    "sortOrder": "isFeatured",
    "tagIds": [
      12026
    ],
    "title": "",
    "popularity": [
      "Kid friendly"
    ],
    "specials": [
      "FREE_CANCELLATION"
    ],
    "priceRange": [
      0,
      500
    ],
    "durations": [
      "1 hour to 4 hours"
    ],
    "timeOfDays": [
      "6 am to 12 pm"
    ],
    "startDate": "2026-04-01",
    "endDate": "2026-04-07"
  },
  "offSet": 0,
  "limit": 50,
  "currency": "USD",
  "includePriceRange": false
}

Pagination

Use the offSet and limit parameters to paginate through results. For example, to fetch the second page of 50 results:

JSON
{
  "destinationId": "737",
  "offSet": 50,
  "limit": 50,
  "currency": "USD"
}

Usage Notes

  • All filter parameters within filterItem are optional. Omit any filter you do not need.
  • You can combine multiple filters in a single request. All filters are applied together (AND logic).
  • The title field performs a free-text search across activity names, which is useful for finding specific experiences like transfers or specific tours.
  • Set includePriceRange to true on the first request if you need to build a price slider in your UI.

Next Steps

Once you have search results, retrieve full details for an activity. See How to Get Activity Details.

Was this article helpful?