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

Getting Started with the Xeni Resorts API

Last updated: 2026-03-03

Getting Started with the Xeni Resorts API

The Xeni Resorts API v2 gives you programmatic access to a global inventory of resort properties. With a single integration, you can search destinations, browse available resorts, check room availability and pricing, and complete bookings entirely via API.

What You Can Do

The Resorts API v2 supports the full booking lifecycle:

  • Search destinations — Use autocomplete to find cities, regions, states, or countries and retrieve the region codes needed for property searches.
  • Search resorts — Query available resort properties by region, dates, pricing, ratings, amenities, and more.
  • Get property details — Retrieve full property information including images, policies, check-in/check-out times, and ratings.
  • Check facilities — Look up accessibility features, nearby airports, and on-site or off-site amenities for any property.
  • Check room availability — View available rooms with real-time pricing for specific dates.
  • Confirm pricing — Retrieve final pricing and a session ID before booking.
  • Hold and confirm bookings — Reserve a property with a hold, then confirm or release it.
  • Retrieve booking details — Look up full booking information including fare breakdowns, traveler details, and property policies.

Environments


EnvironmentBase URLPurpose
UAT (Sandbox)https://uat.travelapi.aiDevelopment and testing. No real bookings are created.
Productionhttps://api.travelapi.aiLive environment. Real bookings with real charges.

Build and test your integration against the UAT environment before switching to production. The API surface is identical across both environments.

API Versioning

All resort endpoints use the v2 path prefix under /resorts/api/v2. Here is a summary of the available endpoints:

GET  /resorts/api/v2/search
POST /resorts/api/v2/properties/{xeniregioncode}
GET  /resorts/api/v2/property/{property_id}
GET  /resorts/api/v2/properties/availability
GET  /resorts/api/v2/properties/price
POST /resorts/api/v2/itineraries
PUT  /resorts/api/v2/itineraries
GET  /resorts/api/v2/booking/{reference_number}

Prerequisites

Before you begin, you will need:

  1. API Key — Your unique API key, provided during onboarding.
  2. API Secret — Your secret key, used alongside the API key to generate authentication signatures.

If you have not received your credentials yet, contact your Xeni account representative.

Required Headers

All requests to the Resorts API must include the following headers:

HeaderValueRequired
Content-Typeapplication/jsonYes
x-api-keyYour API keyYes
x-correlation-idA unique identifier to correlate requests within a sessionYes

The x-api-key header authenticates your requests. The x-correlation-id header ties related API calls together within a single search-to-booking session and is essential for tracking and debugging.

Quick Start: Your First Resort Search

Here is the minimum flow to search for resorts. Each step is covered in detail in subsequent articles.

Step 1 — Search for a Destination

Use the autocomplete endpoint to find a destination and retrieve its region code.

JSON
GET {{api_host}}/resorts/api/v2/search?key=hawaii

// Response
{
"status": 200,
"data": [
{
"name": "Hawaii",
"full_name": "Hawaii, United States",
"city": "",
"state": "Hawaii",
"country": "United States",
"region": "aGF3YWlp",
"type": "state",
"popularity": 95,
"location": {
"lat": 19.8968,
"lon": -155.5828
}
}
]
}

Save the region value (a Base64-encoded code) — you will need it for the property search.

Step 2 — Search for Resorts

Use the region code from the autocomplete response to search for available resort properties.

JSON
POST {{api_host}}/resorts/api/v2/properties/aGF3YWlp?currency=USD

{
"stay_period": {
"start": "2026-04-01",
"end": "2026-04-07"
},
"lat": 19.8968,
"lon": -155.5828
}

Step 3 — Check Availability and Pricing

Once you have identified a property, check room availability and then confirm the price before booking.

Step 4 — Hold and Confirm

Create a hold on the booking, then confirm it to finalize the reservation.

Response Format

All API responses return JSON. Successful responses include a status field and wrap their payload in a data property:

JSON
{
  "status": 200,
  "data": { ... }
}

Error responses follow a consistent structure:

JSON
{
  "message": "Description of the error",
  "status": 400
}

Was this article helpful?