Get one offer from a search with its pickup and dropoff depot. Rentalcars has no route for a single offer, so this endpoint runs the search again and returns the offer with the matching vehicle_id. Send the same search parameters you used for the search. Offers change over time, so an offer can be gone on a later call. Then the endpoint returns 404 and does not bill. One search returns at most 500 offers. The pagination object shows total_offers, offer_cap and capped. The market (cor) and the currency decide the prices. The response echoes both values in the market object. Scrappa is not affiliated with Rentalcars.com. This is an unofficial API.
Run this endpoint
Endpoint
Parameters
Start with the required fields, then add optional filters only when your use case needs them.
Runnable path
4 required parameters needed before sending a request.
6 optional filters available.
string
Required
Pickup place. A 3-letter IATA airport code or "lat,lng". Example: BER.
BER
string
Required
Pickup date in Y-m-d format. It must not be in the past. Example: 2026-12-01.
2026-12-01
string
Required
Dropoff date in Y-m-d format. It must not be before the pickup date.
2026-12-04
string
Required
The vehicle_id of an offer from the search response.
859050623
string
Optional
Dropoff place. Same format as the pickup place. Default: the pickup place.
example
string
Optional
Pickup time in H:i format. Default: 10:00.
example
string
Optional
Dropoff time in H:i format. Default: 10:00.
example
integer
Optional
Age of the driver, from 18 to 99. Default: 30.
10
string
Optional
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.
example
string
Optional
Currency code for prices. Default: EUR.
USD
Response Schema
Example response fields are illustrative; inspect the JSON before integrating.
Example response fields
Scan these fields before integrating.
meta
offer
market
search_key
pickup_depot
dropoff_depot
search_parameters
{
"meta": {
"attempts": 1,
"duration_ms": 3,
"endpoint_family": "offer"
},
"offer": {
"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."
},
"market": {
"country": "GB",
"currency": "EUR"
},
"search_key": "eyJkcml2ZXJzQWdlIjozMCwiZHJvcE9mZkRhdGVUaW1lIjoiMjAyNi0xMS0yN1QxMDowMDowMCIsImRyb3BPZmZMb2NhdGlvbiI6IkJFUiIsImRyb3BPZmZMb2NhdGlvblR5cGUiOiJJQVRBIiwicGlja1VwRGF0ZVRpbWUiOiIyMDI2LTExLTI0VDEwOjAwOjAwIiwicGlja1VwTG9jYXRpb24iOiJCRVIiLCJwaWNrVXBMb2NhdGlvblR5cGUiOiJJQVRBIiwicmVudGFsRHVyYXRpb25JbkRheXMiOjMsInNlcnZpY2VGZWF0dXJlcyI6WyJJTkNMVURFX05VTUJFUl9PRl9TVUlUQ0FTRVMiLCJSRVRVUk5fRVhUUkFTX1dJVEhfUFJJQ0lOR19JTl9NVUxUSV9DQVJfUkVTUE9OU0UiLCJBUFBMRV9DQVJEX0VOQUJMRUQiXSwic2lnbmF0dXJlIjoiUFNmZFFUenJMUTNaVG1aT0JqYlNXdzVTckVRdHFlWXJCNWg5R3ZGb2s3Zz0ifQ==",
"pickup_depot": {
"id": "4829006",
"city": "Berlin",
"iata": "BER",
"name": "Berlin Brandenburg Airport Willy Brandt",
"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
},
"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": "17",
"country_code": "DE",
"pickup_instructions": null,
"drop_off_instructions": null,
"distance_from_search_km": null
},
"dropoff_depot": {
"id": "4829006",
"city": "Berlin",
"iata": "BER",
"name": "Berlin Brandenburg Airport Willy Brandt",
"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
},
"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": "17",
"country_code": "DE",
"pickup_instructions": null,
"drop_off_instructions": null,
"distance_from_search_km": null
},
"search_parameters": {
"engine": "rentalcars_offer",
"market": "gb",
"currency": "EUR",
"vehicle_id": "859050623",
"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
Handle these documented responses before retrying or showing customer-facing failures.
Validation Error
A parameter is missing or invalid. No request is made upstream. Not billed.
{
"errors": {
"pickup_location": [
"A pick-up location is required: an airport IATA code or \"latitude,longitude\"."
]
},
"message": "A pick-up location is required: an airport IATA code or \"latitude,longitude\"."
}Request Rejected
Rentalcars rejected the search values, for example a filter value that is not in available_filters. Not billed.
{
"meta": {
"attempts": 1,
"billable": false,
"retryable": false,
"duration_ms": 900,
"endpoint_family": "offer"
},
"error": {
"code": "rentalcars_request_rejected",
"message": "Rentalcars rejected the request. Check the parameters."
}
}Offer Not Found
No offer matches the vehicle_id or the supplier in this search and market. Not billed.
{
"meta": {
"attempts": 1,
"billable": false,
"retryable": false,
"duration_ms": 900,
"endpoint_family": "offer"
},
"error": {
"code": "rentalcars_offer_not_found",
"message": "No matching offer was found."
}
}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.
{
"meta": {
"attempts": 1,
"billable": false,
"retryable": true,
"duration_ms": 900,
"endpoint_family": "offer"
},
"error": {
"code": "rentalcars_upstream_unavailable",
"message": "Rentalcars is temporarily unavailable. Please retry."
}
}Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Try It Live
Test this endpoint in our interactive playground with real data.