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 Vacation Rentals

Last updated: 2026-03-03

How to Search for Vacation Rentals

Once you have a destination from the autocomplete endpoint, use the vacation rentals search endpoint to find available properties. This endpoint returns rental properties such as condos, apartments, cottages, and houseboats.

Search Endpoint

POST /hotels/api/v2/properties/vacation-rentals?currency=USD&page=1&limit=50&amenities=true

Note the /vacation-rentals path — this is the key difference from the standard hotel search endpoint.

Query Parameters

ParameterTypeRequiredDescription
currencystringYesThree-letter currency code (e.g., USD, EUR, GBP)
pagenumberYesPage number for paginated results (starts at 1)
limitnumberYesNumber of results per page (max 50)
amenitiesbooleanNoSet to true to include amenity data in results

Required Headers

HeaderRequiredDescription
x-correlation-idYesCorrelation ID from the autocomplete response
Content-TypeYesapplication/json

Request Body

JSON
{
  "checkin_date": "2026-04-15",
  "checkout_date": "2026-04-22",
  "occupancy": [
    {
      "adults": 2,
      "childs": 1,
      "childages": [
        8
      ]
    }
  ],
  "lat": 39.0968,
  "long": -120.0324,
  "countryofresidence": "US",
  "placeid": "placeabc123",
  "vacation_rentals": [
    "Cottage"
  ],
  "radius": 25,
  "sort": [
    {
      "key": "price",
      "order": "asc"
    }
  ],
  "filters": {},
  "is_async": false
}

Body Parameters

ParameterTypeRequiredDescription
checkindatestringYesCheck-in date in YYYY-MM-DD format
checkoutdatestringYesCheck-out date in YYYY-MM-DD format
occupancyarrayYesArray of room occupancy objects
occupancy[].adultsnumberYesNumber of adults
occupancy[].childsnumberYesNumber of children
occupancy[].childagesarrayConditionalRequired if childs > 0. Array of integer ages for each child.
latnumberYesLatitude from the autocomplete result
longnumberYesLongitude from the autocomplete result
countryofresidencestringYesTwo-letter country code of the guest
placeidstringYesPlace ID from the autocomplete result
vacationrentalsarrayNoArray of property type strings to filter by (see below)
radiusnumberNoSearch radius in kilometers
sortarrayNoSort criteria
filtersobjectNoFilter criteria (ratings, amenities, name, price, distance)
is_asyncbooleanNoSet to true for async mode. Default: false

Vacation Rentals Property Types

Use the vacation_rentals array to filter results by specific property types:

ValueDescription
"Condo"Individually owned condo units
"Apartment"Self-contained apartment units
"Cottage"Small standalone homes
"Houseboat"Floating accommodation
"Mobile Home"Transportable residential units
"Aparthotel"Apartment-hotel hybrids
"Condominium Resort"Resort complexes of condo units

You can pass one or multiple types:

JSON
{
  "vacation_rentals": [
    "Cottage",
    "Condo",
    "Apartment"
  ]
}

If the vacation_rentals array is omitted or empty, all vacation rental property types are returned.

Response Format

JSON
{
  "status": "success",
  "data": {
    "total": 142,
    "hotels": [
      {
        "propertyid": "propxyz789",
        "name": "Lakeside Cottage Retreat",
        "location": {
          "lat": 39.095,
          "long": -120.031,
          "address": "123 Lake Shore Drive",
          "city": "Tahoe City",
          "country": "US"
        },
        "contact": {
          "phone": "+1-555-0123",
          "email": "info@lakesidecottage.example.com"
        },
        "ratings": {
          "star_rating": 4,
          "guest_rating": 8.7
        },
        "rates": {
          "retail_price": 289,
          "base_rate": 245,
          "total_rate": 1703,
          "taxandfees": 158,
          "currency": "USD"
        },
        "image": {
          "thumbnail": "https://images.example.com/thumb/cottage.jpg",
          "large": "https://images.example.com/large/cottage.jpg",
          "extra_large": "https://images.example.com/xl/cottage.jpg"
        }
      }
    ]
  }
}

Response Fields

FieldTypeDescription
statusstring"success" when complete, "inprogress" during async polling
data.totalnumberTotal number of matching properties
data.hotelsarrayArray of property objects
data.hotels[].propertyidstringUnique property identifier
data.hotels[].namestringProperty name
data.hotels[].locationobjectLocation details including coordinates and address
data.hotels[].contactobjectContact information
data.hotels[].ratingsobjectStar rating and guest rating scores
data.hotels[].rates.retailpricenumberDisplayed retail price per night
data.hotels[].rates.baseratenumberBase rate before taxes
data.hotels[].rates.totalratenumberTotal rate for the full stay
data.hotels[].rates.taxand_feesnumberTotal taxes and fees
data.hotels[].rates.currencystringCurrency code for all prices
data.hotels[].imageobjectImage URLs at different sizes

Common Errors

Status CodeCauseSolution
400Missing x-correlation-id headerCall autocomplete first and include the correlation ID
400Child ages count does not match childs valueEnsure childages array length matches childs
400Invalid currency codeUse a valid three-letter currency code
404No results foundTry broadening the search (larger radius, fewer filters)

Next Steps

Learn how to apply filters to narrow vacation rental search results by rating, amenities, price range, and more.

Was this article helpful?