
Turo Vehicle Rental Listings
Pricing
$19.99/month + usage

Turo Vehicle Rental Listings
Scrape car rental listings from Turo search page. Extracts vehicle data including pricing, availability, and car details.
5.0 (1)
Pricing
$19.99/month + usage
0
8
8
Last modified
a month ago
Turo Car Listings Scraper
The Turo Car Listings Scraper is a powerful Apify Actor that lets you scrape car rental listings from Turo.com. Extract detailed vehicle data, host information, prices, images, ratings, and more — all with a single run.
🚗 What does this scraper do?
- Search for available rental cars on Turo by location and optional date/time filters
- Or scrape specific listings directly using URLs
- Extract full vehicle details including prices, ratings, images, locations, and host info
- Export data in JSON, CSV, Excel, HTML, and more
- Integrate results into your apps via API, webhooks, or Zapier/Make
📌 When to use this scraper
Use Case | Mode to Use | Best Input |
---|---|---|
Find cars in a specific city | Search Mode | location + optional dates |
Find airport pickup cars | Search Mode | LAX - Los Angeles International Airport |
Get pricing for a single car | Direct URL Mode | listingUrls with 1 URL |
Get host details for several listings | Direct URL Mode | listingUrls with multiple URLs |
Search nationwide inventory | Search Mode | Set location : "Anywhere" |
🔍 Two Search Modes
1. Search Mode (Default)
Use this mode when you want to scrape available rental cars by location.
Required:
location
→ City, airport, or "Anywhere" for country-wide results.
Optional:
startDate
,endDate
→ In YYYY-MM-DDstartTime
,endTime
→ In HH:MM (24h)maxResults
→ Number of listings to return (default 200)
Example input
{"location": "Los Angeles, CA","startDate": "2025-10-23","startTime": "10:00","endDate": "2025-10-26","endTime": "10:00","maxResults": 100}
2. Direct URL Mode (Alternative)
Use this mode to scrape specific Turo listings when you already have their URLs.
Required:
listingUrls
→ Array of Turo listing URLs
Important:
- If
location
is filled, it takes priority andlistingUrls
are ignored. - To use Direct URL Mode, leave
location
empty.
Example input
{"listingUrls": ["https://turo.com/us/en/car-rental/us/los-angeles-ca/tesla/model-3/1234567","https://turo.com/us/en/car-rental/us/miami-fl/lamborghini/huracan/5555555"]}
📊 Output examples
Output in Search Mode
Each record represents a car listing returned by the Turo Search API. Fields may vary by region and date filters.
{"id": 2947541,"make": "Porsche","model": "Macan VP","year": 2024,"type": "SUV","listingUrl": "https://turo.com/us/en/car-rental/...","avgDailyPrice": {"amount": 510.0,"currency": "EUR"},"rating": 5.0,"completedTrips": 6,"hostId": 36450056,"isAllStarHost": true,"images": [{"originalImageUrl": "https://images.turo.com/media/vehicle/images/..."}],"location": {"city": "Cannes","country": "FR","state": "Provence-Alpes-Côte d'Azur","locationSlugs": {"en_US": "cannes-06"}},"tags": [],"availability": null,"estimatedQuote": null}
Output in Direct URL Mode
Direct URL mode intercepts the vehicle detail API and provides comprehensive information for individual listings. Here's what data you get:
Category | Field | Description | Example |
---|---|---|---|
Basic Info | vehicle.id | Unique vehicle identifier | 2926271 |
vehicle.make | Car manufacturer | "Toyota" | |
vehicle.model | Car model | "Corolla Hybrid" | |
vehicle.year | Manufacturing year | 2024 | |
vehicle.type | Vehicle category | "CAR" | |
listingUrl | Direct link to listing | "https://turo.com/..." | |
Pricing | rate.daily | Daily rental price | 43.5 |
rate.averageDailyPrice | Average daily rate | 43.5 | |
rate.weeklyDiscountPercentage | Weekly discount | 12 | |
rate.monthlyDiscountPercentage | Monthly discount | 30 | |
dateRangeRate.rentalPrice | Total rental cost | 130.5 | |
Host Info | owner.id | Host unique ID | 20623617 |
owner.firstName | Host first name | "LaWanda" | |
owner.allStarHost | All-star host status | true | |
owner.proHost | Professional host status | false | |
owner.image.originalImageUrl | Host profile photo | "https://images.turo.com/..." | |
Ratings | ratings.ownerOverall | Overall host rating | 5.0 |
ratings.histogram.buckets | Detailed rating breakdown | Cleanliness, Maintenance, etc. | |
numberOfReviews | Total review count | 22 | |
tripCount | Total completed trips | 25 | |
Vehicle Details | basicCarDetails.numberOfSeats | Passenger capacity | 5 |
basicCarDetails.numberOfDoors | Door count | 4 | |
basicCarDetails.automaticTransmission | Transmission type | true | |
basicCarDetails.fuelType.label | Fuel type | "Hybride" | |
basicCarDetails.averageFuelEconomy | Fuel efficiency | 49.5 | |
basicCarDetails.luggageCapacity | Luggage space | 3 | |
Location | location.city | City location | "Los Angeles" |
location.state | State/region | "CA" | |
location.country | Country code | "US" | |
location.latitude | GPS latitude | 34.05324592366171 | |
location.longitude | GPS longitude | -118.26299595579937 | |
Images | images[].originalImageUrl | High-res photo URLs | "https://images.turo.com/..." |
images[].thumbnails | Various sized thumbnails | 170x102 , 620x372 , etc. | |
Features | badges[] | Vehicle features/amenities | Android Auto, Bluetooth, etc. |
extras.extras[] | Available add-ons | Prepaid fuel, GPS, etc. | |
Policies | minimumAgeInYearsToRent | Minimum renter age | 21 |
rate.dailyMileage | Daily mileage limit | 200 | |
rate.excessFeePerDistance | Overage fee per mile | $0.22 | |
Protection | currentVehicleProtection.displayName | Insurance plan | "Protection 75" |
currentVehicleProtection.hostTakeRate | Host coverage percentage | 0.75 |
⚠️ Known limitations
Limitation | What it means | Workaround |
---|---|---|
Pagination | Only the first API response is intercepted (~200 results max). | Use multiple smaller location searches. |
Location fuzziness | Free-text location is resolved by Turo, may return wider/narrower results. | Use "Anywhere" or be explicit with airport codes. |
Data changes | Turo may update API structures at any time. | Always check logs for schema updates. |
💡 Troubleshooting
Issue | Cause | Solution |
---|---|---|
No results | Location not recognized, dates too strict | Try removing dates, use "Anywhere" |
Listings < maxResults | Turo caps items per search (200 max) | Split searches or combine results later |
JSON parse error | Turo API changed or blocked run | Check raw_response_preview in logs |
📥 Downloading your results
After the run finishes, go to the Dataset tab
Export results in your preferred format:
- JSON
- CSV
- Excel
- HTML
Or access them programmatically via the Apify API.
✅ Best practices
- Use "Anywhere" for country-wide coverage
- Always check logs if fewer cars are returned than expected
- For bulk single-listing details, prefer Direct URL Mode
❓ FAQ
How can I connect this scraper to other tools and services?
Yes. This Turo scraper integrates seamlessly with numerous platforms through Apify's ecosystem. Connect your scraped car rental data directly to popular tools like Zapier, Google Sheets, Slack, Make, GitHub, Asana, LangChain, and many others.
Additionally, you can set up webhooks to trigger automated actions based on scraper events - such as receiving instant notifications when your Turo data extraction completes successfully.
Is there a programmatic way to control this scraper?
Yes. The scraper is fully accessible through Apify's REST API, giving you complete programmatic control. You can automate runs, retrieve results, manage schedules, monitor performance, and handle all actor operations programmatically.
For JavaScript/Node.js development, install the apify-client
NPM package. Python developers can use the apify-client
PyPI package for the same functionality.
Check out the API documentation and code examples in the API tab for implementation details.
Can I run this Turo scraper from Python scripts?
Yes! Python integration is straightforward using Apify's official Python client. Simply install the apify-client
package from PyPI to start automating your Turo data collection from Python applications.
Refer to Apify's Python Client documentation for comprehensive setup guides and code examples.
👨🏻💻 Support
Don't hesitate to reach out if you need assistance. Open an issue in this repository or contact me via the Apify actor page.
On this page
Share Actor: