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 Check Activity Availability

Last updated: 2026-03-03

How to Check Activity Availability

Before booking an activity, you must check availability for the desired travel date and traveler configuration. The availability endpoint returns available product options with pricing, timings, and pickup information.

Endpoint

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

Headers

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

Request Body

ParameterTypeRequiredDescription
currencystringYesCurrency code for pricing (e.g., "USD").
paxMixarrayYesArray of traveler groups by age band.
productCodestringYesThe activity product code from search or details.
travelDatestringYesThe desired travel date in YYYY-MM-DD format.

Pax Mix Object

ParameterTypeRequiredDescription
ageBandstringYesThe age category of travelers (e.g., "ADULT", "CHILD", "INFANT", "SENIOR").
numberOfTravelersintegerYesNumber of travelers in this age band.

Example Request

JSON
{
  "currency": "USD",
  "paxMix": [
    {
      "ageBand": "ADULT",
      "numberOfTravelers": 2
    }
  ],
  "productCode": "12345ABC",
  "travelDate": "2026-04-15"
}

Response

FieldTypeDescription
dataarrayList of available product options.
data[].productOptionCodestringUnique code for this product option (e.g., "TG1"). Required for booking.
data[].titlestringName of the product option.
data[].descriptionstringDescription of what this option includes.
data[].isPickupIncludedbooleanWhether hotel pickup is included.
data[].pricingobjectPricing details for this option.
data[].timingsarrayAvailable start times and time slots.
data[].lineItemsarrayItemized pricing breakdown.

Example Response

JSON
{
  "data": [
    {
      "productOptionCode": "TG1",
      "title": "Standard Tour",
      "description": "Guided 3-hour helicopter tour with hotel pickup.",
      "isPickupIncluded": true,
      "pricing": {
        "totalPrice": 450,
        "currency": "USD"
      },
      "timings": [
        {
          "startTime": "09:00",
          "endTime": "12:00"
        },
        {
          "startTime": "14:00",
          "endTime": "17:00"
        }
      ],
      "lineItems": [
        {
          "ageBand": "ADULT",
          "numberOfTravelers": 2,
          "pricePerTraveler": 225,
          "subtotal": 450
        }
      ]
    }
  ]
}

Usage Notes

  • The response may contain multiple product options for the same activity. Each option represents a different variation (e.g., group size, duration, or inclusions).
  • Store the productOptionCode (e.g., "TG1") from the selected option — it is required when creating a booking.
  • If isPickupIncluded is true, you may need to collect a pickup location from the traveler during the booking step.
  • Check the timings array to determine if the activity requires a specific start time. If multiple time slots are available, present them to the user for selection.
  • Availability and pricing are real-time. Always check availability immediately before proceeding to the booking step.

Next Steps

Ready to book? See How to Book an Activity.

Was this article helpful?