Cars.com Vehicle Listings Scraper avatar

Cars.com Vehicle Listings Scraper

Pricing

Pay per event

Go to Apify Store
Cars.com Vehicle Listings Scraper

Cars.com Vehicle Listings Scraper

Extract Cars.com VINs, prices, mileage, photos, specifications, history signals, and dealer details for inventory monitoring and market analysis.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Categories

Share

Scrape Cars.com vehicle listings into structured, analysis-ready data.

Paste a filtered Cars.com search URL or an individual vehicle URL.

Get VINs, prices, mileage, specifications, photos, history signals, price history, and dealer details without a Cars.com login.

The Actor uses Cars.com's structured mobile data route instead of rendering a browser, making normal runs fast and efficient.

What does Cars.com Vehicle Listings Scraper do?

Cars.com Vehicle Listings Scraper turns public inventory pages into one normalized row per vehicle.

It supports:

  • πŸš— Cars.com search-result URLs with existing filters
  • πŸ”Ž Individual /vehicledetail/ URLs
  • πŸ“„ Automatic pagination across search results
  • πŸ†” Stable listing-ID deduplication
  • πŸ’΅ Price, MSRP, mileage, and price-history extraction
  • πŸ“· Full-resolution vehicle photo galleries
  • πŸͺ Dealer identity, address, rating, phone, and website
  • 🧰 Features, specifications, colors, drivetrain, and fuel data
  • πŸ›‘οΈ Available accident, ownership, title, and history-report signals

Use the small prefilled example to see useful data in a few seconds.

Who is it for? Cars.com scraper users

Dealership and inventory teams

  • Monitor competing dealer inventory by ZIP, make, and model.
  • Detect newly listed or removed vehicles.
  • Compare prices, mileage, trim, and days listed.

Automotive pricing analysts

  • Build regional price samples from repeatable searches.
  • Track price changes using stable listing IDs.
  • Compare list price, MSRP, and available market-price signals.

Marketplaces and data engineers

  • Feed normalized vehicle records into a warehouse.
  • Export to JSON, CSV, Excel, XML, or RSS.
  • Trigger downstream pipelines with schedules and webhooks.

Car buyers, flippers, and researchers

  • Find vehicles matching precise Cars.com filters.
  • Review VINs, photos, features, and history flags at scale.
  • Build watchlists for price drops and fresh inventory.

Why use this Cars.com vehicle data extractor?

  • βœ… No Cars.com account required β€” it reads public listing data.
  • βœ… No browser overhead β€” structured HTTP requests keep runs lightweight.
  • βœ… Search and direct lookup β€” use either search-result or vehicle-detail URLs.
  • βœ… Rich details β€” fetch photos, dealer data, features, specs, and histories.
  • βœ… Stable monitoring key β€” deduplicate and diff by listingId.
  • βœ… User-controlled limits β€” cap volume and detail concurrency.
  • βœ… Apify-native β€” schedule runs, call the API, and connect integrations.
  • βœ… Consistent schema β€” unavailable detail fields remain nullable instead of disappearing.

What Cars.com vehicle data can you extract?

GroupExample fields
IdentitylistingId, vin, stockNumber, stockType, url
Vehicleyear, make, model, trim, title, bodyStyle
Pricingprice, msrp, dealBadge, predictedPriceDifference
Usagemileage, listedDate, sourceUpdatedAt
Powertrainengine, transmission, drivetrain, fuelType, mpg
AppearanceexteriorColor, interiorColor, photos, photoCount
Equipmentfeatures, specs
HistorynoAccidents, singleOwner, cleanTitle, personalUseOnly
Dealername, address, ZIP, phone, website, rating, coordinates
Ratingsconsumer rating, review count, recommendation percentage
ProvenancesearchUrl, scrapedAt, canonical Cars.com URL

A listing exposes only the fields supplied by Cars.com and its seller.

How much does it cost to scrape Cars.com listings?

This Actor uses pay-per-event pricing.

You pay a small run-start fee plus one vehicle event for each unique dataset row.

Apify planVehicle price
Free$0.00016164
Starter / Bronze$0.00014056
Scale / Silver$0.00010964
Business / Gold$0.000084335

Higher plans receive additional volume discounts.

Example before final platform cost calibration:

WorkloadApproximate event charge
10 vehicles$0.0165 including $0.005 start
100 vehicles$0.105 including $0.005 start
1,000 vehicles$1.005 including $0.005 start

Your Apify Free plan includes platform credits that can cover many small evaluations.

How to scrape Cars.com vehicle listings

  1. Open a search on Cars.com.
  2. Apply the make, model, ZIP, radius, price, year, and other filters you need.
  3. Copy the resulting /shopping/results/ URL.
  4. Open this Actor on Apify.
  5. Paste the URL into Cars.com URLs.
  6. Set a small Maximum vehicle listings value for your first run.
  7. Keep Fetch full vehicle details enabled for rich output.
  8. Click Start.
  9. Preview the dataset or export it in your preferred format.

You can also paste a direct /vehicledetail/{listing-id}/ URL for one vehicle.

Input parameters

ParameterTypeDefaultDescription
startUrlsarrayrequiredCars.com search-result or vehicle-detail URLs
fetchDetailsbooleantrueEnrich cards with full listing details
maxItemsinteger10Maximum unique vehicles across all URLs
maxConcurrencyinteger3Parallel detail requests, from 1 to 10
proxyConfigurationobjectdirectOptional Apify or custom proxy settings

Search URL example:

{
"startUrls": [
{
"url": "https://www.cars.com/shopping/results/?stock_type=used&makes[]=toyota&models[]=toyota-camry&maximum_distance=20&zip=10001"
}
],
"fetchDetails": true,
"maxItems": 25,
"maxConcurrency": 3
}

Direct vehicle example:

{
"startUrls": [
{
"url": "https://www.cars.com/vehicledetail/2efe758d-c3d1-42e3-868c-bee54a86a014/"
}
],
"fetchDetails": true,
"maxItems": 1
}

Output example

{
"source": "cars.com",
"searchUrl": "https://www.cars.com/shopping/results/?stock_type=used&zip=10001",
"listingId": "2efe758d-c3d1-42e3-868c-bee54a86a014",
"vin": "4T1DBADK9TU549864",
"stockType": "Used",
"title": "2026 Toyota Camry SE",
"year": 2026,
"make": "Toyota",
"model": "Camry",
"trim": "SE",
"price": 33055,
"mileage": 2260,
"bodyStyle": "Sedan",
"drivetrain": "All-wheel Drive",
"fuelType": "Gasoline",
"noAccidents": true,
"cleanTitle": true,
"dealerName": "New Rochelle Toyota",
"dealerCity": "New Rochelle",
"dealerState": "NY",
"dealerRating": 4.1,
"photoCount": 53,
"url": "https://www.cars.com/vehicledetail/2efe758d-c3d1-42e3-868c-bee54a86a014/",
"scrapedAt": "2026-07-14T02:05:37.740Z"
}

The actual record contains more fields than this shortened example.

Search-card mode versus full details

Set fetchDetails to true for the richest record.

This adds:

  • full photos
  • equipment and key specifications
  • dealer contact and location data
  • price history
  • vehicle-history signals
  • consumer ratings

Set it to false when you need a fast inventory snapshot with core identity, price, mileage, colors, preview photos, and seller ZIP.

Detail-only fields are then returned as null or empty collections.

Tips for reliable Cars.com extraction

  • 🎯 Start with a narrow ZIP, radius, make, and model search.
  • πŸ§ͺ Test 5–10 vehicles before increasing maxItems.
  • πŸ” Reuse the exact same search URL for monitoring comparisons.
  • πŸ†” Compare records by listingId, not by title.
  • πŸ•’ Sort by newest listed on Cars.com before copying the URL when tracking arrivals.
  • βš™οΈ Keep detail concurrency between 2 and 5 for normal workloads.
  • 🌎 Enable a US proxy only if your network cannot reach the direct data route.
  • 🧹 Expect inventory to change between runs as cars are listed or sold.

Schedule an inventory or price monitor

Apify schedules can rerun this scraper hourly, daily, or weekly.

A practical monitoring workflow is:

  1. Save one filtered Cars.com search URL.
  2. Run it on a fixed schedule.
  3. Store each dataset or merge rows into a database.
  4. Compare listingId, price, sourceUpdatedAt, and listedDate.
  5. Alert when a listing appears, disappears, or changes price.

Use webhooks to notify your service as soon as a run succeeds.

Integrations for automotive workflows

Cars.com β†’ Google Sheets

Append current inventory rows for a pricing analyst or acquisition team.

Cars.com β†’ Slack or Discord

Post alerts for fresh listings under a target price or new price drops.

Cars.com β†’ Make or Zapier

Filter records by VIN, mileage, CPO status, or dealer and route qualified vehicles.

Cars.com β†’ a data warehouse

Load scheduled snapshots into BigQuery, Snowflake, PostgreSQL, or another analytics store.

Cars.com β†’ webhook service

Start VIN decoding, valuation, CRM, or marketplace ingestion after each run.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/cars-com-vehicle-listings-scraper').call({
startUrls: [{ url: 'https://www.cars.com/shopping/results/?stock_type=used&zip=10001&maximum_distance=20' }],
fetchDetails: true,
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Use the Apify API with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/cars-com-vehicle-listings-scraper').call(run_input={
'startUrls': [{'url': 'https://www.cars.com/shopping/results/?stock_type=used&zip=10001&maximum_distance=20'}],
'fetchDetails': True,
'maxItems': 20,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

Use the Apify API with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~cars-com-vehicle-listings-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{"url": "https://www.cars.com/shopping/results/?stock_type=used&zip=10001&maximum_distance=20"}],
"fetchDetails": true,
"maxItems": 20
}'

Poll the returned run ID or use a webhook for completion.

Use Cars.com data with AI agents via MCP

This Actor can be exposed to Claude Code, Claude Desktop, Cursor, or VS Code through the hosted Apify MCP server.

For Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/cars-com-vehicle-listings-scraper"

For Claude Desktop, Cursor, or VS Code:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/cars-com-vehicle-listings-scraper"
}
}
}

Example prompts:

  • β€œUse automation-lab/cars-com-vehicle-listings-scraper to find used Toyota Camrys near 10001 under $30,000.”
  • β€œExtract this Cars.com vehicle URL and summarize its VIN, price history, features, and dealer rating.”
  • β€œCompare today’s Cars.com dataset with yesterday’s and list new vehicles and price drops.”

OAuth connects the MCP server to your Apify account on first use.

Data quality and field availability

Cars.com listings are supplied by dealerships and private sellers.

That means some fields vary by listing.

For example:

  • used vehicles may expose history signals that new vehicles do not
  • dealer listings usually contain richer contact information
  • photos and feature lists depend on seller uploads
  • MSRP may be absent or zero for some used inventory
  • price-history records exist only when Cars.com exposes changes

The Actor preserves a consistent shape and uses nullable fields when source data is unavailable.

Scraping publicly available web data is generally lawful in many jurisdictions, but the exact rules depend on your location and use case.

This Actor does not log in, bypass account permissions, or access private user data.

Use it responsibly:

  • collect only data you need
  • respect applicable laws and contractual obligations
  • avoid personal-data misuse
  • follow GDPR, CCPA, and other privacy rules where applicable
  • consult legal counsel for regulated or high-risk use cases

This independent Actor is not affiliated with, endorsed by, or sponsored by Cars.com or Cars Commerce.

FAQ: frequently asked questions

Do I need a Cars.com account or API key?

No. The Actor uses public structured listing data and does not require Cars.com credentials.

How fast is the scraper?

Core search cards arrive in pages of up to 24. Full detail mode adds one lightweight request per vehicle and processes several concurrently.

Why are some fields null?

The seller or Cars.com may not provide that attribute. Disable full details only if you intentionally want a lighter search-card record.

Why did my search return fewer vehicles than yesterday?

Cars.com inventory changes continuously as vehicles are added, sold, removed, or moved outside your filters.

Why did the run reject my URL?

Use a cars.com/shopping/results/ URL or a cars.com/vehicledetail/{uuid}/ URL. Home pages and editorial pages are not listing inputs.

Can I scrape multiple searches in one run?

Yes. Add multiple URLs. The Actor deduplicates repeated vehicles by stable listing ID and applies one global maxItems limit.

Can I use my Cars.com sort order?

Yes. Keep the sort parameter in the copied search URL. Unsupported source-side sort values fall back to Cars.com's default ranking.

How does this compare with a browser scraper?

The Actor reads structured data directly, avoiding page rendering and visual-selector breakage. This is faster and uses less memory than a browser-first approach.

Explore related Actors from Automation Lab:

Use Cars.com Vehicle Listings Scraper when your workflow specifically needs current Cars.com US inventory and its source-specific details.

Support and responsible use

If a valid listing URL fails, include the URL type, approximate run time, and run ID in an Apify issue.

Do not include private credentials or personal information in issue reports.

Start with a small reproducible input so the behavior can be investigated quickly.

For source changes, the Actor’s structured-query implementation can be updated without changing your dataset contract.