Cars.com Scraper
Pricing
Pay per usage
Cars.com Scraper
Extract detailed vehicle listings, specs, pricing, and dealer information directly from Cars.com. Perfect for automotive market analysis and inventory tracking. To ensure seamless data extraction and avoid strict anti-bot blocking, the use of residential proxies is strongly recommended.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
4
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Cars.com Vehicle Listings Scraper
Extract structured vehicle listing data from Cars.com at scale. Collect rich details such as pricing, mileage, VIN, dealer info, images, and listing metadata in a clean dataset. Ideal for automotive market research, pricing analysis, and inventory monitoring.
Features
- Rich listing fields — Collect year, make, model, trim, VIN, price, mileage, stock type, and more.
- Flexible filtering — Search by URL or use ZIP, distance, make, model, year, price, and mileage filters.
- Location-aware data — Gather dealer and seller location-related metadata from results.
- Image-ready output — Includes primary image URL plus gallery image objects.
- Clean dataset output — Empty and null values are excluded from exported records.
- Pagination support — Retrieves multiple result pages up to your configured limit.
Use Cases
Automotive Market Research
Track pricing and mileage trends by region, make, model, and vehicle condition. Build data-backed insights for market reports and planning.
Dealer Inventory Monitoring
Monitor listing changes and availability across local or nationwide searches. Compare inventory snapshots across time.
Lead Enrichment Pipelines
Use VIN, dealer, and listing identifiers to enrich internal records and connect with downstream tools.
Price Intelligence
Analyze spread between similar vehicles to identify competitive offers and outliers.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchUrl | String | No | — | Direct Cars.com search URL. When provided, other search filters are ignored. |
zipCode | String | No | "60606" | ZIP code for location-based search. |
stockType | String | No | "all" | Vehicle condition: all, new, used, or cpo. |
make | String | No | — | Vehicle manufacturer filter (for example: Toyota, Honda, Ford). |
model | String | No | — | Vehicle model filter (for example: Camry, Civic, F-150). |
maxDistance | String | No | "50" | Distance radius in miles from ZIP code. |
priceMin | Integer | No | — | Minimum listing price. |
priceMax | Integer | No | — | Maximum listing price. |
yearMin | Integer | No | — | Minimum model year. |
yearMax | Integer | No | — | Maximum model year. |
mileageMax | Integer | No | — | Maximum mileage filter. |
maxListings | Integer | No | 20 | Maximum records to collect. Use 0 for unlimited. |
sortBy | String | No | "best_match_desc" | Sort option for results ordering. |
proxyConfiguration | Object | No | { "useApifyProxy": true } | Proxy configuration for improved reliability. |
Output Data
Each dataset item contains structured vehicle listing data.
| Field | Type | Description |
|---|---|---|
listingId | String | Listing identifier. |
title | String | Listing title. |
year | Number | Vehicle year. |
make | String | Vehicle make. |
model | String | Vehicle model. |
trim | String | Vehicle trim. |
vin | String | Vehicle VIN. |
bodyStyle | String | Body style value. |
fuelType | String | Fuel type value. |
stockType | String | Vehicle stock type. |
price | Number | Listing price. |
msrp | Number | MSRP value when present. |
mileage | Number | Odometer mileage value. |
shipPrice | Number | Shipping price when present. |
dealer | String | Dealer name. |
location | String | Parsed location label when available. |
cpoIndicator | Boolean | Certified pre-owned indicator. |
financingType | String | Financing metadata. |
deliveryType | String | Delivery metadata. |
isaContext | String | Listing context marker. |
initialCohort | String | Cohort metadata value. |
trid | String | Tracking identifier value. |
attributionType | String | Attribution type from listing card. |
sponsoredType | String | Sponsorship classification when present. |
isSaved | Boolean | Saved-state flag when available. |
newVdpEligible | Boolean | New VDP eligibility flag when available. |
sellerZip | String | Seller ZIP code. |
sellerCustomerId | String | Seller customer identifier. |
pageNumber | Number | Result page number metadata. |
positionOnPage | Number | Result position on page metadata. |
imageUrl | String | Primary image URL. |
imageCount | Number | Total image count. |
galleryImages | Array | Image gallery objects with URL, alt text, and type. |
textSnippets | Array | Text snippets extracted from listing content. |
analyticsFingerprint | String | Listing analytics fingerprint value. |
analyticsContext | Object | Nested context metadata object. |
searchMetadata | Object | Nested search metadata object. |
seller | Object | Nested seller object. |
koddiMetadata | Object | Nested ad/attribution metadata object. |
url | String | Vehicle detail page URL. |
scrapedAt | String | ISO timestamp of extraction. |
Usage Examples
Basic Search by ZIP
{"zipCode": "60606","stockType": "all","maxListings": 20}
Used Vehicles with Price and Year Filters
{"zipCode": "10001","stockType": "used","priceMax": 25000,"yearMin": 2020,"mileageMax": 60000,"maxListings": 100}
Make and Model Targeting
{"zipCode": "90210","stockType": "new","make": "Toyota","model": "Camry","maxDistance": "100","sortBy": "list_price_asc","maxListings": 50}
Search URL Mode
{"searchUrl": "https://www.cars.com/shopping/results/?stock_type=used&zip=60606&maximum_distance=50","maxListings": 80}
Sample Output
{"listingId": "b0751a25-37b6-4d50-a55b-8e4a22184584","title": "Used 2024 Subaru Outback Limited","year": 2024,"make": "Subaru","model": "Outback","trim": "Limited","vin": "4S4BTANC3R3114509","bodyStyle": "SUV","fuelType": "Gasoline","stockType": "Used","price": 27994,"msrp": 0,"mileage": 49385,"dealer": "Advantage Chevrolet of Bolingbrook","sellerZip": "60440","imageUrl": "https://platform.cstatic-images.com/large/in/v2/...jpg","imageCount": 16,"url": "https://www.cars.com/vehicledetail/b0751a25-37b6-4d50-a55b-8e4a22184584/","scrapedAt": "2026-02-26T12:40:00.897Z"}
Tips for Best Results
Start Small, Then Scale
- Start with
maxListingsbetween 20 and 50 to validate your filters quickly. - Increase volume after confirming output structure and quality.
Prefer Specific Filters
- Use make/model/year/price filters to reduce noise.
- Narrower queries typically produce cleaner and more relevant datasets.
Use Proxies for Stability
- Keep proxy configuration enabled for better reliability on larger runs.
- For high-volume collection, use stable proxy settings across scheduled tasks.
Schedule for Monitoring
- Run on a schedule to track price, mileage, and inventory shifts over time.
- Combine with webhooks or automation tools for alerts and reporting.
Integrations
- Google Sheets — Export and review listings in spreadsheets.
- Airtable — Build searchable inventory tables.
- Make — Automate workflows from new dataset items.
- Zapier — Trigger downstream actions from run completion.
- Webhooks — Push run or dataset events to your own services.
Frequently Asked Questions
How many records can I collect?
Set maxListings to 0 for unlimited collection. For faster test runs, start with smaller limits.
Can I use a direct results URL?
Yes. Provide searchUrl to scrape a specific Cars.com results page directly.
Why are some fields missing in certain records?
Listings vary by seller and vehicle, so some optional fields may not be present on every listing.
How often is the data updated?
Data is extracted in real-time from Cars.com. Schedule regular runs to keep data fresh.
What if a vehicle has no price listed?
The scraper returns "Contact for price" when pricing information is not displayed.
Support
- Documentation: Apify Docs
- Community: Discord
- Issues: Report via Apify Console feedback
License
Apache License 2.0