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
| Header | Required | Description |
|---|---|---|
x-api-key | Yes | Your Xeni API key |
Content-Type | Yes | application/json |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
currency | string | Yes | Currency code for pricing (e.g., "USD"). |
paxMix | array | Yes | Array of traveler groups by age band. |
productCode | string | Yes | The activity product code from search or details. |
travelDate | string | Yes | The desired travel date in YYYY-MM-DD format. |
Pax Mix Object
| Parameter | Type | Required | Description |
|---|---|---|---|
ageBand | string | Yes | The age category of travelers (e.g., "ADULT", "CHILD", "INFANT", "SENIOR"). |
numberOfTravelers | integer | Yes | Number of travelers in this age band. |
Example Request
JSON
{
"currency": "USD",
"paxMix": [
{
"ageBand": "ADULT",
"numberOfTravelers": 2
}
],
"productCode": "12345ABC",
"travelDate": "2026-04-15"
}Response
| Field | Type | Description |
|---|---|---|
data | array | List of available product options. |
data[].productOptionCode | string | Unique code for this product option (e.g., "TG1"). Required for booking. |
data[].title | string | Name of the product option. |
data[].description | string | Description of what this option includes. |
data[].isPickupIncluded | boolean | Whether hotel pickup is included. |
data[].pricing | object | Pricing details for this option. |
data[].timings | array | Available start times and time slots. |
data[].lineItems | array | Itemized 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
isPickupIncludedistrue, you may need to collect a pickup location from the traveler during the booking step. - Check the
timingsarray 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.