# Search car rentals

Use this endpoint to retrieve the available car rentals matching the search criteria.

Endpoint: POST /cars/search
Version: 3.1
Security: BearerAuth

## Header parameters:

  - `X-Affiliate-Id` (integer, required)
    Include here your Affiliate identifier number

## Request fields (application/json):

  - `booker` (object, required)
    Defines the booker context.

  - `booker.country` (string, required)
    The booker country for showing the best price for that user and obeying laws regarding the display of taxes and fees.
    Example: "nl"

  - `currency` (string, required)
    A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies.
    Example: "EUR"

  - `driver` (object, required)
    Defines the driver context.

  - `driver.age` (integer, required)
    Driver age. Affect the availability and price of the products.

  - `filters` (object)
    Defines the filtering criteria for refining the request results. It allows you to specify various parameters to narrow down the available car rental options based on specific attributes.

  - `filters.air_conditioning` (boolean)
    Filters the results to include car rentals with or without air conditioning. Setting this value to true will only return vehicles with air conditioning, while false will exclude them.

  - `filters.car_categories` (array)
    Filters the result based on the selected car category.

  - `filters.depot_location_type` (array)
    Indicates the specific type of location where the car rental depot is situated. This helps you accurately inform travellers about the nature of the pick-up point—whether it's located inside an airport terminal, at a train station, in a downtown area, or elsewhere. This field is optional and may be null if the location type is not defined.

  - `filters.mileage_type` (string)
    Filters the results based on the mileage type associated with the rental vehicle
    Enum: "limited", "unlimited"

  - `filters.number_of_seats` (integer)
    Filters the results based on the number of seats in the vehicle. This allows you to specify a vehicle that can accommodate a specific number of passengers.

  - `filters.supplier_ids` (array)
    Filters the results based on the supplier ID of the vehicle. This allows you to retrieve vehicles from specific suppliers. A maximum of 10 supplier IDs can be provided.

  - `filters.transmission_type` (string)
    Filters the results based on the transmission type of the vehicle.
    Enum: "automatic", "manual"

  - `maximum_results` (integer)
    The maximum number of results to return per page.

  - `language` (string)
    Effects on the selected language of the target website after redirection by provided url.
    Example: "en-us"

  - `page` (string)
    Pagination token used to retrieve the next page of results. Obtained from next_page.

  - `payment` (object)
    Payment-related input filters that allow you to narrow down car search results based on the payment timing options.

  - `payment.timings` (array)
    Filters the results to include only car rentals that offer the specified payment timings. Use this parameter to search for cars based on the timing of payment (e.g., payment upfront, partial payment, or payment at the depot).
    Enum: "pay_now", "part_pay", "pay_local"

  - `route` (object, required)
    Defines the route context.

  - `route.dropoff` (object, required)
    Drop off location and time.

  - `route.dropoff.datetime` (string, required)
    Pick up / drop off datetime.
    Example: "2025-11-10T11:05:00"

  - `route.dropoff.location` (any, required)
    Pick up / drop off location.

  - `route.pickup` (object, required)
    Pick up location and time.

  - `route.pickup.datetime` (string, required)
    Pick up / drop off datetime.
    Example: "2025-11-05T11:05:00"

  - `route.pickup.location` (any, required)
    Pick up / drop off location.

  - `sort` (object)
    The sorting parameters for the response.

  - `sort.by` (string)
    The way to sort your results.
    Enum: "distance", "price", "review_score"

  - `sort.direction` (string)
    The direction you wish for your sort.by parameter to be sorted in.
    Enum: "ascending", "descending"

## Response 200 fields (application/json):

  - `request_id` (string)
    Uniquely identifies the request. Please provide this identifier when contacting support.

  - `data` (array)

  - `data.car` (integer)
    Related car id

  - `data.deal` (object,null)
    This specifies the deal tagging for the product.

  - `data.deal.discount_percentage` (integer)
    Discount percentage of the applied deals.

  - `data.deal.public_price` (number)
    Original price of this product, before applying any discounts.

  - `data.deal.tags` (array)
    The tags of all the applied deals.
    Enum: "black_friday", "getaway_deal", "mobile_rate"

  - `data.policies` (object)
    The policies that apply to this product.

  - `data.policies.cancellation` (object)
    The cancellation policy that applies to this product.

  - `data.policies.cancellation.details` (object,null)
    Provides the policy details if the cancellation is free. For example: 
 1. duration='PT48H' and context=before_pickup means 'Free cancellation is available up to 48 hrs before pick up'. 
 2. duration='P7D' and context=within_given_time_period_of_booking means 'Free cancellation is available within 7 days of booking'

  - `data.policies.cancellation.details.context` (string)
    The context in which the cancellation policy applies. For example 'before_pickup'
    Enum: "before_pickup", "within_given_time_period_of_booking"

  - `data.policies.cancellation.details.duration` (string)
    The duration until which the cancellation is free. This is in ISO-8601/Duration format.

  - `data.policies.cancellation.type` (string)
    The type of cancellation present. For example 'free_cancellation' or 'non_refundable'.
    Enum: "free_cancellation", "non_refundable"

  - `data.policies.damage_excess` (number,null)
    The maximum amount a traveller may be charged for damages to the car during the rental period, as specified by the rental agreement.

  - `data.policies.deposit` (number,null)
    The amount of money that will be temporarily pre-authorised or blocked on the traveller’s credit card at the rental location as a security deposit, to cover potential damage or extra charges.

  - `data.policies.insurance_package` (string)
    The supplier insurance package that applies to this car rental product. Possible values:
  - basic: No insurance is included. The traveller is usually required to purchase coverage at the rental counter.
  - inclusive: Full protection is provided. Collision Damage Waiver (CDW) is included, limiting the traveller’s financial liability for damage.
  - zero_excess: Partial protection is provided. CDW is included, but some coverage elements (e.g., theft protection) may not be included, so the traveller could still be liable for certain costs.
    Enum: "basic", "inclusive", "zero_excess"

  - `data.policies.fuel` (string)
    The fuel policy that applies to this product.
    Enum: "return_same", "return_same_or_prepay_no_refunds", "return_same_preauth", "free_tank", "prepay_no_refunds", "prepay_part_refunds", "prepay_refunds"

  - `data.policies.mileage` (object)
    The mileage policy that applies to this product.

  - `data.policies.mileage.distance` (integer,null)
    The maximal distance limit allowed for this product before additional fees apply.

  - `data.policies.mileage.distance_unit` (string)
    The unit of measurement for the distance limit. For example 'km' or 'miles'.
    Enum: "kilometers", "miles"

  - `data.policies.mileage.fee` (number,null, required)
    The fee that must be paid if the distance limit is exceeded.

  - `data.policies.mileage.type` (string, required)
    The type of mileage policy applied.
    Enum: "limited", "unlimited"

  - `data.policies.payment` (object)
    The payment policy that applies to this product.

  - `data.policies.payment.timing` (string, required)
    The applied payment timing. For example 'pay_now'.
    Enum: "pay_now", "part_pay", "pay_local"

  - `data.policies.theft_excess` (number,null)
    The maximum amount a traveller may be charged in the event of car theft during the rental period, as outlined in the rental agreement.

  - `data.price` (object)
    The price components of this product.

  - `data.price.currency` (string)
    A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling common/payments/currencies.
    Example: "EUR"

  - `data.price.extra_charges` (array)
    The charge breakdown. Includes taxes and fees included in the drive away price.

  - `data.price.extra_charges.charge` (string)
    The type of this charge.
    Enum: "age_fee", "one_way_fee"

  - `data.price.extra_charges.total_amount` (number)
    The total price for this charge.

  - `data.price.total` (number)
    The total price. Includes all extra charges.

  - `data.route` (object)
    Defines the actual route associated with the product.

  - `data.route.dropoff` (object)
    Defines the product drop off route point.

  - `data.route.dropoff.depot` (integer)
    Pick up / drop off depot.
    Example: 5944

  - `data.route.pickup` (object)
    Defines the product pick up route point.

  - `data.route.pickup.depot` (integer)
    Pick up / drop off depot.
    Example: 5944

  - `data.supplier` (integer)
    Related supplier id.

  - `data.url` (object)
    Urls to the relevant pages.

  - `data.url.app` (string)
    URL for the related page on Booking App.

  - `data.url.web` (string)
    URL for the related page on cars.booking.com.

  - `metadata` (object)
    Metadata about the request.

  - `metadata.next_page` (string,null)
    Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter page).

  - `metadata.total_results` (integer)
    The total number of results available.

  - `search_token` (string)
    Encoded string that must be passed in subsequent requests to identify the context of the car search. Note: It is specific to Car rentals and differs from other tokens used in booking flows.


