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 Available Rental Cars

Last updated: 2026-03-03

How to Search for Available Rental Cars

The Search Rentals endpoint returns a paginated list of available vehicles for a given location and date range. This is the core search call that powers your rental car results page.

Endpoint

GET /cars/api/v2/rentals

Request Parameters

ParameterTypeRequiredDescription
countrystringYesTwo-letter ISO country code (e.g., US, GB).
pickupdatestringYesPickup date and time in ISO 8601 format (e.g., 2026-06-15T10:00:00).
returndatestringYesReturn date and time in ISO 8601 format (e.g., 2026-06-20T10:00:00).
pickuptypestringYesLocation type for pickup. Use "geo" for coordinate-based search.
returntypestringYesLocation type for return. Use "geo" for coordinate-based search.
pickupcodestringYesPickup coordinates as "lat,lon" (from the autocomplete endpoint).
returncodestringYesReturn coordinates as "lat,lon" (from the autocomplete endpoint).
currencystringYesThree-letter currency code (e.g., USD, EUR, GBP).
pickupgeostringNoAdditional geographic context for the pickup location.
driveragenumberNoAge of the primary driver. Affects availability and pricing for young/senior drivers.
sortstringNoSort order: "distance" (nearest first) or "price" (lowest first).
pagenumberNoPage number for pagination (starts at 1).
limitnumberNoNumber of results per page.
filterstringNoFilter expression. See How to Use Car Rental Search Filters.
languagestringNoLanguage code for localized content (e.g., en, es).

Date Format

Dates must include a time component in ISO 8601 format. The time determines the pickup and return hour at the rental location.

2026-06-15T10:00:00    ← Pickup at 10:00 AM on June 15
2026-06-20T14:30:00    ← Return at 2:30 PM on June 20

Rental duration and pricing are calculated based on both the date and time. A 5-day rental returned one hour late may incur an extra day charge, depending on the vendor's rate rules.

Example Request

HTTP
GET /cars/api/v2/rentals?country=US&pickupdate=2026-06-15T10:00:00&returndate=2026-06-20T10:00:00&pickuptype=geo&returntype=geo&pickupcode=40.7128,-74.006&returncode=40.7128,-74.006&currency=USD&sort=price&page=1&limit=20
x-api-key: YOURAPIKEY
x-correlation-id: 550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer YOUR_SIGNATURE

Example Response

JSON
{
  "data": {
    "pickupdate_time": "2026-06-15T10:00:00",
    "returndatetime": "2026-06-20T10:00:00",
    "avails": [
      {
        "id": "avl_abc123",
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6...",
        "status": "available",
        "rentalcarbrand": "Hertz",
        "vehicle": {
          "air_conditioning": true,
          "transmission_type": "Automatic",
          "fuel_type": "Petrol",
          "drive_type": "2WD",
          "passenger_quantity": 5,
          "baggage_quantity": 2,
          "vehicle_size": "Standard",
          "vehicle_type": "Sedan",
          "sipp_code": "CCAR",
          "name": "Toyota Camry or similar",
          "door_count": 4,
          "picture_url": "https://images.example.com/camry.png"
        },
        "rental_rate": {
          "rate_distance": "Unlimited",
          "vehicle_charges": [
            {
              "currency_code": "USD",
              "base_price": 245,
              "total_price": 289.75,
              "tax_inclusive": true,
              "purpose": "rental"
            }
          ],
          "rate_restrictions": {
            "minimum_age": 21,
            "maximum_age": 75
          }
        },
        "fees": [],
        "pickup_location": {
          "name": "Hertz - Manhattan Midtown",
          "coordinates": {
            "lat": 40.7549,
            "lon": -73.984
          }
        },
        "dropoff_location": {
          "name": "Hertz - Manhattan Midtown",
          "coordinates": {
            "lat": 40.7549,
            "lon": -73.984
          }
        },
        "distance": 4.8,
        "coverages": [],
        "payment_rules": []
      }
    ]
  }
}

Key Response Fields

FieldDescription
tokenAvailability token. Pass this to the Details and Booking endpoints.
rentalcarbrandName of the rental company (e.g., Hertz, Enterprise).
vehicleObject containing car specifications (type, size, SIPP code, capacity, etc.).
rentalratePricing breakdown including base price, total price, and any age restrictions.
distanceDistance in kilometers from the search coordinates to the pickup location.
pickuplocationName and coordinates of the pickup branch.
dropoff_locationName and coordinates of the drop-off branch.
For a detailed explanation of all response fields, see Car Rental API - Understanding Response Fields.

Pagination

Use the page and limit parameters to paginate through results:

page=1&limit=20    ← First 20 results
page=2&limit=20    ← Results 21-40

One-Way Rentals

To search for a one-way rental (different drop-off location), pass different coordinates for pickupcode and returncode:

pickupcode=40.7128,-74.006&returncode=42.3601,-71.0589

One-way rentals may have additional fees that appear in the fees array of the response.

Tips

  • Always include a time in pickupdate and returndate. Omitting the time component will result in an error.
  • Use the sort parameter to present results in the most useful order for your users. "price" is best for budget-focused travelers; "distance" is best when proximity to the pickup location matters.
  • Store the token for each result. You will need it when calling the Details endpoint or creating a booking.

Was this article helpful?