# RentalCars Scraper - Car Hire Locations, Ratings, Prices (`recordsdata/rentalcars-scraper`) Actor

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.

- **URL**: https://apify.com/recordsdata/rentalcars-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $22.00 / 1,000 location records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 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

1. Open the actor and pick a value for **What to collect**: pick-up places, supplier ratings or price calendar.
2. Add the places to cover, for example the airport code `BCN`, the country `Spain` or the place name `Heathrow`.
3. 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.
4. 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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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

```js
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

# Actor input Schema

## `mode` (type: `string`):

locations = the directory of pick-up places: airports, cities, districts, regions and countries. supplierRatings = customer ratings of car hire suppliers worldwide or per country, city or airport. priceCalendar = the cheapest pick-up days of a date window for an airport, with the estimated total price.

## `maxItems` (type: `integer`):

Stops after this many rows. Free plans are limited to 10 rows per run.

## `language` (type: `string`):

Language of place names, supplier page texts and links. Prices and scores do not depend on it.

## `searchTerms` (type: `array`):

Place names to look up, for example Barcelona or Heathrow. Each name returns up to 10 places: airports, cities, districts, regions and landmarks. In the price calendar the airports among the results are priced. Leave empty to list places by country, place type or airport code instead.

## `iataCodes` (type: `array`):

Three-letter airport codes, for example BCN or JFK. Not case sensitive. Locations: lists those airports. Supplier ratings: only the pages of those airports. Price calendar: the airports to price. A code the site does not list gives a clear error with suggestions.

## `countries` (type: `array`):

Countries by name or two-letter code, for example Spain, ES or España (English, Spanish, German, French, Italian, Portuguese and Dutch names work). Keeps only places and supplier pages of these countries. A country the site does not list gives a clear error with suggestions.

## `placeTypes` (type: `array`):

Keeps only these kinds of place or supplier page. Empty = all. Locations lists airport, city, district, region and country pages; landmarks and hotels come only from place names. Supplier ratings also has the worldwide brand pages. The price calendar always prices airports.

## `includeDetails` (type: `boolean`):

Locations by country, type or airport code only. On = reads each place page for the exact name, region, coordinates, vehicle classes and example vehicles (about one request per place). Off = a fast listing from the site map, where names are built from the page address, so they can lack accents, and there are no coordinates.

## `suppliers` (type: `array`):

Car hire brands, for example Hertz, Avis, Sixt or Europcar. Not case sensitive. Leave empty for every supplier. A brand the site does not list gives a clear error with suggestions.

## `onlyRated` (type: `boolean`):

On = skips supplier pages that have no customer rating yet (about half of them), for free. Off = also delivers those pages as rows without scores.

## `minRating` (type: `number`):

Keeps only pages whose overall score is at least this value, from 0 to 10. 0 = no filter.

## `minRatingCount` (type: `integer`):

Keeps only pages rated by at least this many customers. 0 = no filter.

## `includeBreakdown` (type: `boolean`):

Adds value for money, counter staff, pick-up speed, drop-off speed, cleanliness, vehicle condition and desk location to each rating row.

## `pickupFrom` (type: `string`):

First pick-up day of the window, written YYYY-MM-DD. Empty = 7 days from today. It cannot be in the past or more than about 264 days ahead, which is as far as the site publishes estimates.

## `pickupTo` (type: `string`):

Last pick-up day of the window, written YYYY-MM-DD. Empty = 30 days after the first day. A window can span at most 366 days; the part beyond the published horizon is cut off with a warning.

## `rentalDays` (type: `integer`):

Number of rental days the estimate covers, from 1 to 30. The drop-off date is the pick-up date plus this many days.

## `currency` (type: `string`):

Currency of the estimated prices. The site answers for these 89 currency codes; the price rows carry the code used.

## `priceDetail` (type: `string`):

cheapest = the 5 cheapest pick-up days of the window per airport, ranked, in one request. daily = one estimate for every day of the window (one request per day, up to 93 days).

## `maxPricePerDay` (type: `number`):

Skips estimates whose price per rental day is above this amount, in the currency chosen above. 0 = no filter.

## `onlyNew` (type: `boolean`):

On = skips records an earlier run of the same search already delivered, and does not charge for them. A rating row comes back when its overall score changes, a price row when its estimate changes. The memory lives in a key-value store of your account.

## `stateKey` (type: `string`):

Optional label that separates the memory of two monitors with the same filters.

## `resetSeen` (type: `boolean`):

On = clears the memory of this search before the run, so everything counts as new again.

## `maxScanSeconds` (type: `integer`):

Stops reading pages after this many seconds and keeps what was found. A strict filter (for example a minimum rating of 9.9 across every supplier page) can mean thousands of pages; this keeps the run short and cheap. Raise it to scan further.

## `maxConcurrency` (type: `integer`):

Pages read at the same time, from 1 to 5. The actor still spaces request starts at least 300 ms apart, and follows the site robots.txt.

## `proxyConfiguration` (type: `object`):

Not needed. Turn on Apify Proxy only if the log shows blocked requests. Only datacenter proxy is used; proxy groups are ignored.

## Actor input object example

```json
{
  "mode": "locations",
  "maxItems": 10,
  "language": "en",
  "searchTerms": [
    "Barcelona"
  ],
  "iataCodes": [],
  "countries": [],
  "placeTypes": [],
  "includeDetails": true,
  "suppliers": [],
  "onlyRated": true,
  "minRating": 0,
  "minRatingCount": 0,
  "includeBreakdown": true,
  "rentalDays": 5,
  "currency": "USD",
  "priceDetail": "cheapest",
  "maxPricePerDay": 0,
  "onlyNew": false,
  "stateKey": "",
  "resetSeen": false,
  "maxScanSeconds": 300,
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all 46 fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "searchTerms": [
        "Barcelona"
    ],
    "iataCodes": [],
    "countries": [],
    "placeTypes": [],
    "suppliers": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/rentalcars-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "searchTerms": ["Barcelona"],
    "iataCodes": [],
    "countries": [],
    "placeTypes": [],
    "suppliers": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/rentalcars-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "searchTerms": [
    "Barcelona"
  ],
  "iataCodes": [],
  "countries": [],
  "placeTypes": [],
  "suppliers": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/rentalcars-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/rentalcars-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pVBLdlyPwcx1rSXaB/builds/3Cnn3SKLxo4y4fTw7/openapi.json
