Booking.com car rental search
Rental cars for a pick-up place and dates: car model, class and categories, price and drive-away price, pay-now or pay-later, free cancellation, seats, doors, suitcases, transmission, air conditioning, mileage, fuel policy, deposit, image, supplier with logo and rating breakdown, pick-up and drop-off desk, and every fee. aggregates holds the category, supplier and filter counts. Pages over the result set with offset/limit; pass next_offset (null at the end).
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
pickuprequired | string | Airport code (JFK) or place name. Example: JFK |
pickup_daterequired | string | Pick-up date (YYYY-MM-DD). Example: 2027-03-10 |
dropoff_daterequired | string | Drop-off date (YYYY-MM-DD). Example: 2027-03-13 |
pickup_time | string | Pick-up time (HH:MM, default 10:00). |
dropoff_time | string | Drop-off time (HH:MM, default the pick-up time). |
dropoff | string | Different drop-off airport code or place (default the pick-up place). |
pickup_latitude | number | Pick-up latitude instead of a place. |
pickup_longitude | number | Pick-up longitude instead of a place. |
driver_age | integer | Driver age (default 30). |
currency | string | Currency code (default USD). |
limit | integer | Cars per page (default 50, up to 500). |
offset | integer | Car offset. Pass next_offset from the previous response. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/booking/v1/cars?pickup=JFK&pickup_date=2027-03-10&dropoff_date=2027-03-13" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/booking/v1/cars",
params={"pickup": "JFK", "pickup_date": "2027-03-10", "dropoff_date": "2027-03-13"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/booking/v1/cars");
url.searchParams.set("pickup", "JFK");
url.searchParams.set("pickup_date", "2027-03-10");
url.searchParams.set("dropoff_date", "2027-03-13");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).