TrueCar Used & New Car Listings Scraper (VIN, Price, Dealer) avatar

TrueCar Used & New Car Listings Scraper (VIN, Price, Dealer)

Pricing

from $6.80 / 1,000 results

Go to Apify Store
TrueCar Used & New Car Listings Scraper (VIN, Price, Dealer)

TrueCar Used & New Car Listings Scraper (VIN, Price, Dealer)

Scrape TrueCar used, new and certified car listings by make, model, ZIP and radius: price, mileage, VIN, colors, drivetrain, fuel, trim, dealer name, address, phone and photos. Export to JSON, CSV, Excel or XML.

Pricing

from $6.80 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

TrueCar Used & New Car Listings Scraper (VIN, Price, Dealer)

TrueCar Used & New Car Listings Scraper (VIN, Price, Dealer)

Here is one real result, with every field the actor returns (the images and highlights arrays are trimmed here for length):

{
"vin": "4T1DAACK6SU592870",
"year": 2025,
"make": "Toyota",
"model": "Camry",
"trim": "Hybrid SE",
"styleName": "Hybrid SE FWD",
"condition": "USED",
"certifiedPreOwned": false,
"price": 29090,
"priceCurrency": "USD",
"msrp": null,
"priceQuality": "EXCELLENT",
"mileage": 10646,
"exteriorColor": "White",
"interiorColor": "Gray",
"engine": "2.5L Inline-4 Hybrid",
"fuelType": "Hybrid",
"transmission": "Automatic",
"driveType": "FRONT_WHEEL_DRIVE",
"bodyStyle": "SEDAN",
"electricRange": null,
"mpgCity": 48,
"mpgHighway": 47,
"mpgCombined": 47,
"keyFeatures": [
"Premium Wheels", "Moonroof", "Apple CarPlay", "Android Auto",
"Front Heated Seats", "Adaptive Cruise Control", "Blind Spot System",
"Lane Keep Assist", "Backup Camera", "Bluetooth"
],
"dealerName": "Honda of Downtown Los Angeles",
"dealerAddress": "780 W Martin Luther King Jr Blvd",
"dealerCity": "Los Angeles",
"dealerState": "CA",
"dealerZip": "90037",
"dealerDistanceMiles": 3.3198752403259277,
"dealerPhone": "(213) 749-2331",
"stockNumber": "U592870T",
"listedAt": "2026-04-30T00:45:00.000Z",
"primaryImage": "https://listings-prod.tcimg.net/listings/5005/70/28/4T1DAACK6SU592870/001_2026051407.jpg",
"imageCount": 36,
"images": [
"https://listings-prod.tcimg.net/listings/5005/70/28/4T1DAACK6SU592870/001_2026051407.jpg",
"https://listings-prod.tcimg.net/listings/5005/70/28/4T1DAACK6SU592870/002_2026051407.jpg"
],
"listingUrl": "https://www.truecar.com/used-cars-for-sale/listing/4T1DAACK6SU592870/",
"source": "truecar.com",
"highlights": [
"Apple CarPlay / Android Auto", "Adaptive Cruise Control", "Blind Spot System",
"Backup Camera", "Forward Collision Warning", "Automatic Braking"
],
"observedAt": "2026-08-13T00:00:00.000Z",
"error": null
}

The most complete TrueCar scraper available. It returns every field a listing exposes (VIN, year, make, model, trim, price, MSRP, price quality, mileage, colors, engine, drivetrain and MPG), adds the dealer name, address, distance and phone as a lead, and gives you make, model, ZIP, radius, condition, price, year and mileage filters to target exactly the inventory you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor searches TrueCar inventory for the make, models, ZIP and radius you pass, applies your condition, price, year and mileage filters, paginates through the matches, and writes one normalized record per vehicle to the run's dataset. Each record carries VIN, year, make, model, trim, price, MSRP, TrueCar price quality, mileage, colors, engine, fuel type, transmission, drivetrain, body style and fuel economy.

With withDetails on (the default), the actor opens each listing's detail page to add the dealer phone, full photo gallery, feature highlights and stock number. The dealer name, address, distance and phone make each record a usable lead. Missing source values are returned as null, never invented.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 50 used Toyota Camry listings within 75 miles of ZIP 90001, with full detail.

{
"make": "Toyota",
"models": ["Camry"],
"zip": "90001",
"searchRadius": 75,
"condition": "used",
"withDetails": true,
"maxListings": 50
}

Leave models empty to search every model of the make. Add priceMax, yearMin or mileageMax to narrow the inventory.

Input reference

FieldTypeRequiredDefaultDescription
makestringyesToyotaVehicle make to search, for example Toyota, Ford, BMW.
modelsstring[]no["Camry"]One or more models of that make, each searched separately in one run. Leave empty to search every model of the make.
zipstringyes90001US ZIP code to search around.
searchRadiusintegerno75Radius in miles around the ZIP code.
conditionenumnousedWhich inventory to search: used, new, or all.
certifiedOnlybooleannofalseReturn only manufacturer certified pre-owned (CPO) vehicles.
priceMinintegerno(any)Minimum list price in USD.
priceMaxintegerno(any)Maximum list price in USD.
yearMinintegerno(any)Earliest model year.
yearMaxintegerno(any)Latest model year.
mileageMaxintegerno(any)Maximum odometer miles.
withDetailsbooleannotrueWhen on, each listing's detail page is fetched to add the dealer phone, full photo gallery, feature highlights and stock number. Turn off to pay for listing data only.
maxListingsintegerno50Maximum listings to collect across all model searches.

Filters combine with logical AND.

Output reference

One dataset item per listing. Types: string, number, integer, boolean, string[], or null when the source value is absent. Fields from dealerPhone, stockNumber, images and highlights come from the detail page and populate when withDetails is on.

FieldTypeDescription
vinstringVehicle Identification Number (unique per vehicle).
yearintegerModel year.
makestringVehicle make.
modelstringVehicle model.
trimstringTrim level, for example Hybrid SE.
styleNamestringFull style name including drivetrain.
conditionstringUSED or NEW.
certifiedPreOwnedbooleanWhether the vehicle is manufacturer certified pre-owned.
priceintegerList price.
priceCurrencystringCurrency of the price (USD).
msrpintegerManufacturer suggested retail price, or null.
priceQualitystringTrueCar price rating, for example EXCELLENT, GREAT, FAIR.
mileageintegerOdometer reading in miles.
exteriorColorstringExterior color.
interiorColorstringInterior color.
enginestringEngine description.
fuelTypestringFuel type, for example Gasoline, Hybrid, Electric.
transmissionstringTransmission type.
driveTypestringDrivetrain, for example FRONT_WHEEL_DRIVE, ALL_WHEEL_DRIVE.
bodyStylestringBody style, for example SEDAN, SUV.
electricRangeintegerEV range in miles when applicable, else null.
mpgCityintegerCity fuel economy (MPG).
mpgHighwayintegerHighway fuel economy (MPG).
mpgCombinedintegerCombined fuel economy (MPG).
keyFeaturesstring[]Key feature highlights.
dealerNamestringSelling dealership name (the lead).
dealerAddressstringDealer street address.
dealerCitystringDealer city.
dealerStatestringDealer state.
dealerZipstringDealer ZIP.
dealerDistanceMilesnumberDistance in miles from the search ZIP.
dealerPhonestringDealer phone number, the lead (detail).
stockNumberstringDealer stock number (detail).
listedAtstringISO 8601 timestamp of when the listing was posted.
primaryImagestringMain listing image.
imageCountintegerNumber of photos on the listing.
imagesstring[]Full image gallery URLs (detail).
listingUrlstringDirect link to the TrueCar listing.
sourcestringData source (truecar.com).
highlightsstring[]Full feature and equipment highlights (detail).
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

The hero record at the top of this page is a real record from a live run (input {"make":"Toyota","models":["Camry"],"zip":"90001","withDetails":true,"maxListings":50}), with the keyFeatures, images and highlights arrays trimmed for length. A full run returns every entry.

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~truecar-listings-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"make":"Toyota","models":["Camry","Corolla"],"zip":"90001","searchRadius":100,"condition":"used","maxListings":25}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~truecar-listings-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"make":"Ford","zip":"10001","condition":"all","priceMax":40000,"yearMin":2020,"maxListings":100}'

Apify CLI:

apify call scrapers_lat/truecar-listings-scraper \
--input '{"make":"BMW","models":["3 Series"],"zip":"60601","certifiedOnly":true}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per listing returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 listings per run. Upgrade for higher maxListings.
  • Detail scraping is slower. With withDetails on, each listing page is fetched individually to add the dealer phone, gallery, highlights and stock number.

FAQ and troubleshooting

A run returned 0 listings. Why? No inventory matched the make, model, ZIP, radius and filters. Widen searchRadius, remove priceMax/mileageMax, or check the make and model spelling. Zero-result runs are not charged.

How do I get the dealer phone and full photo gallery? Leave withDetails on (the default). The actor then opens each listing page and adds dealerPhone, images, highlights and stockNumber.

How do I search several models at once? Pass them in models. Each is searched separately in the same run and every record carries its own make/model.

Why is msrp or electricRange null? The listing did not publish that value (MSRP is often absent on used cars; electricRange applies only to EVs). Missing values are returned as null, never invented.

What is priceQuality? TrueCar's own rating of the asking price versus market, for example EXCELLENT, GREAT, FAIR. It is passed through as reported.

Is this an official TrueCar tool? No. This actor is independent and has no affiliation with TrueCar. It reads only publicly listed data. Use it in accordance with TrueCar's terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with TrueCar. Accesses only publicly available listing data. Use in accordance with TrueCar's terms of service.