# Rentalcars Search API Documentation

<p>Search car hire offers for a pickup place and a date range. Each offer has the supplier, the car, the total and daily price, fees, mileage, fuel policy, excess, deposit, cancellation terms and the depot rating. The response also lists suppliers, depots, applied filters, available_filters and the price range. One search returns at most 500 offers. The pagination object shows total_offers, offer_cap and capped. The pagination total_offers value is the upstream count after filtering. It can be larger than the offers you can list. The market (cor) and the currency decide the prices. The response echoes both values in the market object. The depot_rating on an offer rates the pickup depot. It is not the overall rating of the supplier. Use the supplier ratings endpoint for the supplier rating. Filter values must come from available_filters of an earlier search response. A search without offers returns 200 with an empty offers array and a no_results object. This response is not billed. Scrappa is not affiliated with Rentalcars.com. This is an unofficial API.</p>

- **Documentation:** [https://scrappa.co/docs/rentalcars-api/rentalcars_search](https://scrappa.co/docs/rentalcars-api/rentalcars_search)
- **API group:** Rentalcars API
- **Endpoint:** `GET https://scrappa.co/api/rentalcars/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `pickup_location` | string | Yes | Pickup place. A 3-letter IATA airport code or "lat,lng". Example: BER. |
| `dropoff_location` | string | No | Dropoff place. Same format as the pickup place. Default: the pickup place. |
| `pickup_date` | string | Yes | Pickup date in Y-m-d format. It must not be in the past. Example: 2026-12-01. |
| `pickup_time` | string | No | Pickup time in H:i format. Default: 10:00. |
| `dropoff_date` | string | Yes | Dropoff date in Y-m-d format. It must not be before the pickup date. |
| `dropoff_time` | string | No | Dropoff time in H:i format. Default: 10:00. |
| `drivers_age` | integer | No | Age of the driver, from 18 to 99. Default: 30. |
| `car_category` | array | No | Filter by car category. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `supplier` | array | No | Filter by supplier name. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `transmission` | array | No | AUTOMATIC or MANUAL. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `mileage` | array | No | Filter by mileage policy. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `depot_location_type` | array | No | Filter by depot place type. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `fuel_type` | array | No | Filter by fuel type. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `fuel_policy_type` | array | No | Filter by fuel policy. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `seat_capacity` | array | No | Filter by seat group, for example UP_TO_5 or 6_TO_7. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `pay_when` | array | No | Filter by payment time. Send several values with brackets, for example supplier[]=Alamo&supplier[]=Avis. Take values from available_filters in a search response. |
| `free_cancellation` | boolean | No | Show only offers with free cancellation. true or false. |
| `minimum_supplier_rating` | integer | No | Lowest accepted rating, from 1 to 10. |
| `minimum_four_doors` | boolean | No | Show only cars with four or more doors. true or false. |
| `has_deals` | boolean | No | Show only offers with a deal. true or false. |
| `has_insurance_inclusive_pricing` | boolean | No | Show only offers with insurance in the price. true or false. |
| `price_min` | number | No | Lowest price. |
| `price_max` | number | No | Highest price. |
| `filter_criteria` | string | No | Advanced. A JSON string with extra filter criteria. Unknown keys are listed in filters.unknown. |
| `sort` | string | No | NATURAL, PRICE, RATING, DISTANCE or GENIUS. Default: NATURAL. |
| `sort_ascending` | boolean | No | Sort from low to high. true or false. |
| `page` | integer | No | Page number. Default: 1. |
| `per_page` | integer | No | Offers per page, from 1 to 100. Default: 50. |
| `cor` | string | No | Country of residence as a 2-letter code, or auto. It sets the market and the prices. With auto no market is sent and the offers follow the exit country. Use auto when you want to pass the search_key and vehicle_id to /terms. Default: gb. |
| `currency` | string | No | Currency code for prices. Default: EUR. |

## Example response

```json
{
    "meta": {
        "attempts": 1,
        "duration_ms": 3,
        "endpoint_family": "search"
    },
    "depots": [
        {
            "id": "4489988",
            "city": "Berlin",
            "iata": "BER",
            "name": "Berlin Brandenburg Airport Willy Brandt",
            "rating": {
                "scope": "depot",
                "average": 7.6,
                "locating": 8.1,
                "condition": 8,
                "efficiency": 6.8,
                "cleanliness": 8.6,
                "num_ratings": 350,
                "collect_time": 7.3,
                "drop_off_time": 8,
                "value_for_money": 6.8
            },
            "address": "1 Melli-Beese-Ring, Sch\u00f6nefeld, Berlin, Germany, 12529",
            "latitude": 52.364206,
            "longitude": 13.508656,
            "location_id": "466611",
            "pickup_type": "CAR_RENTAL_CENTRE",
            "supplier_id": "137",
            "country_code": "DE",
            "pickup_instructions": null,
            "drop_off_instructions": null,
            "distance_from_search_km": null
        },
        {
            "id": "4490007",
            "city": "Berlin",
            "iata": "BER",
            "name": "Berlin Brandenburg Airport Willy Brandt",
            "rating": {
                "scope": "depot",
                "average": 7.7,
                "locating": 8,
                "condition": 7.8,
                "efficiency": 7.9,
                "cleanliness": 7.3,
                "num_ratings": 133,
                "collect_time": 8,
                "drop_off_time": 8,
                "value_for_money": 7.3
            },
            "address": "1 Melli-Beese-Ring, Sch\u00f6nefeld, Berlin, Germany, 12529",
            "latitude": 52.364206,
            "longitude": 13.508656,
            "location_id": "466611",
            "pickup_type": "CAR_RENTAL_CENTRE",
            "supplier_id": "227",
            "country_code": "DE",
            "pickup_instructions": null,
            "drop_off_instructions": null,
            "distance_from_search_km": null
        }
    ],
    "market": {
        "country": "GB",
        "currency": "EUR"
    },
    "offers": [
        {
            "car": {
                "fuel": "N/A",
                "doors": 4,
                "seats": 5,
                "groups": [
                    "suvs",
                    "medium",
                    "midsizeSuv"
                ],
                "car_class": "IFMRWT",
                "image_url": "https://cdn2.rcstatic.com/images/car_images/web/ford/kuga_lrg.jpg",
                "categories": [
                    "suvs",
                    "intermediate"
                ],
                "transmission": "MANUAL",
                "make_and_model": "Ford Kuga",
                "suitcase_count": 4,
                "large_suitcases": 3,
                "small_suitcases": 0,
                "air_conditioning": true
            },
            "fees": [
                {
                    "per": null,
                    "name": "DAMAGE_EXCESS",
                    "type": null,
                    "amount": 1150,
                    "source": "MAPPED",
                    "currency": "EUR",
                    "distance": null,
                    "unlimited": null,
                    "tax_included": true,
                    "distance_unit": null,
                    "always_payable": true,
                    "payable_locally": false,
                    "included_in_total": false
                },
                {
                    "per": null,
                    "name": "DEPOSIT",
                    "type": null,
                    "amount": 750,
                    "source": "MAPPED",
                    "currency": "EUR",
                    "distance": null,
                    "unlimited": null,
                    "tax_included": true,
                    "distance_unit": null,
                    "always_payable": true,
                    "payable_locally": false,
                    "included_in_total": false
                }
            ],
            "rank": 1,
            "price": {
                "total": 211.44,
                "deposit": 211.44,
                "per_day": 70.48,
                "currency": "EUR",
                "discount": 0,
                "base_total": 178.09,
                "base_currency": "GBP",
                "drive_away_total": 211.44
            },
            "source": "rest",
            "deposit": {
                "amount": 750,
                "currency": "EUR"
            },
            "mileage": {
                "per": "PER_RENTAL",
                "type": "LIMITED",
                "unlimited": false,
                "distance_unit": "KM",
                "extra_currency": "EUR",
                "extra_per_unit": 0.36,
                "included_distance": 900
            },
            "pay_when": "PAY_NOW",
            "supplier": {
                "id": "227",
                "name": "Thrifty",
                "type": "INTEGRATED",
                "logo_url": "https://cdn2.rcstatic.com/sp/images/suppliers/227_logo_200.png"
            },
            "insurance": {
                "products": [
                    {
                        "amount": 65.09,
                        "currency": "EUR",
                        "reference": "ZURICH_FULL_INSURANCE"
                    }
                ]
            },
            "promotions": [],
            "vehicle_id": "705862196",
            "fuel_policy": {
                "type": "RETURN_SAME"
            },
            "pickup_type": "CAR_RENTAL_CENTRE",
            "depot_rating": {
                "scope": "depot",
                "average": 7.7,
                "locating": 8,
                "condition": 7.8,
                "efficiency": 7.9,
                "cleanliness": 7.3,
                "num_ratings": 133,
                "collect_time": 8,
                "drop_off_time": 8,
                "value_for_money": 7.3
            },
            "theft_excess": {
                "amount": 1150,
                "currency": "EUR"
            },
            "damage_excess": {
                "amount": 1150,
                "currency": "EUR"
            },
            "pickup_depot_id": "4490007",
            "dropoff_depot_id": "4490007",
            "proposition_type": "BR",
            "free_cancellation": true,
            "provisional_extras": [
                {
                    "type": "BABY_SEAT",
                    "price": {
                        "amount": 63.00400108548924,
                        "currency": "EUR"
                    }
                },
                {
                    "type": "ADDITIONAL_DRIVER",
                    "price": {
                        "amount": 47.1254319696132,
                        "currency": "EUR"
                    }
                }
            ],
            "credit_card_required": false,
            "special_offer_message": "Price includes winterisation fee"
        },
        {
            "car": {
                "fuel": "N/A",
                "doors": 4,
                "seats": 4,
                "groups": [],
                "car_class": "XXMR",
                "image_url": "https://cdn2.rcstatic.com/images/car_images/new_images/wildcards/ghost_car_lrg.jpg",
                "categories": [
                    "special"
                ],
                "transmission": "MANUAL",
                "make_and_model": "Wild Card",
                "suitcase_count": 2,
                "large_suitcases": 2,
                "small_suitcases": 1,
                "air_conditioning": true
            },
            "fees": [
                {
                    "per": null,
                    "name": "DAMAGE_EXCESS",
                    "type": null,
                    "amount": 1200,
                    "source": "MAPPED",
                    "currency": "EUR",
                    "distance": null,
                    "unlimited": null,
                    "tax_included": true,
                    "distance_unit": null,
                    "always_payable": true,
                    "payable_locally": false,
                    "included_in_total": false
                },
                {
                    "per": null,
                    "name": "DEPOSIT",
                    "type": null,
                    "amount": 250,
                    "source": "MAPPED",
                    "currency": "EUR",
                    "distance": null,
                    "unlimited": null,
                    "tax_included": true,
                    "distance_unit": null,
                    "always_payable": true,
                    "payable_locally": false,
                    "included_in_total": false
                }
            ],
            "rank": 3,
            "price": {
                "total": 221.78,
                "deposit": 221.78,
                "per_day": 73.93,
                "currency": "EUR",
                "discount": 0,
                "base_total": 186.8,
                "base_currency": "GBP",
                "drive_away_total": 221.78
            },
            "source": "rest",
            "deposit": {
                "amount": 250,
                "currency": "EUR"
            },
            "mileage": {
                "per": "PER_RENTAL",
                "type": "LIMITED",
                "unlimited": false,
                "distance_unit": "KM",
                "extra_currency": "EUR",
                "extra_per_unit": 0.37,
                "included_distance": 900
            },
            "pay_when": "PAY_NOW",
            "supplier": {
                "id": "17",
                "name": "Alamo",
                "type": "INTEGRATED",
                "logo_url": "https://cdn2.rcstatic.com/sp/images/suppliers/17_logo_200.png"
            },
            "insurance": {
                "products": []
            },
            "promotions": [],
            "vehicle_id": "859050623",
            "fuel_policy": {
                "type": "RETURN_SAME"
            },
            "pickup_type": "CAR_RENTAL_CENTRE",
            "depot_rating": {
                "scope": "depot",
                "average": 7.5,
                "locating": 7.7,
                "condition": 7.3,
                "efficiency": 7.2,
                "cleanliness": 8.3,
                "num_ratings": 953,
                "collect_time": 7.1,
                "drop_off_time": 8,
                "value_for_money": 7
            },
            "theft_excess": {
                "amount": 1200,
                "currency": "EUR"
            },
            "damage_excess": {
                "amount": 1200,
                "currency": "EUR"
            },
            "pickup_depot_id": "4829006",
            "dropoff_depot_id": "4829006",
            "proposition_type": "BR",
            "free_cancellation": true,
            "provisional_extras": [
                {
                    "type": "BABY_SEAT",
                    "price": {
                        "amount": 46.49509179677124,
                        "currency": "EUR"
                    }
                },
                {
                    "type": "CHILD_SEAT",
                    "price": {
                        "amount": 46.49509179677124,
                        "currency": "EUR"
                    }
                }
            ],
            "credit_card_required": false,
            "special_offer_message": "Car equipped with all-season tyres."
        }
    ],
    "filters": {
        "applied": [],
        "unknown": [],
        "requested": []
    },
    "suppliers": [
        {
            "id": "17",
            "name": "Alamo",
            "type": "INTEGRATED",
            "logo_url": "https://cdn2.rcstatic.com/sp/images/suppliers/17_logo_200.png"
        },
        {
            "id": "47",
            "name": "Avis",
            "type": "INTEGRATED",
            "logo_url": "https://cdn2.rcstatic.com/sp/images/suppliers/47_logo_200.png"
        },
        {
            "id": "137",
            "name": "Hertz",
            "type": "INTEGRATED",
            "logo_url": "https://cdn2.rcstatic.com/sp/images/suppliers/137_logo_200.png"
        }
    ],
    "no_results": null,
    "pagination": {
        "page": 1,
        "capped": false,
        "per_page": 2,
        "returned": 5,
        "offer_cap": 500,
        "total_pages": 3,
        "total_offers": 238
    },
    "search_key": "eyJkcml2ZXJzQWdlIjozMCwiZHJvcE9mZkRhdGVUaW1lIjoiMjAyNi0xMS0yN1QxMDowMDowMCIsImRyb3BPZmZMb2NhdGlvbiI6IkJFUiIsImRyb3BPZmZMb2NhdGlvblR5cGUiOiJJQVRBIiwicGlja1VwRGF0ZVRpbWUiOiIyMDI2LTExLTI0VDEwOjAwOjAwIiwicGlja1VwTG9jYXRpb24iOiJCRVIiLCJwaWNrVXBMb2NhdGlvblR5cGUiOiJJQVRBIiwicmVudGFsRHVyYXRpb25JbkRheXMiOjMsInNlcnZpY2VGZWF0dXJlcyI6WyJJTkNMVURFX05VTUJFUl9PRl9TVUlUQ0FTRVMiLCJSRVRVUk5fRVhUUkFTX1dJVEhfUFJJQ0lOR19JTl9NVUxUSV9DQVJfUkVTUE9OU0UiLCJBUFBMRV9DQVJEX0VOQUJMRUQiXSwic2lnbmF0dXJlIjoiUFNmZFFUenJMUTNaVG1aT0JqYlNXdzVTckVRdHFlWXJCNWg5R3ZGb2s3Zz0ifQ==",
    "price_range": {
        "deposits": {
            "currency": "EUR",
            "averageValue": 472
        },
        "driveAwayPrices": {
            "currency": "EUR",
            "maxValueAfterFiltering": 1027.31,
            "minValueAfterFiltering": 198.21
        }
    },
    "available_filters": {
        "deals": [
            {
                "count": 12,
                "value": "WITH_DEALS",
                "available": true,
                "price_from": 336.99
            },
            {
                "count": 226,
                "value": "WITHOUT_DEALS",
                "available": true,
                "price_from": 198.21
            }
        ],
        "mileage": [
            {
                "count": 127,
                "value": "LIMITED",
                "available": true,
                "price_from": 198.21
            },
            {
                "count": 111,
                "value": "UNLIMITED",
                "available": true,
                "price_from": 238.92
            }
        ],
        "pay_when": [
            {
                "count": 238,
                "value": "PAY_NOW",
                "available": true,
                "price_from": 198.21
            }
        ],
        "supplier": [
            {
                "count": 44,
                "value": "Alamo",
                "available": true,
                "price_from": 219.55
            },
            {
                "count": 15,
                "value": "Avis",
                "available": true,
                "price_from": 253.22
            },
            {
                "count": 14,
                "value": "Budget",
                "available": true,
                "price_from": 247.42
            }
        ],
        "fuel_type": [
            {
                "count": 229,
                "value": "N/A",
                "available": true,
                "price_from": 198.21
            },
            {
                "count": 1,
                "value": "Self-charging hybrid",
                "available": true,
                "price_from": 323.45
            },
            {
                "count": 2,
                "value": "Electric",
                "available": true,
                "price_from": 327.93
            }
        ],
        "car_category": [
            {
                "count": 20,
                "value": "small",
                "available": true,
                "categories": [
                    "economy",
                    "mini",
                    "suvs"
                ],
                "price_from": 198.21
            },
            {
                "count": 123,
                "value": "medium",
                "available": true,
                "categories": [
                    "compact",
                    "convertible",
                    "estate"
                ],
                "price_from": 199.74
            },
            {
                "count": 114,
                "value": "large",
                "available": true,
                "categories": [
                    "estate",
                    "full_size",
                    "intermediate"
                ],
                "price_from": 199.74
            }
        ],
        "transmission": [
            {
                "count": 134,
                "value": "AUTOMATIC",
                "available": true,
                "price_from": 218.47
            },
            {
                "count": 104,
                "value": "MANUAL",
                "available": true,
                "price_from": 198.21
            }
        ],
        "seat_capacity": [
            {
                "count": 211,
                "value": "UP_TO_5",
                "available": true,
                "price_from": 198.21
            },
            {
                "count": 12,
                "value": "6_TO_7",
                "available": true,
                "price_from": 378.24
            },
            {
                "count": 15,
                "value": "8_TO_9",
                "available": true,
                "price_from": 461.87
            }
        ],
        "seat_category": [
            {
                "count": 13,
                "value": "4",
                "available": true,
                "price_from": 198.21
            },
            {
                "count": 198,
                "value": "5",
                "available": true,
                "price_from": 199.74
            },
            {
                "count": 27,
                "value": "6_OR_ABOVE",
                "available": true,
                "price_from": 378.24
            }
        ],
        "deposit_bucket": [
            {
                "count": 101,
                "value": "BUCKET_1",
                "available": true,
                "price_from": 219.55
            },
            {
                "count": 83,
                "value": "BUCKET_2",
                "available": true,
                "price_from": 282.57
            },
            {
                "count": 54,
                "value": "BUCKET_3",
                "available": true,
                "price_from": 198.21
            }
        ],
        "fuel_policy_type": [
            {
                "count": 238,
                "value": "RETURN_SAME",
                "available": true,
                "price_from": 198.21
            }
        ],
        "pick_up_location": [
            {
                "count": 238,
                "value": "Berlin Brandenburg Airport Willy Brandt",
                "available": true,
                "price_from": 198.21
            }
        ],
        "proposition_type": [
            {
                "count": 238,
                "value": "BR",
                "available": true,
                "price_from": 198.21
            }
        ],
        "free_cancellation": [
            {
                "count": 238,
                "value": "WITH_FREE_CANCELLATION",
                "available": true,
                "price_from": 198.21
            }
        ],
        "car_category_detail": [
            {
                "count": 31,
                "value": "carriers",
                "available": true,
                "price_from": 359.36
            },
            {
                "count": 5,
                "value": "carriers_5",
                "available": true,
                "price_from": 359.36
            },
            {
                "count": 11,
                "value": "carriers_7",
                "available": true,
                "price_from": 378.24
            }
        ],
        "depot_location_type": [
            {
                "count": 35,
                "value": "IN_TERMINAL",
                "available": true,
                "price_from": 282.57
            },
            {
                "count": 203,
                "value": "CAR_RENTAL_CENTRE",
                "available": true,
                "price_from": 198.21
            }
        ],
        "price_per_day_bucket": [
            {
                "count": 0,
                "value": "BUCKET_1",
                "available": false
            },
            {
                "count": 96,
                "value": "BUCKET_2",
                "available": true,
                "price_from": 198.21
            },
            {
                "count": 96,
                "value": "BUCKET_3",
                "available": true,
                "price_from": 301.37
            }
        ],
        "minimum_supplier_rating": [
            {
                "count": 238,
                "value": "5_OR_ABOVE",
                "available": true,
                "price_from": 198.21
            },
            {
                "count": 238,
                "value": "6_OR_ABOVE",
                "available": true,
                "price_from": 198.21
            },
            {
                "count": 238,
                "value": "7_OR_ABOVE",
                "available": true,
                "price_from": 198.21
            }
        ],
        "insurance_inclusive_pricing": [
            {
                "count": 151,
                "value": "WITH_INSURANCE_INCLUSIVE_PRICING",
                "available": true
            },
            {
                "count": 87,
                "value": "WITHOUT_INSURANCE_INCLUSIVE_PRICING",
                "available": true
            }
        ]
    },
    "search_parameters": {
        "page": 1,
        "sort": null,
        "engine": "rentalcars_search",
        "market": "gb",
        "currency": "EUR",
        "per_page": 2,
        "drivers_age": 30,
        "rental_days": 3,
        "pickup_datetime": "2026-11-08T10:00:00",
        "pickup_location": "BER",
        "dropoff_datetime": "2026-11-11T10:00:00",
        "dropoff_location": "BER",
        "pickup_location_type": "IATA",
        "dropoff_location_type": "IATA"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is missing or invalid. No request is made upstream. Not billed. |
| 422 | Request Rejected | Rentalcars rejected the search values, for example a filter value that is not in available_filters. Not billed. |
| 503 | Rentalcars Temporarily Unavailable | Rentalcars did not answer in time. Retry after a short pause. Other 503 codes start with rentalcars_ too, for example rentalcars_invalid_response. Not billed. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
