POST /api/momondo/cars/search
Price: 20 credits
Search momondo car-hire quotes for a pick-up location over a pick-up/drop-off date and time range. Returns ranked cars with the vehicle name and class, seats, bags, transmission, air conditioning and fuel type, the cheapest total price, per-provider booking offers with deeplinks, mileage and fuel policies, free cancellation, the rental agency and the pick-up distance to the city centre. Optional filters narrow the results by car class, rental agency, fuel type, payment type, passenger capacity, max price and automatic-only.
Search car-hire quotes for a pick-up location (city or airport name/code) over a pickup_date..dropoff_date range (with pickup_hour/dropoff_hour). Optionally filter by car_classes, vendors, fuel_types, payment_types, passenger_capacity, max_price and automatic_only. Returns ranked cars with id, car_name, car_class, sip_code, seats, bags, transmission, has_air_conditioning, fuel_type, image, agency, price (cheapest total), currency, pickup_distance and offers (per-provider day/total price, mileage, fuel_policy, free cancellation and booking url).
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)location string required — Pick-up location (city or airport name/code) (examples: "New-York"; minLength: 2)pickup_date string required — Pick-up date (format: date; examples: "2026-08-15")dropoff_date string required — Drop-off date (format: date; examples: "2026-08-18")pickup_hour integer — Pick-up hour (0-23) (default: 10; min: 0; max: 23)dropoff_hour integer — Drop-off hour (0-23) (default: 10; min: 0; max: 23)max_price number nullable — Maximum total price (>: 0)car_classes array — Restrict to these car classes (default: []; one of: "small", "medium", "large", "suv", "van", "luxury", "special", "commercial", "pickup_truck", "convertible")vendors array — Restrict to these rental agencies (default: []; one of: "ace", "alamo", "avis", "budget", "dollar", "drivo", "enterprise", "hertz", "national", "payless", "priceless", "rent_a_wreck", "sixt", "thrifty", "turo")fuel_types array — Restrict to these fuel types (default: []; one of: "hybrid", "electric", "gas", "other")payment_types array — Restrict to these payment types (default: []; one of: "pay_now", "partial", "pay_at_counter")passenger_capacity string nullable — Minimum passenger capacity bucket (one of: "seats_2_4", "seats_5_6", "seats_7_plus")automatic_only boolean — Only automatic-transmission cars (default: false)sort string — Sort order (default: "cheapest"; one of: "cheapest", "distance", "best")count integer required — Max number of cars to return (min: 1)@type string (default: "MomondoCar")id string requiredcar_name string nullablecar_class string nullablesip_code string nullableseats integer nullablebags integer nullabletransmission string nullablehas_air_conditioning boolean nullablefuel_type string nullableimage string nullableagency string nullableprice number nullablecurrency string nullablepickup_distance string nullableoffers array (default: [])@type string (default: "MomondoCarOffer")provider_code string nullableprovider_name string nullableday_price number nullabletotal_price number nullablecurrency string nullablemileage string nullableis_free_cancellation boolean nullablefuel_policy string nullablepayment_type string nullablescore number nullablebooking_url string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — No car-hire quotes found for the given location and dates Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.