# CarRentals.com Scraper (`shahidirfan/carrentals-com-scraper`) Actor

Extract live car rental pricing, availability, and vehicle details from CarRentals.com. Monitor rates across locations, compare fleet options, and build datasets for price analysis, travel research, or competitive intelligence.

- **URL**: https://apify.com/shahidirfan/carrentals-com-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Travel, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 50.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## CarRentals.com Car Rental Scraper

Extract comprehensive car rental data from CarRentals.com with ease. Collect detailed pricing, availability, vehicle information, pickup and dropoff context, and booking-message signals across any location worldwide. Perfect for market research, price monitoring, and competitive analysis.

### Features

- **Global Coverage** — Scrape car rental data from any location supported by CarRentals.com
- **Deep Vehicle Insights** — Extract category, description, equipment, fuel details, and vendor information
- **Pricing Context** — Collect lead and total amounts, formatted prices, price badges, and reference-price context
- **Booking Signals** — Capture cancellation, payment, and benefit messaging that helps compare offers faster
- **Flexible Inputs** — Start from any CarRentals.com search URL
- **Automated Pagination** — Collect your desired amount of results automatically without manual intervention

### Use Cases

#### Price Monitoring
Track rental car pricing trends across different dates, locations, and vendors. Build historical datasets to identify the best times to book or adjust your own pricing strategies.

#### Competitor Analysis
Keep an eye on what vehicles your competitors are offering and at what price points. Understand inventory distribution across major rental companies like Avis, Hertz, Enterprise, and Budget.

#### Market Research
Build comprehensive datasets for travel tech platforms, aggregators, or business intelligence tools. Analyze which vehicle types are most popular or available in specific regions.

---

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrl` | String | Yes | — | The CarRentals.com search URL to start scraping from |
| `results_wanted` | Integer | No | `20` | Maximum number of vehicle results to collect |
| `max_pages` | Integer | No | `5` | Maximum number of pages to scroll through |
| `proxyConfiguration` | Object | No | `RESIDENTIAL` | Proxy settings for reliable scraping |

---

### Output Data

Each item in the dataset contains:

| Field | Type | Description |
|-------|------|-------------|
| `offerId` | String | Unique identifier for the rental offer |
| `offerHeading` | String | Main headline shown for the offer |
| `vendorName` | String | The rental company providing the car |
| `vendorLogo` | String | Vendor logo image URL |
| `vehicleCategory` | String | The category or type of the vehicle |
| `vehicleDescription` | String | Marketing description of the vehicle listing |
| `vehicleImage` | String | Vehicle image URL |
| `vehicleAttributes` | String | Core specs such as doors, transmission, or mileage |
| `vehicleFeatures` | String | Extra vehicle features exposed for the offer |
| `fuelInfo` | String | Fuel-related details when available |
| `ecoFriendlyFuel` | String | Eco-fuel message when present |
| `badges` | String | Listing badges such as deal quality |
| `discountBadges` | String | Discount-related badges shown on the offer |
| `priceBadges` | String | Price badges attached to the offer |
| `rating` | String | Vendor rating value |
| `ratingCount` | String | Human-readable vendor rating count |
| `ratingTotalCount` | Number | Numeric count of vendor ratings |
| `ratingSuperlative` | String | Vendor rating summary label |
| `pickUpLocation` | String | Pickup location label |
| `pickUpLocationId` | String | Pickup location identifier |
| `pickUpAddress` | String | Pickup location sub-information |
| `dropOffLocation` | String | Drop-off location label |
| `dropOffLocationId` | String | Drop-off location identifier |
| `dropOffAddress` | String | Drop-off location sub-information |
| `priceLeadAmount` | Number | Highlighted lead price shown in the listing |
| `priceLeadFormatted` | String | Formatted lead price text |
| `priceTotalAmount` | Number | Total price for the rental period |
| `priceTotalFormatted` | String | Formatted total price text |
| `priceCurrency` | String | Currency of the price |
| `priceAccessibility` | String | Accessibility-friendly price explanation |
| `priceReferenceAmount` | Number | Reference price amount when displayed |
| `priceReferenceQualifier` | String | Reference price qualifier text |
| `priceReferenceAdditionalInfo` | String | Additional context for the reference price |
| `paymentInfo` | String | Payment timing summary |
| `paymentInfoAdditional` | String | Extra payment context |
| `cancellationMessage` | String | Primary cancellation message |
| `cancellationMessages` | String | Combined cancellation and payment messages |
| `additionalBenefits` | String | Extra offer benefits highlighted in the listing |
| `reserveButtonText` | String | Reserve CTA label |
| `infositeUrl` | String | CarRentals details URL for the offer |
| `selectedAccessories` | String | Selected accessories tied to the offer |
| `rewardPointsSelection` | String | Reward-points selection context |
| `continuationContextualId` | String | Internal continuation identifier useful for pagination continuity |
| `footerMessage` | String | Footer message displayed on the card |
| `scraped_at` | String | Timestamp when the record was collected |

---

### Usage Examples

#### Basic Extraction

Extract up to 20 car rental listings from a specific search URL:

```json
{
    "startUrl": "https://www.carrentals.com/carsearch?paandi=true&fdrp=1&styp=2&dagv=1&subm=1&locn=Los%20Angeles,%20California,%20United%20States%20of%20America&dpln=178280&date1=5/1/2026&date2=5/3/2026&crfrr=defaultFlex&SearchType=Place",
    "results_wanted": 20
}
````

#### Deep Market Analysis

Collect a large sample of listings (up to 200) by scrolling through multiple pages:

```json
{
    "startUrl": "https://www.carrentals.com/carsearch?paandi=true&fdrp=1&styp=2&dagv=1&subm=1&locn=London,%20England,%20United%20Kingdom&date1=6/1/2026&date2=6/14/2026",
    "results_wanted": 200,
    "max_pages": 15
}
```

***

### Sample Output

```json
{
    "offerId": "AQpJoP8-pKlZqilSbi05Xti7avjCnI7in9MF41jMKsvonKK6QZXmTAyDfkhwZpNmObMTsJbVdRuwOFEdut0JgwlP19eaOAinmPeBANksirnVM",
    "offerHeading": "Midsize SUV",
    "vehicleCategory": "Midsize SUV",
    "vehicleDescription": "Nissan Rogue or similar",
    "vendorName": "Hertz",
    "vehicleFeatures": "Bluetooth, Backup camera",
    "priceLeadFormatted": "$31.42",
    "priceLeadAmount": 31.42,
    "priceTotalFormatted": "$75.41",
    "priceTotalAmount": 75.41,
    "priceCurrency": "USD",
    "paymentInfo": "Pay at pick-up",
    "cancellationMessages": "Cancellation available",
    "additionalBenefits": "Unlimited mileage",
    "pickUpLocationId": "LAX-C-40-010",
    "dropOffLocationId": "LAX-C-40-010",
    "badges": "Great Deal",
    "scraped_at": "2026-04-24T08:12:34.567Z"
}
```

***

### Tips for Best Results

#### Optimize Collection Size

- Start small for testing (20-50 results) to ensure the URL parameters are correct.
- Increase `results_wanted` and `max_pages` for production runs.

#### Verify Search URLs

- Always generate the `startUrl` by manually performing a search on CarRentals.com first.
- Ensure the dates, location, and filters applied in the browser are present in the URL you copy.

***

### Integrations

Connect your data with:

- **Google Sheets** — Export for analysis and team sharing
- **Airtable** — Build searchable travel databases
- **Slack** — Get notifications on price drops
- **Make** — Create automated data pipelines
- **Zapier** — Trigger actions based on new listings

#### Export Formats

Download data in multiple formats:

- **JSON** — For developers and API integrations
- **CSV** — For spreadsheet analysis
- **Excel** — For business reporting
- **XML** — For system integrations

***

### Frequently Asked Questions

#### How many vehicles can I collect?

You can collect as many vehicles as are displayed for your specific search criteria. Adjust `results_wanted` and `max_pages` to control the volume.

#### Does it handle different currencies?

Yes! The scraper automatically extracts the currency defined by the CarRentals.com localization based on your search URL and proxies.

#### Will it bypass anti-bot systems?

Yes, the scraper uses advanced fingerprinting and residential proxies to ensure reliable data collection without interruptions.

***

### Support

For issues, feature requests, or custom scraping solutions, contact support through the Apify Console.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/schedules)

***

### Legal Notice

This actor is designed for legitimate data collection purposes. Users are responsible for ensuring compliance with website terms of service and applicable laws. Use data responsibly and respect rate limits.

# Actor input Schema

## `startUrl` (type: `string`):

CarRentals.com search URL.

## `results_wanted` (type: `integer`):

Maximum number of cars to save.

## `max_pages` (type: `integer`):

Safety cap for automated scrolling down the page.

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

Use Apify Proxy. Residential proxies are recommended for stable results.

## Actor input object example

```json
{
  "startUrl": "https://www.carrentals.com/carsearch?paandi=true&fdrp=1&styp=2&dagv=1&subm=1&locn=Los%20Angeles,%20California,%20United%20States%20of%20America&dpln=178280&date1=5/1/2026&date2=5/3/2026&crfrr=defaultFlex&SearchType=Place",
  "results_wanted": 20,
  "max_pages": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "startUrl": "https://www.carrentals.com/carsearch?paandi=true&fdrp=1&styp=2&dagv=1&subm=1&locn=Los%20Angeles,%20California,%20United%20States%20of%20America&dpln=178280&date1=5/1/2026&date2=5/3/2026&crfrr=defaultFlex&SearchType=Place",
    "results_wanted": 20,
    "max_pages": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/carrentals-com-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 = {
    "startUrl": "https://www.carrentals.com/carsearch?paandi=true&fdrp=1&styp=2&dagv=1&subm=1&locn=Los%20Angeles,%20California,%20United%20States%20of%20America&dpln=178280&date1=5/1/2026&date2=5/3/2026&crfrr=defaultFlex&SearchType=Place",
    "results_wanted": 20,
    "max_pages": 5,
}

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

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

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

```

## CLI example

```bash
echo '{
  "startUrl": "https://www.carrentals.com/carsearch?paandi=true&fdrp=1&styp=2&dagv=1&subm=1&locn=Los%20Angeles,%20California,%20United%20States%20of%20America&dpln=178280&date1=5/1/2026&date2=5/3/2026&crfrr=defaultFlex&SearchType=Place",
  "results_wanted": 20,
  "max_pages": 5
}' |
apify call shahidirfan/carrentals-com-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahidirfan/carrentals-com-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "CarRentals.com Scraper",
        "description": "Extract live car rental pricing, availability, and vehicle details from CarRentals.com. Monitor rates across locations, compare fleet options, and build datasets for price analysis, travel research, or competitive intelligence.",
        "version": "0.0",
        "x-build-id": "6Lokpbdtox20lNzJx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~carrentals-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-carrentals-com-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/shahidirfan~carrentals-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-carrentals-com-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/shahidirfan~carrentals-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-carrentals-com-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrl": {
                        "title": "Search URL",
                        "type": "string",
                        "description": "CarRentals.com search URL."
                    },
                    "results_wanted": {
                        "title": "Maximum number of cars",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of cars to save.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Maximum scrolls",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety cap for automated scrolling down the page.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Use Apify Proxy. Residential proxies are recommended for stable results.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
