Cars.com Vehicles Scraper avatar

Cars.com Vehicles Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Cars.com Vehicles Scraper

Cars.com Vehicles Scraper

Scrape Cars.com shopping results and vehicle detail pages from start URLs.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Fahim Mahmud Chisti

Fahim Mahmud Chisti

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

What does Cars.com Vehicles Scraper do?

Cars.com Vehicles Scraper extracts used and new vehicle listings from Cars.com shopping search and detail pages. Paste a filtered search URL (zip, radius, mileage, seller type, sort) or a direct vehicle listing URL, and the Actor returns structured fields that match the other vehicle scrapers in this monorepo—title, price, mileage, VIN, seller, location, images, and more.

Run it on the Apify platform for scheduling, API access, proxy rotation, monitoring, and dataset exports (JSON, CSV, Excel, HTML).

Why use Cars.com Vehicles Scraper?

  • Track private-seller and dealer inventory with your Cars.com filters preserved in the start URL
  • Monitor listed dates and prices for market research
  • Feed CRM tools, marketplaces, or valuation pipelines with consistent vehicle fields
  • Paginate search results and optionally open each listing for full specs

How to use Cars.com Vehicles Scraper

  1. Open the Actor in Apify Console and go to the Input tab.
  2. Paste one or more Cars.com Start URLs (shopping search or vehicle detail).
  3. Set Max items and Max pages per search (defaults are low for quick QA runs).
  4. Keep Scrape item details enabled when you need VIN, engine, colors, and description.
  5. Keep US residential proxies enabled if datacenter IPs are blocked.
  6. Click Start and download results from the Output / dataset tab.

Input

FieldDescription
startUrlsRequired. Cars.com shopping search or vehicle detail URLs. Filters in the URL are kept.
maxItemsCap on saved listings (0 = unlimited). Default 5.
maxPagesPerSearchPages to crawl per search URL. Default 1.
maxListingAgeDaysOptional age filter using the listing listed date.
scrapeItemDetailsOpen each vehicle page for seller notes, engine, transmission, interior color, more images. Default true.
duplicateCheckSkip detail scraping for listing URLs already known (default false).
duplicateCheckApiUrlOptional POST exists API; leave empty for Apify storage only.
duplicateCheckStoreNameNamed KV store (default vehicle-listing-urls).
proxyConfigurationPrefer Apify residential US proxies.

Example input:

{
"startUrls": [
{
"url": "https://www.cars.com/shopping/results/?mileage_max=70000&stock_type=used&seller_type%5B%5D=private_seller&zip=19104&maximum_distance=9999&sort=listed_at_desc"
}
],
"maxItems": 5,
"maxPagesPerSearch": 1,
"scrapeItemDetails": true
}

Skip existing listings (duplicate check)

Cars.com detail scraping opens each vehicle in a browser with residential proxies. On scheduled re-runs, most results are often listings you already stored. Duplicate check skips those URLs so you do not pay again for detail pages you already have.

Enable it with duplicateCheck: true (default false).

Modes

  • When duplicateCheckApiUrl is set, the Actor POSTs batches of up to 500 listing URLs to your endpoint, then skips URLs returned in existing. It also reads and updates the named Apify Key-Value store. A URL is skipped if either your API or the store marks it as known.
  • When duplicateCheckApiUrl is empty, the Actor uses the Apify Key-Value store only (no external API).

API contract

// Request
{ "listingUrls": ["https://example.com/listing/1", "https://example.com/listing/2"] }
// Response
{
"existing": ["https://example.com/listing/1"],
"missing": ["https://example.com/listing/2"]
}

listingUrls may also be a single string. URLs are normalized (query string and trailing slash ignored). No auth header is required for public endpoints. If the API call fails, the Actor fail-opens and scrapes the batch.

After a listing is saved successfully, its URL is written to the named store under the KNOWN_LISTING_URLS record so future runs skip it even without an API.

Example:

{
"startUrls": [{ "url": "https://www.cars.com/shopping/results/?zip=19104&sort=listed_at_desc" }],
"maxItems": 100,
"duplicateCheck": true,
"duplicateCheckApiUrl": "https://your-api.example.com/listings/exists",
"duplicateCheckStoreName": "vehicle-listing-urls"
}

Output

Each dataset item uses the shared vehicle listing shape. You can download the dataset as JSON, HTML, CSV, or Excel.

{
"itemId": "example-listing-id",
"title": "2018 Honda Civic EX",
"listedAt": "2026-07-20T00:00:00.000Z",
"price": "18500",
"currency": "USD",
"location": "Philadelphia, PA",
"seller": "Private Seller",
"year": "2018",
"make": "Honda",
"model": "Civic",
"mileage": "42000",
"transmission": "Automatic",
"vin": null,
"url": "https://www.cars.com/vehicledetail/example-listing-id/",
"imageUrl": "https://platform.cstatic-images.com/example.jpg",
"images": ["https://platform.cstatic-images.com/example.jpg"],
"page": 1,
"scrapedAt": "2026-07-20T17:00:00.000Z"
}

With scrapeItemDetails: true, expect additional fields such as vin, engine, bodyType, driveType, exterior/interior colors, description, and specifics.

Data fields

FieldNotes
itemIdCars.com listing identifier from the detail URL
titleListing title
listedAtFrom Cars.com SSR fingerprint / days-on-market when shown
price / currencyAsking price in USD when present
mileageNormalized odometer when available
year / make / modelParsed from title and detail specs
seller / forSaleBye.g. Private Seller or dealer name
vinFrom detail specs when detail scraping is on
images / imageUrlCars.com CDN vehicle images
url / sourceUrl / pageProvenance and pagination

Tips

  • Build the search on Cars.com first (filters, zip, sort), then copy the URL into startUrls.
  • Keep maxItems and maxPagesPerSearch small while testing; raise them for production runs.
  • Keep scrapeItemDetails enabled for engine, transmission, interior color, seller notes, and gallery images—each listing costs an extra request. Search cards already include VIN and core specs.
  • Enable duplicateCheck on scheduled re-runs to skip listings you already stored.
  • Set scrapeItemDetails: false when search-card fields are enough.
  • Prefer skipping known listings over raising memory.
  • Keep browser concurrency low.
  • If results are empty, check the run key-value store for DEBUG_PAGE_* HTML snapshots.

FAQ and support

This Actor is intended for legitimate research and inventory monitoring. Respect Cars.com terms of service and applicable laws. For bugs or feature requests, use the Actor Issues tab on Apify, or ask for a custom solution if you need marketplace-specific enrichments.