# Filtering and sorting car rental search results

**Learn how to refine car rental search results using filters and sorting options. Filters help you narrow down available vehicles based on your travellers' preferences, while sorting allows you to control the order of the results.**

## Filtering car rental results

You can refine the results returned by the [/search endpoint](/demand/docs/open-api/demand-api/cars/search) using the `filters` object.

All filters must be included inside the top-level "filters" object of your search request. This ensures the API correctly interprets the filtering criteria and returns only matching vehicles.

Filters can specify attributes such as car category, transmission type, mileage policy, number of seats, depot location type, supplier, and air conditioning. You can also combine multiple filters in a single request to further refine the results.

The following filters are supported:

### Available filters

Use the table below as a quick reference for all available filters supported by the /search endpoint.

| Filter | Description | Accepted values |
|  --- | --- | --- |
| `air_conditioning` | Returns only vehicles with air conditioning when set to true. | true or false. |
| `car_categories ` | Filters by one or more vehicle categories. | e.g. small, medium, large, estate, carriers, suvs, premium. |
| `supplier_ids`
 | Returns vehicles from specified supplier IDs.
Use /cars/suppliers to retrieve supplier IDs.
 | Up to 10 integer IDs (e.g. [102, 122])
 |
| `transmission_type` | Filters by transmission type. | automatic or manual. |
| `number_of_seats` | Filters by specific number of seats. | Integer (e.g., 2, 4, 5, 7). |
| `mileage_type` | Filters by mileage policy. | limited or unlimited. |
| `depot_location_type` | Filters vehicles by depot location type | `in_terminal, car_rental_centre, outside_terminal, airport_hotel, shuttle_bus, meet_greet, trainstation, downtown`. |


## Filter examples

### Air conditioning

Use the `air_conditioning` filter to include or exclude vehicles with air conditioning.

Example request:


```json
"filters": {
  "air_conditioning": true
}
```

When set to `true`, only vehicles with air conditioning are returned. If no such vehicles are available, the response is empty.

### Car categories

Use the `car_categories` field to return only vehicles matching one or more specified categories.

Example request:


```json
{
  "booker": {
    "country": "nl"
  },
  "currency": "EUR",
  "driver": {
    "age": 36
  },
  "filters": {
    "car_categories": ["premium", "suvs"]
  },
  "route": {
    "dropoff": {
      "datetime": "2025-11-10T11:05:00",
      "location": {
        "airport": "AMS"
      }
    },
    "pickup": {
      "datetime": "2025-11-05T11:05:00",
      "location": {
        "airport": "AMS"
      }
    }
  }
}
```

### Depot location type

Include the `depot_location_type` filter to return vehicles based on the type of pickup or dropoff depot.


```json
"filters": {
  "depot_location_type": "in_terminal"
}
```

Accepted values include:

* `in_terminal`.
* `car_rental_centre`
* `outside_terminal`
* `airport_hotel`
* `shuttle_bus`
* `meet_greet`
* `trainstation`
* `downtown`


### Mileage type

Use the `mileage_type` filter to select vehicles with either limited or unlimited mileage.

Example request:


```json
"filters": {
  "mileage_type": "unlimited"
}
```

### Number of seats

Use the `number_of_seats` filter to return vehicles with a specific seating capacity.


```json
"filters": {
  "number_of_seats": 5
}
```

### Supplier IDs

Use the `supplier_ids` filter to return only vehicles offered by specific car rental suppliers.

Example request:


```json
"filters": {
  "supplier_ids": [102, 122]
}
```

You can include up to 10 supplier IDs in a single request. The API will return vehicles from any of the specified suppliers.

Each supplier ID corresponds to a specific car rental provider. In the example request, `102` corresponds to "Europcar" and `122` to Goldcar.

You can retrieve the full list of supplier IDs by sending an empty request to the [cars/suppliers endpoint](/demand/docs/open-api/demand-api/cars/suppliers).

### Transmission type

You can include the `transmission_type` filter to return either automatic or manual vehicles.

Example request:


```json
"filters": {
  "transmission_type": "automatic"
}
```

## Filtering by payment timing

You can limit search results based on supported payment timings. For example, you may wish to return only vehicles available with online payments.

Examples:

v3.1 search request
With version 3.1 use `pay_now` or `part_pay` for online payments, or `pay_local` for pay at time of pick up.


```json
{
    "booker": {
        "country": "us"
    },
    "currency": "USD",
    "driver": {
        "age": 35
    },
    "route": {
        "pickup": {
            "datetime": "2025-07-21T10:00:00",
            "location": {
                "airport": "LAX"
            }
        },
        "dropoff": {
            "datetime": "2025-07-24T10:00:00",
            "location": {
                "airport": "LAX"
            }
        }
    },
    "payment": {
        "timings": ["pay_now", "part_pay"]
    }
}
```

v3.2 search request
In version 3.2 use  `pay_online_now` or `pay_partial_online_now` for online payments, or `pay_at_pickup` for pay at time of picking up the car.


```json
{
    "booker": {
        "country": "us"
    },
    "currency": "USD",
    "driver": {
        "age": 35
    },
    "route": {
        "pickup": {
            "datetime": "2025-07-21T10:00:00",
            "location": {
                "airport": "LAX"
            }
        },
        "dropoff": {
            "datetime": "2025-07-24T10:00:00",
            "location": {
                "airport": "LAX"
            }
        }
    },
    "payment": {
        "timings": ["pay_online_now", "pay_partial_online_now"]
    }
}
```

Refer to [Payment timings](/demand/docs/payments/payments-timings) section for more details about online payments.

## Combining filtering

You can apply multiple filters in a single request to refine search results further. Only vehicles that match all specified criteria are returned.

Example: Combined filters:


```json
"filters": {
  "car_categories": ["economy"],
  "supplier_ids": [601,1088],
  "air_conditioning": true,
  "transmission_type": "automatic",
  "number_of_seats": 5,
  "mileage_type": "unlimited",
  "depot_location_type": "downtown"
}
```

## Sorting search results

Use the `sort.by` parameter to control the order in which results appear. Sorting applies to each page of results independently.

Available sorting options:

* `distance` – Closest results first.
* `price` – Lowest price first.
* `review_score` – Highest rated first.


Example: Sort by price


```json
{
  "booker": {
    "country": "nl"
  },
  "currency": "EUR",
  "driver": {
    "age": 36
  },
  "sort": {
    "by": "price"
  },
  "route": {
    "dropoff": {
      "datetime": "2025-06-05T11:05:00",
      "location": {
        "airport": "AMS"
      }
    },
    "pickup": {
      "datetime": "2025-05-05T16:05:00",
      "location": {
        "airport": "AMS"
      }
    }
  }
}
```

## Best practices

* Combine filters and sorting to display relevant results tailored to your travellers' needs.
* Use [pagination parameters](/demand/docs/development-guide/pagination) to navigate large result sets efficiently.
* Apply payment timing filters if you want to restrict results to vehicles with specific payment options.


Curious to know more?
- Refer to the [Car rental quick guide](/demand/docs/cars/cars-quick-guide) for instructions and best practices on constructing your requests.
- See the [Search for cars guide](/demand/docs/cars/search-for-cars) and [use cases](/demand/docs/cars/search-cars-examples) for more examples.
- Learn about [Car details](/demand/docs/cars/retrieve-car-details/) and how to handle [cars static data](/demand/docs/cars/cars-static-data).