# Turo Vehicle Listings Scraper (`haketa/turo-scraper`) Actor

Turo scraper for peer-to-peer car sharing: search vehicles by location and dates and export make, model, year, daily price, host, rating, trip count, all-star status, location and coordinates. Car-sharing marketplace data and host lead generation.

- **URL**: https://apify.com/haketa/turo-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Travel, E-commerce, Lead generation
- **Features:** Limited permissions
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.75 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Turo Scraper — Vehicle Listings, Prices, Hosts & GPS Coordinates

> **Extract comprehensive peer-to-peer car sharing intelligence and host leads from [Turo](https://turo.com).** This **Turo scraper** allows you to search vehicles across any US metropolitan area or airport — such as `Los Angeles, CA`, `Miami, FL`, or `Orlando Airport` — and instantly download detailed vehicle records including **make, model, year, vehicle category, daily pricing, currency, host profile IDs, all-star host status, completed trip counts, customer ratings, physical locations, and exact GPS coordinates**. Seamlessly export to **JSON, CSV, Excel, or API**.

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue)](https://apify.com/haketa/turo-scraper)
[![Live Data](https://img.shields.io/badge/Data-Live%20at%20Run%20Time-orange)]()
[![Coverage](https://img.shields.io/badge/Market-United%20States%20%F0%9F%87%BA%F0%9F%87%B8-red)]()
[![Pricing](https://img.shields.io/badge/Includes-Daily%20Rates%20%26%20Currency-brightgreen)]()
[![Leads](https://img.shields.io/badge/Includes-Host%20IDs%20%26%20Trips-success)]()
[![Export](https://img.shields.io/badge/Export-JSON%20%C2%B7%20CSV%20%C2%B7%20Excel-lightgrey)]()

> Engineered for **car sharing hosts, rental fleet managers, auto pricing analysts, mobility investors, insurance underwriters, and B2B growth teams targeting car rental hosts** with software, financing, detailing, or fleet maintenance services.

***

### ⚡ At a glance

| Feature | Specification |
|---|---|
| **Data source** | Turo United States peer-to-peer car sharing marketplace |
| **Output formats** | JSON, CSV, Excel (XLSX), XML, RSS, HTML table |
| **Pagination model** | Multi-location harvesting (unlocks 1,000+ vehicle records via start URLs) |
| **Pricing intelligence** | Real-time daily rental rates, currency codes, and delivery flags |
| **Host lead generation** | Host ID, All-Star Host verification badge, completed trip totals |
| **Geospatial coordinates** | Precise latitude and longitude coordinates, distance in miles |
| **Deduplication** | Unique vehicle ID hashing guarantees 0 duplicate cars |
| **Proxy requirements** | US Residential proxies enabled by default for anti-bot resilience |
| **Authentication required** | None (no Turo login, credentials, or cookies required) |

***

### 🔎 Why scrape Turo?

[Turo](https://turo.com) operates as the world's largest peer-to-peer car sharing network, hosting tens of thousands of privately owned cars, luxury sports vehicles, electric vehicles (EVs), and SUVs across every major US metropolitan market and airport hub. Every listing encapsulates valuable competitive signals: vehicle year and trim, daily pricing tiers, host tenure, customer star ratings, and exact pickup locations.

However, Turo's dynamic marketplace interface is built strictly for individual consumer booking. Listings are rendered across interactive map panels with infinite scroll thresholds, offering no native bulk export or public data API. Collecting listings by hand—clicking into individual cards, recording host statistics, and logging rates—is exceedingly time-consuming and fails to capture volatile seasonal pricing shifts.

This **Turo scraper** automates marketplace extraction. By supplying a target city, trip dates, or search URLs, the actor captures complete vehicle inventories, extracts host credentials, validates geographic coordinates, and outputs clean tabular data structured for immediate analytical use.

#### Strategic Market Applications

- 💵 **Dynamic Pricing & Revenue Management**:
  Monitor real-time competitor rates across your specific airport or municipal cluster. Track daily rental prices for matching make, model, and year cohorts (e.g. Tesla Model 3, Ford Mustang, Jeep Wrangler) to dynamically adjust your vehicle pricing and maximize calendar utilization.

- 👤 **B2B Host Lead Generation**:
  Identify high-volume power hosts and commercial fleet operators. Filter by `isAllStarHost: true` or `completedTrips > 100` to target established rental operators with fleet insurance policies, GPS tracking hardware, automated messaging software, or vehicle maintenance packages.

- 📊 **Fleet Composition & Market Sizing**:
  Analyze market share and vehicle mix across different geographic territories. Measure the percentage of electric versus gas vehicles, compact cars versus luxury SUVs, and new listings versus veteran hosts in expanding vacation markets like Miami, Las Vegas, or Honolulu.

- 🗺️ **Geospatial & Neighborhood Demand Mapping**:
  Utilize extracted latitude, longitude, and distance coordinates to visualize host density heat maps across major metropolitan areas, identifying underserved airport corridors or transit deserts.

- 📈 **Investment Due Diligence**:
  Evaluate the return on investment (ROI) of adding specific vehicle models to a rental fleet by comparing average daily rates against historical trip velocity and local host competition.

***

### ✨ Features & Capabilities

- ✅ **Nationwide US Market Coverage**: Search any US city, metropolitan region, or airport code (`Los Angeles, CA`, `Miami, FL`, `Denver Airport`, `Honolulu, HI`).
- ✅ **Complete Vehicle Specifications**: Extracts make, model, model year, vehicle type (Sedan, SUV, Truck, Van), and SEO category.
- ✅ **Real-Time Pricing Data**: Captures active daily rates, currency denominations, and delivery availability flags.
- ✅ **Host Intelligence Layer**: Gathers host profile IDs, All-Star Host status badges, lifetime completed trip counts, and new listing indicators.
- ✅ **Customer Feedback Signals**: Extracts overall star ratings (e.g. `4.95`), review distributions, and promotional badges (e.g. `Great deal`, `Top rated`).
- ✅ **High-Precision Geolocation**: Delivers exact latitude and longitude coordinates, municipal city/state tokens, and distance from search centroid.
- ✅ **High-Resolution Vehicle Photos**: Extracts direct high-resolution image URLs for catalog visualization and listing verification.
- ✅ **Direct Listing URLs**: Formats clean, canonical permalinks directly to the live listing page on Turo.
- ✅ **Zero-Config Instant Demo**: Runs out of the box with default Los Angeles sampling for immediate data previews.

***

### 📥 Input Parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `location` | String | `"Los Angeles, CA"` | Target city, region, or airport to search (e.g. `Miami, FL`, `Austin, TX`, `JFK Airport`). |
| `startDate` | String | `""` | Optional trip pick-up date formatted as `MM/DD/YYYY` (e.g. `09/01/2026`). |
| `endDate` | String | `""` | Optional trip drop-off date formatted as `MM/DD/YYYY` (e.g. `09/05/2026`). |
| `startTime` | String | `"10:00"` | Pick-up time formatted as `HH:MM` in 24-hour notation. |
| `endTime` | String | `"10:00"` | Drop-off time formatted as `HH:MM` in 24-hour notation. |
| `startUrls` | Array | `[]` | Advanced search URLs. Paste custom Turo search links to override manual parameters. |
| `maxItems` | Integer | `0` | Max vehicles to collect across all searches. Set to `0` for unlimited crawl. Prefill `50`. |
| `proxyConfiguration` | Object | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US"}` | US Residential proxy configuration required to traverse marketplace challenges. |

***

### 📤 Output Data Fields

Every record returned in the Apify dataset represents an individual vehicle listing available on Turo:

#### 🚗 Vehicle & Pricing Details

| Field | Type | Coverage | Description |
|---|---|---|---|
| `vehicleId` | String | 🟢 High | Unique numerical identifier for the vehicle listing. |
| `make` | String | 🟢 High | Vehicle manufacturer (e.g., `Tesla`, `Porsche`, `BMW`, `Jeep`). |
| `model` | String | 🟢 High | Specific car model name (e.g., `Model Y`, `911 Carrera`, `Wrangler`). |
| `year` | Number | 🟢 High | Vehicle manufacturing model year (e.g., `2024`, `2025`). |
| `vehicleType` | String | 🟢 High | Vehicle body configuration (`CAR`, `SUV`, `TRUCK`, `VAN`). |
| `category` | String | 🟢 High | Commercial classification category (`suv`, `car`, `truck`). |
| `dailyPrice` | Number | 🟢 High | Base daily rental fee in local currency (e.g., `85.00`). |
| `currency` | String | 🟢 High | Currency code representing daily rate (e.g., `USD`). |
| `url` | String | 🟢 High | Canonical web permalink to the vehicle listing on Turo. |

#### 👤 Host Profile & Reputation

| Field | Type | Coverage | Description |
|---|---|---|---|
| `hostId` | String | 🟢 High | Unique numerical identifier of the vehicle host. |
| `isAllStarHost` | Boolean | 🟢 High | Boolean flag indicating top-tier host recognition for high ratings and reliability. |
| `completedTrips` | Number | 🟢 High | Total lifetime completed customer bookings for this vehicle. |
| `rating` | Number | 🟡 Conditional | Average customer star rating (1.0 to 5.0 scale). Blank on brand-new listings. |
| `isNewListing` | Boolean | 🟢 High | Boolean indicating if the car is newly added to the marketplace. |
| `badges` | Array | 🟡 Conditional | Marketing highlight tags (e.g., `["Great deal", "Experienced host"]`). |
| `tags` | Array | 🟡 Conditional | Vehicle amenity tags (e.g., `["Unlimited miles", "All-wheel drive"]`). |

#### 📍 Location & Media

| Field | Type | Coverage | Description |
|---|---|---|---|
| `city` | String | 🟢 High | Municipal city where the vehicle is primarily stationed. |
| `state` | String | 🟢 High | Two-letter state postal abbreviation (e.g., `CA`, `FL`, `TX`). |
| `country` | String | 🟢 High | Country denomination (`US`). |
| `latitude` | Number | 🟢 High | Exact decimal latitude coordinate for vehicle home location. |
| `longitude` | Number | 🟢 High | Exact decimal longitude coordinate for vehicle home location. |
| `distanceMiles` | Number | 🟡 Conditional | Calculated distance in miles from the specified search query point. |
| `isDelivery` | Boolean | 🟢 High | Indicates whether the host offers delivery to airports or custom addresses. |
| `imageUrl` | String | 🟢 High | Direct URL to the primary exterior photo of the car. |
| `searchUrl` | String | 🟢 High | The originating search URL that yielded this vehicle record. |
| `scrapedAt` | String | 🟢 High | ISO 8601 UTC timestamp of data retrieval. |

***

### 💻 Sample Output Record

```json
{
  "vehicleId": "1849201",
  "make": "Tesla",
  "model": "Model Y",
  "year": 2024,
  "vehicleType": "SUV",
  "category": "suv",
  "dailyPrice": 79,
  "currency": "USD",
  "rating": 4.98,
  "completedTrips": 142,
  "hostId": "9482012",
  "isAllStarHost": true,
  "isNewListing": false,
  "city": "Los Angeles",
  "state": "CA",
  "country": "US",
  "latitude": 34.052234,
  "longitude": -118.243685,
  "distanceMiles": 2.4,
  "isDelivery": true,
  "tags": [
    "Unlimited miles",
    "All-wheel drive",
    "Blind spot warning"
  ],
  "badges": [
    "Great deal"
  ],
  "imageUrl": "https://images.turo.com/media/vehicle/images/abcdef123.jpg",
  "url": "https://turo.com/us/en/suv-rental/united-states/los-angeles-ca/tesla/model-y/1849201",
  "searchUrl": "https://turo.com/us/en/search?country=US&location=Los+Angeles%2C+CA&itemsPerPage=200",
  "scrapedAt": "2026-11-10T14:55:00.000Z"
}
```

***

### 🛠️ Step-by-Step API Integration

Execute automated car rental intelligence searches directly from your Python or Node.js environment.

#### Python Integration

```python
from apify_client import ApifyClient

## Initialize the Apify client with your API token
client = ApifyClient("YOUR_APIFY_TOKEN")

## Search peer-to-peer vehicles in Miami
run_input = {
    "location": "Miami, FL",
    "maxItems": 100,
    "startDate": "12/01/2026",
    "endDate": "12/05/2026"
}

## Run the actor
run = client.actor("haketa/turo-scraper").call(run_input=run_input)

## Stream scraped vehicle listings
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"[{item.get('year')} {item.get('make')} {item.get('model')}] ${item.get('dailyPrice')}/day | Host: {item.get('hostId')} (All-Star: {item.get('isAllStarHost')})")
```

#### Node.js Integration

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

const client = new ApifyClient({
    token: 'YOUR_APIFY_TOKEN',
});

const runInput = {
    location: 'Denver Airport',
    maxItems: 50,
};

const run = await client.actor('haketa/turo-scraper').call(runInput);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

console.log(`Retrieved ${items.length} vehicles.`);
items.forEach(car => {
    console.log(`${car.year} ${car.make} ${car.model} - $${car.dailyPrice}/day in ${car.city}, ${car.state}`);
});
```

#### cURL Execution

```bash
curl "https://api.apify.com/v2/acts/haketa~turo-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "location": "Austin, TX",
    "maxItems": 50
  }'
```

***

### 🗺️ Top 20 US Car Sharing Markets & Airport Hubs

Target the highest-velocity peer-to-peer car sharing regions in the United States by passing these locations into `location` or setting up custom `startUrls`:

| Metropolitan Area | High-Demand Airport Hubs | Peak Rental Vehicles | Prime Seasonality |
|---|---|---|---|
| **Los Angeles, CA** | LAX, Burbank (BUR), Long Beach (LGB) | 3,500+ | Year-round, Summer peak |
| **Miami / Ft. Lauderdale, FL** | MIA, FLL, Miami Beach | 4,200+ | Winter & Spring Break (Dec–April) |
| **Orlando, FL** | MCO, Sanford (SFB) | 3,100+ | School holidays, Summer, Winter |
| **Las Vegas, NV** | LAS (Harry Reid International) | 2,800+ | Conventions, Weekend getaways |
| **Denver, CO** | DEN (Denver International) | 2,400+ | Ski season (Dec–March), Summer hiking |
| **Phoenix / Scottsdale, AZ** | PHX (Sky Harbor) | 2,200+ | Spring Training (Feb–April), Winter |
| **Dallas / Fort Worth, TX** | DFW, Love Field (DAL) | 2,600+ | Year-round business, Fall sports |
| **Houston, TX** | IAH (Bush Intercontinental), HOU | 2,100+ | Corporate travel, Energy sector events |
| **Atlanta, GA** | ATL (Hartsfield-Jackson) | 2,500+ | Regional transit hub, Conventions |
| **San Diego, CA** | SAN (San Diego International) | 1,800+ | Summer tourism, Comic-Con, Fall |
| **Tampa / St. Petersburg, FL** | TPA (Tampa International) | 1,600+ | Winter sun seekers, Spring Break |
| **Austin, TX** | AUS (Austin-Bergstrom) | 1,500+ | SXSW, F1 Grand Prix, Tech conferences |
| **Honolulu, HI** | HNL (Daniel K. Inouye) | 1,700+ | Holiday travel, Honeymoons, Summer |
| **Seattle, WA** | SEA (Seattle-Tacoma) | 1,400+ | Summer Pacific Northwest travel |
| **San Francisco / Bay Area, CA** | SFO, Oakland (OAK), San Jose (SJC) | 1,900+ | Business travel, Napa Valley tourism |
| **Chicago, IL** | ORD (O'Hare), Midway (MDW) | 1,800+ | Summer festivals, Corporate travel |
| **Boston, MA** | BOS (Logan International) | 1,300+ | Fall foliage, College graduations |
| **Nashville, TN** | BNA (Nashville International) | 1,200+ | Bachelorette weekends, Music tourism |
| **Charlotte, NC** | CLT (Charlotte Douglas) | 1,100+ | Banking sector, Motor sports events |
| **Salt Lake City, UT** | SLC (Salt Lake City International) | 1,200+ | Winter ski season, National Parks |

***

### 🔄 Fleet Management & Dynamic Pricing Workflows

Transform raw car sharing intelligence into automated business workflows without writing complex integration logic:

```mermaid
flowchart LR
    A[Turo Scraper] -->|Live Search Payload| B[Apify Dataset Webhook]
    B --> C{Automation Engine}
    C -->|Competitor Daily Price| D[Fleet Pricing Model]
    C -->|All-Star Host Records| E[B2B Host CRM / HubSpot]
    C -->|New Undercut Listings| F[Fleet Manager Alert]
```

#### Popular Implementation Pipelines:

1. **Automated Daily Rate Calibration**:
   Trigger the scraper nightly across your local airport delivery radius. Compare your active vehicle rates against matching make, model, and year listings. If your pricing exceeds market medians by >15%, trigger automated repricing scripts to protect booking volume.

2. **Host Acquisition & Outreach Automation**:
   Export records where `isAllStarHost === true` and `completedTrips >= 50` into Airtable or HubSpot. Cross-reference vehicle locations to pitch dedicated fleet parking, commercial insurance packages, or remote unlock hardware.

3. **New Competitor Fleet Alerts**:
   Configure a webhook to alert your management team whenever high-volume hosts add 5+ identical vehicles (e.g. bulk purchases of Tesla Model Ys) in your primary airport service radius.

***

### 📊 Complete Field Definitions & Extraction Rules

Understanding how Turo models marketplace data ensures high accuracy in downstream analytics:

- **`dailyPrice` (Base Rental Rate)**:
  Represents the host's base daily listing fee in USD before guest trip protection fees and local sales taxes. This clean numerical value enables direct mathematical aggregation (median, mean, standard deviation).

- **`isAllStarHost` (Host Excellence Badge)**:
  Turo awards All-Star Host status strictly to hosts maintaining a 95%+ response rate, a 90%+ acceptance rate, a 5-star rating average, and low cancellation rates. This is the single most reliable indicator of a seasoned fleet operator.

- **`latitude` & `longitude` (Home Location Coordinates)**:
  Extracted directly from the listing's home location entity, giving you the actual residential neighborhood or commercial lot coordinates where the vehicle is parked when not rented.

- **`url` (Canonical Vehicle Permalink)**:
  Cleanly formatted using SEO-friendly vehicle tokens (`.../make/model/id`), allowing direct navigation to the listing page without tracking query strings.

***

### 💡 Scraping Tips & Fleet Optimization

- **Unlocking 1,000+ Vehicles Across Multiple Metros**:
  A single Turo search returns up to ~200 vehicles. To capture thousands of vehicles in a single execution, generate multiple search URLs for distinct cities (e.g., `Los Angeles`, `San Francisco`, `San Diego`, `Phoenix`, `Las Vegas`) and submit them together in `startUrls`. Set `maxItems: 0` to collect all available listings across every market.
- **Isolating All-Star Fleet Operators**:
  When compiling prospective B2B outreach lists, filter dataset exports where `isAllStarHost === true` and sort descending by `completedTrips`. These hosts represent commercial operators managing multi-car portfolios.
- **Accurate Seasonal Price Modeling**:
  Run this scraper on a recurring weekly schedule across peak holiday windows (Thanksgiving, Christmas, Memorial Day) to monitor rate fluctuations by vehicle category.

***

### ❓ Frequently Asked Questions (FAQ)

**Why are residential proxies required for Turo?**
Turo operates strictly in the United States and deploys enterprise Cloudflare WAF firewalls that instantly block standard datacenter IP ranges. US Residential proxies route requests through authentic residential IPs, ensuring uninterrupted data extraction.

**How many vehicles can I extract in one run?**
Each individual search phrase returns up to 200 vehicle cards. By supplying an array of multiple city URLs in `startUrls`, you can extract 1,000 to 5,000+ vehicles in a single automated session.

**Are host contact email addresses or phone numbers included?**
Turo does not display private host phone numbers or email addresses on public search listings. The scraper extracts the unique `hostId`, All-Star badge status, and completed trip counts. You can use these profile IDs to cross-reference fleet brands and social business profiles.

**What happens if a vehicle has no star rating?**
When a host lists a brand-new car that has not yet completed a customer trip, Turo does not assign a numerical rating. The actor sets `rating: null` and flags `isNewListing: true`.

**Can I export listings directly to Google Sheets or Excel?**
Yes. You can download your dataset directly as an Excel spreadsheet (XLSX), CSV, or JSON file from the Apify Console, or configure automated synchronization to Google Sheets using Make.com, Zapier, or Apify webhooks.

***

### 🔗 Related Travel & Mobility Scrapers

- [Google Maps Scraper](https://apify.com/haketa/google-maps-scraper) — Extract car dealerships, repair shops, and local business leads worldwide.
- [Trip.com Reviews Scraper](https://apify.com/haketa/trip-com-reviews-scraper) — Hotel reviews, AI translations, and accommodation ratings.
- [Trustpilot Reviews Scraper](https://apify.com/haketa/trustpilot-reviews-scraper) — Extract company reviews, trust scores, and consumer feedback.
- [Substack Scraper](https://apify.com/haketa/substack-scraper) — Newsletter creator leads, subscriber counts, and post archives.

***

### 📋 Changelog

- **v1.2 (2026-11)**
  - Unlocked 1,000+ vehicle multi-location pagination via `startUrls` fan-out.
  - Standardized zero-config demo execution with fast Los Angeles sample (< 45s run time).
  - Enhanced canonical listing URL resolution from live DOM card anchors.
  - Added root `buildTag: "latest"` and updated memory configuration.
- **v1.1 (2026-09)**
  - Added coordinate extraction (`latitude`, `longitude`, `distanceMiles`).
  - Implemented All-Star host and completed trip counter parsing.
- **v1.0 (2026-08)**
  - Initial public launch of Turo car sharing marketplace scraper.

***

<p align="center"><i>This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Turo Inc. or any of its subsidiaries. "Turo" and all related names and logos are trademarks of their respective owners and are used here strictly to describe the publicly available data source.</i></p>

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/turo-scraper/changelog.md

# Actor input Schema

## `location` (type: `string`):

City or place to search, e.g. 'Los Angeles, CA', 'Miami, FL', 'JFK Airport'.

## `startDate` (type: `string`):

Trip start date as MM/DD/YYYY, e.g. '09/01/2026'. Leave empty for Turo's default.

## `endDate` (type: `string`):

Trip end date as MM/DD/YYYY, e.g. '09/05/2026'. Leave empty for Turo's default.

## `startTime` (type: `string`):

Pick-up time as HH:MM (24h). Default 10:00.

## `endTime` (type: `string`):

Drop-off time as HH:MM (24h). Default 10:00.

## `startUrls` (type: `array`):

Optional. Paste ready-made Turo search URLs (e.g. 'https://turo.com/us/en/search?location=Austin,TX\&country=US'). When provided, these override the location and dates above.

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

Maximum vehicles to return across all searches. Set 0 for unlimited across all specified locations.

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

US Residential proxies are required (Turo is US-only and hard-blocks datacenter IPs). This is set by default.

## Actor input object example

```json
{
  "location": "Los Angeles, CA",
  "startDate": "",
  "endDate": "",
  "startTime": "10:00",
  "endTime": "10:00",
  "startUrls": [],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

All extracted Turo vehicle listings for this run.

## `overviewTable` (type: `string`):

A clean, human-readable table of the scraped vehicles.

# 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 = {
    "location": "Los Angeles, CA",
    "startDate": "",
    "endDate": "",
    "startUrls": [],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/turo-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 = {
    "location": "Los Angeles, CA",
    "startDate": "",
    "endDate": "",
    "startUrls": [],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/turo-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 '{
  "location": "Los Angeles, CA",
  "startDate": "",
  "endDate": "",
  "startUrls": [],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call haketa/turo-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/turo-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/pRDLuGNPr2xiNM3l9/builds/BLUE0UFKhtYCS8sp1/openapi.json
