RentalCars Scraper - Car Hire Locations, Ratings, Prices
Pricing
from $22.00 / 1,000 location records
RentalCars Scraper - Car Hire Locations, Ratings, Prices
Extract rentalcars.com car hire data: about 16,900 place pages with airport codes and coordinates, supplier ratings with 7 sub-scores and opening hours, and a pick-up date price calendar in 89 currencies. Plain requests, no proxy, no login. Export to CSV, Excel, JSON or XML.
Pricing
from $22.00 / 1,000 location records
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share

RentalCars Scraper: Car Hire Places, Supplier Ratings and Price Calendar
RentalCars Scraper is an Apify Actor that extracts public car hire data from rentalcars.com. It returns the directory of pick-up places (about 17,000 airports, cities, districts, regions and countries with airport codes and coordinates), the customer ratings of car hire suppliers with seven sub-scores and opening hours, and estimated rental prices per airport and pick-up day in 89 currencies. No login, proxy or browser is needed. Pay per result.
Export the result as JSON, CSV, Excel, XML or HTML, or read it through the Apify API. The actor does not return live per-car offers. rentalcars.com protects its offer search with a bot challenge, so this actor reads only the public places, ratings and price calendar that the site serves to any visitor.
What can you scrape from rentalcars.com?
- Pick-up places (
location): every place page of the site map, or the places that match a name. Each row has the place type, airport code, city, region, country, coordinates, the suppliers listed there and, for airports and cities, the vehicle classes with example models. The site lists 16,937 place pages and 1,841 airports. - Supplier ratings (
supplier-rating): one row per supplier page, which is a supplier at an airport, in a city or in a country, or a supplier worldwide. Each row has the overall score, the number of ratings, seven sub-scores, the depot opening hours and the rated location. The site has 14,237 supplier pages and 142 suppliers. - Price calendar (
price-calendar): for each airport, the five cheapest pick-up days of a date window, or one estimate for every day of it. Each row has the pick-up and drop-off dates, the estimated total price, the price per day, the currency and a link to the matching search on the site.
Why use this RentalCars scraper?
- Three kinds of data in one actor: choose places, ratings or prices with one setting called What to collect.
- Seven sub-scores per supplier: value for money, counter staff, pick-up speed, drop-off speed, cleanliness, vehicle condition and desk location.
- Real filters: place types, countries, airport codes, suppliers, minimum overall score, minimum number of ratings and a maximum price per day, applied before a row is counted.
- Ten languages: place names, countries and supplier texts in English, Spanish, German, French, Italian, Portuguese, Dutch, Polish, Swedish or Japanese.
- Monitor mode: run the same search on a schedule and receive only new or changed records.
- Forgiving input: a typo returns a free error row that names the closest match.
How to scrape rentalcars.com in four steps
- Open the actor and pick a value for What to collect: pick-up places, supplier ratings or price calendar.
- Add the places to cover, for example the airport code
BCN, the countrySpainor the place nameHeathrow. - For the price calendar, set the first and last pick-up day, the rental length and the currency. Leave them empty to price the 30 days that start 7 days from today.
- Click Start, then open the Overview tab or export the dataset.
Input
The form has 25 fields plus an optional proxy setting that is not needed. All of them:
| Field | Type | Default | Meaning |
|---|---|---|---|
mode | string | locations | What to collect: locations, supplierRatings or priceCalendar |
maxItems | integer | 50 | Maximum rows (free plans: 10) |
language | string | en | Language of place names and supplier page texts |
searchTerms | array | empty | Place names to look up; each returns up to 10 places |
iataCodes | array | empty | Three-letter airport codes such as BCN or JFK |
countries | array | empty | Country names or two-letter codes such as Spain or ES |
placeTypes | array | all | Airport, city, district, region, country, landmark or supplier brand |
includeDetails | boolean | true | Locations: read each place page for coordinates and vehicle classes |
suppliers | array | all | Brands such as Hertz, Avis, Sixt or Europcar |
onlyRated | boolean | true | Skip supplier pages without a rating |
minRating | number | 0 | Minimum overall score from 0 to 10 |
minRatingCount | integer | 0 | Minimum number of customer ratings |
includeBreakdown | boolean | true | Add the seven sub-scores to rating rows |
pickupFrom / pickupTo | string | 7 days ahead / 30 days later | First and last pick-up day of the price window |
rentalDays | integer | 5 | Rental length from 1 to 30 days |
currency | string | USD | One of 89 currency codes |
priceDetail | string | cheapest | cheapest (5 cheapest days) or daily (every day) |
maxPricePerDay | number | 0 | Skip estimates above this amount per day |
onlyNew | boolean | false | Monitor mode: skip records already delivered |
stateKey | string | empty | Name that separates two monitors with the same filters |
resetSeen | boolean | false | Forget what was seen before this run |
maxScanSeconds | integer | 300 | Longest time spent reading pages |
maxConcurrency | integer | 3 | Pages read at the same time, 1 to 5 |
Input for the cheapest pick-up days at Barcelona airport, in euros:
{"mode": "priceCalendar","iataCodes": ["BCN"],"pickupFrom": "2026-11-20","pickupTo": "2026-12-20","rentalDays": 5,"currency": "EUR","maxItems": 5}
What data do you get from rentalcars.com?
| Field | Description |
|---|---|
recordType | location, supplier-rating or price-calendar |
recordId, name, placeType | Stable id, name and kind of the place |
iata, city, region, country, countryCode | Airport code and the place hierarchy |
latitude, longitude | Coordinates of the place |
vehicleClasses, exampleVehicles | Vehicle classes and example models offered there |
listedSuppliers, listedSupplierCount | Suppliers listed for the place |
supplierName, supplierSlug, imageUrl, locationName | The rated supplier, its logo and the rated location |
overallScore, ratingCount | Overall customer score out of 10 and number of ratings |
valueForMoneyScore, counterStaffScore, pickupSpeedScore, dropoffSpeedScore | Sub-scores |
cleanlinessScore, vehicleConditionScore, deskLocationScore | More sub-scores |
openingHours, depotCount | Depot opening hours and number of depots |
pickupDate, dropoffDate, rentalDays | The rental the estimate covers |
currency, estimatedTotalPrice, estimatedPricePerDay, priceRank | Estimated price and its rank among the cheapest days |
windowStart, windowEnd, searchUrl | The window searched and a link to the same search on the site |
breadcrumb, url, language, source, scrapedAt | Page path, address, language, data source and time |
The dataset has 46 fields in total, and each record type fills only the fields that apply to it, so no row carries empty columns. The Overview view shows the key fields, and there is one view per kind of row.
Sample output
A supplier rating row:
{"imageUrl": "https://cdn2.rcstatic.com/images/suppliers/flat/hertz_logo_lrg.gif","recordType": "supplier-rating","recordId": "airport:ES:BCN|hertz","name": "Barcelona El Prat Airport","placeType": "airport","iata": "BCN","city": "Barcelona","region": "Catalonia","country": "Spain","countryCode": "ES","latitude": 41.29690170288086,"longitude": 2.0783300399780273,"supplierName": "Hertz","supplierSlug": "hertz","locationName": "Barcelona Airport","overallScore": 7.7,"ratingCount": 1801,"valueForMoneyScore": 7,"counterStaffScore": 7.4,"pickupSpeedScore": 6.6,"dropoffSpeedScore": 8.9,"cleanlinessScore": 8.4,"vehicleConditionScore": 8.1,"deskLocationScore": 8.1,"url": "https://www.rentalcars.com/en/airport/es/bcn/hertz/","language": "en","source": "page","scrapedAt": "2026-10-23T22:22:36.890Z"}
A price calendar row:
{"recordType": "price-calendar","recordId": "price:BCN:2026-11-27:5:EUR","name": "Barcelona El Prat Airport","placeType": "airport","iata": "BCN","city": "Barcelona","country": "Spain","countryCode": "ES","pickupDate": "2026-11-27","dropoffDate": "2026-12-02","rentalDays": 5,"currency": "EUR","estimatedTotalPrice": 26.85,"estimatedPricePerDay": 5.37,"priceRank": 1,"windowStart": "2026-10-30","windowEnd": "2026-11-29","language": "en","source": "price-calendar","scrapedAt": "2026-10-23T22:22:41.474Z"}
Use with AI agents (MCP)
Connect the Apify MCP server to Claude, Cursor or another MCP client and this actor appears as a tool: https://mcp.apify.com?tools=RecordsData/rentalcars-scraper. Example prompt: "Which car hire supplier has the best cleanliness score at Barcelona airport, and which pick-up days in December are cheapest?"
Run it from code
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('RecordsData/rentalcars-scraper').call({mode: 'supplierRatings',iataCodes: ['BCN'],minRatingCount: 100,maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((r) => `${r.supplierName}: ${r.overallScore} (${r.ratingCount} ratings)`));
How much does the RentalCars Scraper cost?
Pay per result, no monthly fee. Each row type is its own event, at these prices in USD per result on the Free tier.
| Event | Charged for | Per result | Per 1,000 |
|---|---|---|---|
location-record | One pick-up place with its hierarchy, coordinates, vehicle classes and listed suppliers | $0.022 | $22.00 |
supplier-rating-record | One supplier page with the overall score, the seven sub-scores and the opening hours | $0.044 | $44.00 |
price-calendar-record | One estimated price for an airport and a pick-up day, with the total and the price per day | $0.02933 | $29.33 |
Worked examples: 1,000 pick-up places cost $22.00, 1,000 supplier pages cost $44.00 and 1,000 price estimates cost $29.33. A 100-row price calendar run costs about $2.93. Error rows, empty searches and records skipped by monitor mode are never charged. Platform usage of a 3-row run was about $0.0001.
How does it compare with other rentalcars.com scrapers?
Read on 2026-10-23: the main dedicated actor for the site is studio-amba/rentalcars-search-api, which had 280 runs and 0 users in the last 30 days. It declares 17 fields. This actor returns 46.
| RentalCars Scraper | studio-amba/rentalcars-search-api | |
|---|---|---|
| Data | Places, supplier ratings, price calendar | Car offers with supplier and car name |
| Fields | 46 | 17 |
| Seven sub-scores | Yes | No |
| Coordinates and airport codes | Yes | No |
| Opening hours | Yes | No |
| Vehicle class, seats, doors, bags, fuel policy, mileage policy | No | Yes |
| Rates | Estimate per airport and day | Live offer total and daily rate |
| Languages | 10 | Not listed |
| Monitor mode | Yes | Not listed |
| Cost | $22.00 to $44.00 per 1,000 rows | Listed on their own page |
Choose this actor for the place directory, supplier benchmarks and cheapest-day estimates. Choose a rival when you need live per-car offers with seats, doors and fuel policy. This actor does not return them, because the offer search of the site answers cloud visitors with a bot challenge.
Is it legal to scrape rentalcars.com? Limits and responsible use
The actor reads public pages and public endpoints of rentalcars.com that any visitor can open. It does not log in, solve captchas or use a browser. It follows the site robots.txt, keeps at least 300 ms between request starts and reads at most 5 pages at once. The search results page is disallowed there and is not read. The terms of use of the site apply to your use of the data, so review them before commercial use. Rows contain no data about renters, drivers or private persons, only places, companies and rates.
Python client, Make, Zapier, n8n and Apify schedules also work.
Frequently Asked Questions
What can I scrape from rentalcars.com?
The directory of pick-up places with airport codes and coordinates, the customer ratings of car hire suppliers with seven sub-scores, and an estimated price calendar per airport. Pick the kind with What to collect, then read the dataset in the Overview tab or export it as JSON, CSV or Excel.
Does it return live car offers?
No. The offer search of rentalcars.com answers cloud servers with a bot challenge, and its results page is disallowed by robots.txt. The actor does not work around it. For rates you get an estimate of the cheapest pick-up days per airport, taken from a public endpoint of the site.
Do I need a proxy, a login or an API key?
No. The actor makes plain HTTP requests to public pages and needs no proxy, no browser and no rentalcars.com account. You only need an Apify account. The free Apify plan returns up to 10 items per run, which is enough to test each mode.
How accurate are the price estimates?
A calendar row is the estimate the site publishes for an airport, a pick-up day and a rental length. It is not a quote or a booking, and live rates can differ. In a check, a row matched a later direct call of the site endpoint exactly. Estimates exist for airports only, up to about 264 days ahead.
How do I cover every place or every supplier?
Leave the filters empty and raise Maximum items. The actor then walks the site map, which lists 16,937 places and 14,237 supplier pages. The place search of the site returns at most 10 places per name, so for full coverage use countries, place types and airport codes instead of names.
What is the difference between the fast and the detailed place list?
With Read each place page on, the actor reads one page per place for the exact name, region, coordinates and vehicle classes. With it off, you get a fast list from the site map where names are built from the page address, so they can lack accents, and there are no coordinates.
Why are some supplier pages missing?
About half of the supplier pages have no customer rating yet. Only pages with a rating is on by default and skips them for free. Turn it off to receive those pages as rows without scores.
How does monitor mode work?
Switch on Only new or changed records and run the same search on a schedule. A rating row comes back when its overall score changes, and a price row when its estimate changes. Skipped records are not charged. The memory lives in a key-value store of your account, and Forget what was seen clears it.
What happens when the search finds nothing or the input is wrong?
A search with no hits, an unknown supplier, country or airport code, or a past date ends as succeeded with one free error row that explains the problem in the error field and suggests the closest match. Error rows are never charged.
How long does a run take?
In a cloud test on 2026-10-23 the actor completed 18 of 18 small runs (3 rows each), with a median of 3.9 seconds and the slowest at 25.1 seconds. A long scan with a strict filter stops after Longest scan (300 seconds by default) and keeps what it found.
What does a run bill?
The actor is billed per result, with a separate event for each kind of row: $0.022 per place, $0.044 per supplier page and $0.02933 per price estimate on the Free tier. Error rows and empty searches are never charged. Platform usage of a 3-row run was about $0.0001.
Support
Questions, a missing field or a feature request: contact.punkrecordsdata@gmail.com. Reviews on the actor page help other people find it.
This actor is an independent tool and is not affiliated with rentalcars.com or Booking Holdings.
Last updated: 2026-10-24