Expedia Car Rentals Scraper avatar

Expedia Car Rentals Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Expedia Car Rentals Scraper

Expedia Car Rentals Scraper

Scrape rental car offers from Expedia by location and dates. Returns vehicle class, model, vendor, per-day and total price, pickup location, ratings and a booking deeplink for every offer. Search by Expedia URL, region ID, or free-text place name.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

4

Monthly active users

11 hours ago

Last modified

Share

Scrape rental-car offers from Expedia by location and dates. One result = one rental-car offer.

Why use this actor

  • No account, no login, and no API key required
  • Search by place name (e.g. "Los Angeles Airport"), by Expedia region ID, or by pasting a full Expedia car-search link
  • Every offer: vehicle class & model, rental company, per-day and total price, pickup location, rating, badges, and a direct booking link
  • Set your own currency and language
  • Stable JSON output suitable for pipelines, price tracking, or travel analytics

How it works

  1. Tell the actor where and when: one or more pickup locations plus the pickup and drop-off dates and times (or just paste Expedia car-search links).
  2. The actor looks up each location and collects the available rental-car offers for those dates.
  3. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You don't manage scrapers, browsers, or retries — the actor handles all of that.

Input

{
"locations": ["Los Angeles Airport", "4933443"],
"pickUpDate": "2026-06-25",
"dropOffDate": "2026-06-26",
"pickUpTime": "1030AM",
"dropOffTime": "1030AM",
"currency": "USD",
"locale": "en_US",
"maxResultsPerSearch": 0,
"concurrency": 3,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
FieldTypeDescription
locationsarrayPickup locations — place names ("Paris, France") or numeric Expedia region IDs. Combined with the dates/times below.
pickUpDate / dropOffDatestringDates in YYYY-MM-DD form, applied to all locations.
pickUpTime / dropOffTimestringTimes like 1030AM or 0230PM. Default 1030AM.
startUrlsarrayAlternative to locations: full Expedia /carsearch links (the actor reads the location and dates from each link).
currencystringPrice currency (e.g. USD, EUR, GBP). Default USD.
localestringLanguage/region (e.g. en_US, de_DE). Default en_US.
maxResultsPerSearchintegerCap offers per search. 0 = no cap (all offers at the location).
pageCountintegerHow many offers to request per search. Default 100 (captures essentially all — car inventory per location is small).
concurrencyintegerHow many searches to run in parallel. Default 3.
proxyConfigurationobjectProxy settings. A residential pool is recommended for reliable results.

Output

{
"_input": "Jakarta, Indonesia",
"_source": "S1-graphql",
"_scrapedAt": "2026-06-11T15:33:29Z",
"recordType": "CAR_OFFER",
"searchRegionId": "4933443",
"searchPickUpDate": "6/25/2026",
"searchDropOffDate": "6/26/2026",
"vehicle": {
"category": "Economy",
"description": "Kia Rio Hatchback or similar",
"image": { "url": "https://mediaim.expedia.com/cars/2/f5297e42-....jpg", "description": "Economy" },
"attributes": [
{ "text": "5" }, { "text": "5 Doors" }, { "text": "Air Conditioning" },
{ "text": "Unlimited mileage" }, { "text": "Automatic" }
]
},
"vendor": { "image": { "description": "ACE Rent A Car", "url": "https://mediaim.expedia.com/cars/logos/AC.png" } },
"priceSummary": {
"lead": { "price": { "amount": 48.84, "formatted": "$49", "currencyInfo": { "code": "USD" } }, "accessibility": "$49 per day" },
"total": { "price": { "amount": 54.21, "formatted": "$54", "currencyInfo": { "code": "USD" } }, "qualifier": "total" }
},
"tripLocations": { "pickUpLocation": { "text": "Counter and car in terminal", "locationId": "CGK-T-2-002" }, "dropOffLocation": null },
"review": { "rating": "0%", "totalCount": null },
"offerBadges": [ { "text": "Great Deal", "theme": "DEAL_GENERIC" } ],
"infositeURL": { "relativePath": "/carsearch/details?date1=6%2F25%2F2026&....&dpln=4933443" }
}
FieldTypeDescription
recordTypestringAlways CAR_OFFER.
vehicleobjectCategory, model description, image, and attributes (seats, doors, transmission, mileage, A/C).
vendorobjectRental company name and logo.
priceSummaryobjectlead = per-day price, total = full rental price, with currency.
tripLocationsobjectPickup (and drop-off) counter/location details.
reviewobjectRating and review count for the offer, when available.
offerBadgesarrayDeal badges shown on the offer (e.g. "Great Deal").
infositeURLobjectDirect booking link path on Expedia for this offer.

Fields are passed through exactly as Expedia provides them, so new fields flow through without changes. An offer/search that can't be read returns an _error record instead of being dropped.

Notes and limits

  • Expedia heavily throttles automated car-search requests. Expedia strictly limits how often car availability can be requested from outside a normal browser, so live offers are not guaranteed on every run. When a request is throttled, the actor does not fail silently — it emits a clearly marked status record for that search so you always know what happened, instead of returning an empty dataset.
  • To improve your chances of live results, use a residential proxy and let the actor apply its automatic retries. Running fewer locations at a time (low concurrency) also helps.
  • Every run always produces at least one record: either car offers or a status record explaining why a search returned none — so an empty output never goes unexplained.
  • Car inventory per location is small (typically 10–50 offers); one search captures essentially all of them, so there are no extra pages to walk.
  • Prices, badges and availability are point-in-time and change frequently.

Part of an Expedia suite — one actor per travel type: Cars, Stays, Flights, Packages, Cruises.