Cars.com Scraper | $1 / 1k | Fast & Reliable avatar

Cars.com Scraper | $1 / 1k | Fast & Reliable

Pricing

$1.00 / 1,000 results

Go to Apify Store
Cars.com Scraper | $1 / 1k | Fast & Reliable

Cars.com Scraper | $1 / 1k | Fast & Reliable

Extract structured US vehicle listings from Cars.com with pricing, vehicle attributes, seller data, media, and more. Built for enterprise-grade automotive intelligence, inventory monitoring, pricing analysis, and automated data pipelines.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

1

Bookmarked

34

Total users

7

Monthly active users

2 days ago

Last modified

Share

Cars.com Scraper

Slug: fatihtahta/cars-com-scraper

Overview

Cars.com Scraper collects structured vehicle listing data from Cars.com pages, including listing identifiers, vehicle attributes, pricing, seller signals, media, badges, and source context. Cars.com is a major automotive marketplace where public inventory data can support market research, competitive monitoring, pricing analysis, and operational reporting. The actor turns Cars.com search result pages and direct vehicle listing pages into repeatable, structured dataset records. It is designed for automation-ready collection, consistent output handling, and recurring workflows where data needs to be gathered in the same shape over time. Use it when you need dependable public vehicle data acquisition without manual browsing or one-off copy-and-paste workflows.

Why Use This Actor

  • Market research and analytics teams: build structured extraction workflows for vehicle supply, pricing, mileage, seller coverage, and regional market intelligence.
  • Product and content teams: normalize public vehicle listing data for internal tools, comparison experiences, editorial research, or catalog validation.
  • Developers and data engineering teams: feed downstream systems with predictable JSON records suitable for ETL jobs, warehouse loading, API processing, and dataset normalization.
  • Lead generation and enrichment teams: enrich vehicle, seller, and inventory records with current public attributes from Cars.com listing pages.
  • Monitoring and competitive tracking teams: schedule recurring data acquisition for inventory movement, pricing changes, availability checks, and operational reporting.

Common Use Cases

  • Market intelligence: monitor vehicle supply, pricing, availability, mileage, seller ratings, locations, and model-level movement.
  • Lead generation: build targeted prospect lists from public vehicle listings and seller-related attributes.
  • Competitive monitoring: track changes in vehicle inventory, advertised prices, listing badges, and seller coverage across selected markets.
  • Catalog and directory building: populate internal databases with structured public records for vehicle inventory and associated metadata.
  • Data enrichment: add current public listing, pricing, media, and seller attributes to existing CRM, BI, or analytics datasets.
  • Recurring reporting: schedule periodic runs for dashboards, alerts, inventory snapshots, and trend analysis.

Quick Start

  1. Choose one or more Cars.com search result pages or direct vehicle listing URLs to define the collection scope.
  2. Set a small limit for the first validation run, such as 10 or 25 records per input URL.
  3. Run the actor in Apify Console.
  4. Inspect the first dataset records to confirm that listing, vehicle, pricing, seller, media, and badge fields match your use case.
  5. Increase the limit, add more Cars.com URLs, or schedule the actor once the output is verified.

Input Parameters

Provide startUrls to define the Cars.com pages to collect from, and optionally set limit to control how many records are saved per input URL.

ParameterTypeDescriptionDefault
startUrlsarray of stringsOne or more Cars.com URLs. Search result pages collect multiple matching vehicle listings, while direct vehicle listing URLs collect details for specific cars.-
limitintegerMaximum number of vehicle records to save for each input URL. Minimum value: 1. Leave empty to collect all available listings discovered from each input URL.100

Choosing Inputs

Use Cars.com search result URLs when you want the actor to collect multiple vehicles from a defined marketplace view, such as a make, model, ZIP code, radius, or sort option already represented in the URL. Use direct vehicle listing URLs when you already know the exact Cars.com pages you want to collect, or when you are working from a curated list.

Start with a small limit to validate output quality and record shape before scaling up. Broader search result URLs improve discovery, while more specific Cars.com URLs produce cleaner, more targeted datasets for reporting and monitoring.

Example Inputs

Scenario 1: Targeted Search Result Page

{
"startUrls": [
"https://www.cars.com/shopping/results/?makes%5B%5D=toyota&models%5B%5D=toyota-rav4&maximum_distance=50&zip=60606&sort=best_match_desc"
],
"limit": 25
}

Scenario 2: Direct Vehicle Listing

{
"startUrls": [
"https://www.cars.com/vehicledetail/1a64def7-38e7-4e13-b2ee-020788f80eb8/"
],
"limit": 1
}

Scenario 3: Broad Discovery With Conservative Limit

{
"startUrls": [
"https://www.cars.com/shopping/results/?maximum_distance=100&zip=10001&sort=best_match_desc",
"https://www.cars.com/shopping/results/?maximum_distance=100&zip=90001&sort=best_match_desc"
],
"limit": 50
}

Output

9.1 Output Destination

The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

Each item contains stable listing identifiers plus grouped vehicle-listing details so records are easier to merge, deduplicate, and sync across repeated runs.

9.2 Record Shape

Each dataset item is a listing record with a stable top-level id and title, plus grouped details under source_context, listing, vehicle, pricing, seller, media, and badges when those values are available.

Recommended idempotency key: id.

Use the idempotency key for deduplication and upserts when loading repeated runs into warehouses, CRMs, search indexes, or operational databases. The grouped fields keep listing details easy to consume while avoiding duplicate umbrella payloads.

9.3 Examples

Example: listing

{
"id": "a17f9a0e-8a7c-457d-8873-e1762c67f395",
"title": "New 2026 BMW X5 xDrive40i",
"source_context": {
"seed_id": "d2fc58edf198",
"seed_type": "location",
"seed_value": "60606",
"page_index": 1,
"domain": "cars.com",
"scrape_method": "embedded_json"
},
"listing": {
"id": "a17f9a0e-8a7c-457d-8873-e1762c67f395",
"url": "https://www.cars.com/vehicledetail/a17f9a0e-8a7c-457d-8873-e1762c67f395/?attribution_type=p_one",
"location": "Naperville, IL (30 mi)",
"attribution_type": "P_ONE",
"sponsored_type": "LISTING_1_PRIORITY",
"is_saved": false,
"new_vdp_eligible": true
},
"vehicle": {
"title": "New 2026 BMW X5 xDrive40i",
"stock_type": "New",
"year": 2026,
"make": "BMW",
"model": "X5",
"trim": "xDrive40i",
"vin": "5UX23EU02T9402463",
"mileage": "4",
"mileage_numeric": 4,
"body_style": "SUV",
"fuel_type": "Gasoline",
"certified_pre_owned": false
},
"pricing": {
"price": "80125",
"price_numeric": 80125.0,
"currency": "USD",
"display_price": "$80,125",
"msrp": 80125,
"msrp_numeric": 80125.0,
"monthly_payment_estimate": {
"amount": 1506.0,
"display": "$1,506",
"currency": "USD"
}
},
"seller": {
"zip": "60540",
"customer_id": "a4717647-ed42-5e31-8e84-0ebe4f5c4138",
"rating": 5.0
},
"media": {
"primary_image_url": "https://platform.cstatic-images.com/large/in/v2/a4717647-ed42-5e31-8e84-0ebe4f5c4138/cc7f97b7-7c8a-406f-b429-b78892127250/hwdzEtTLr7-m9MpjT1fzTEWSxNc.jpg",
"image_count": 27,
"images": [
{
"url": "https://platform.cstatic-images.com/large/in/v2/a4717647-ed42-5e31-8e84-0ebe4f5c4138/cc7f97b7-7c8a-406f-b429-b78892127250/hwdzEtTLr7-m9MpjT1fzTEWSxNc.jpg",
"alt_text": "Black Sapphire Metallic 2026 BMW X5 xDrive40i"
},
{
"url": "https://platform.cstatic-images.com/large/in/v2/a4717647-ed42-5e31-8e84-0ebe4f5c4138/cc7f97b7-7c8a-406f-b429-b78892127250/0TOWnvwYs-uGLzhg4zu2tgAQwDI.jpg",
"alt_text": "Black Sapphire Metallic 2026 BMW X5 xDrive40i"
}
]
},
"badges": [
{
"label": "High Demand",
"description": "This vehicle is currently in high demand given its competitive price, desirable features, and overall condition, and may have a higher chance of selling quickly.",
"variant": "default"
}
]
}

Field Reference

Record Type: listing

id (string, required): stable listing identifier.
title (string, optional): display title for the vehicle listing.
source_context.seed_id (string, optional): identifier for the input that produced the record.
source_context.seed_type (string, optional): input category, such as url or location.
source_context.seed_value (string, optional): original input value.
source_context.page_index (number, optional): result page index associated with the record.
source_context.domain (string, optional): source domain.
source_context.scrape_method (string, optional): collection method label included in the record when available.
listing.id (string, required): Cars.com listing identifier.
listing.url (string, required): Cars.com listing URL.
listing.location (string, optional): displayed seller or vehicle location.
listing.attribution_type (string, optional): listing attribution label when provided.
listing.sponsored_type (string, optional): sponsored listing classification when provided.
listing.is_saved (boolean, optional): saved-listing flag when present.
listing.new_vdp_eligible (boolean, optional): listing page eligibility flag when present.
vehicle.title (string, optional): full vehicle title.
vehicle.stock_type (string, optional): inventory type, such as new or used.
vehicle.year (number, optional): vehicle model year.
vehicle.make (string, optional): vehicle make.
vehicle.model (string, optional): vehicle model.
vehicle.trim (string, optional): vehicle trim.
vehicle.vin (string, optional): vehicle identification number when publicly available.
vehicle.mileage / vehicle.mileage_numeric (string / number, optional): displayed and normalized mileage.
vehicle.body_style (string, optional): body style.
vehicle.fuel_type (string, optional): fuel type.
vehicle.certified_pre_owned (boolean, optional): certified pre-owned status.
pricing.price / pricing.price_numeric (string / number, optional): displayed numeric price value in the record.
pricing.currency (string, optional): price currency, typically USD.
pricing.display_price (string, optional): formatted price.
pricing.monthly_payment_estimate.amount (number, optional): estimated monthly payment amount.
pricing.monthly_payment_estimate.display (string, optional): formatted monthly payment.
pricing.monthly_payment_estimate.currency (string, optional): monthly payment currency.
seller.zip (string, optional): seller ZIP code.
seller.customer_id (string, optional): seller customer identifier when provided.
seller.rating (number, optional): seller rating when available.
media.primary_image_url (string, optional): primary vehicle image URL.
media.image_count (number, optional): number of images reported for the listing.
media.images[].url (string, optional): vehicle image URL.
media.images[].alt_text (string, optional): image alt text.
badges[].label (string, optional): listing badge label.
badges[].description (string, optional): badge description.
badges[].variant (string, optional): badge display category.

Data Quality, Guarantees, And Handling

  • Structured records: results are normalized into predictable JSON objects for downstream use.
  • Best-effort extraction: fields may vary by region, session, availability, listing format, or Cars.com interface changes.
  • Optional fields: null-check optional fields in downstream code, especially media, seller, badges, and pricing details.
  • Deduplication: use id as the recommended idempotency key.
  • Freshness: results reflect the publicly available data at run time.
  • Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, or search indexes.

Tips For Best Results

  • Start with a small limit to validate the output shape before scaling up.
  • Use one Cars.com search URL per market, make, model, or segment when you need cleaner reporting groups.
  • Use direct listing URLs for known vehicles or curated review sets.
  • Leave Cars.com URL filters broad when the goal is discovery, then narrow the URL once you understand coverage.
  • Add more input URLs gradually to keep validation simple and isolate differences between markets.
  • Schedule recurring runs for monitoring workflows instead of relying on manual one-off jobs.
  • Use stable identifiers for deduplication when storing results over time.

How to Run on Apify

  1. Open the actor in Apify Console.
  2. Configure the available input fields for the target scope.
  3. Set the maximum number of outputs to collect with limit.
  4. Click Start and wait for the run to finish.
  5. Download results in JSON, CSV, Excel, or other supported formats.

Scheduling & Automation

Scheduling

Automated Data Collection

Use Apify schedules to run the actor periodically and keep your vehicle dataset fresh for dashboards, alerts, enrichment, or warehouse syncs. Recurring runs are especially useful for monitoring pricing, availability, seller coverage, and market movement over time.

  • Navigate to Schedules in Apify Console
  • Create a new schedule, such as daily, weekly, or custom cron
  • Configure input parameters
  • Enable notifications for run completion
  • Add webhooks for automated processing

Integration Options

  • BI dashboards: monitor pricing, availability, mileage, seller ratings, and geographic coverage over time.
  • Data warehouses: store recurring listing snapshots for historical analysis and operational reporting.
  • Webhooks: trigger validation, notification, or ingestion workflows after each completed run.
  • CRM enrichment: sync public vehicle and seller attributes into lead, account, or opportunity records.
  • Google Sheets or Airtable: review smaller curated datasets with sales, research, or operations teams.
  • Alerts: notify teams when selected inventory, pricing, or seller signals change between scheduled runs.

Export Formats And Downstream Use

Apify datasets can be exported or consumed by downstream systems for reporting, integration, and operational workflows.

  • JSON: for APIs, applications, and data pipelines
  • CSV or Excel: for spreadsheet workflows and manual review
  • API access: for automated ingestion into internal systems
  • BI and warehouses: for reporting, dashboards, and historical analysis

Performance

Estimated run times:

  • Small runs (< 1,000 outputs): ~3-5 minutes
  • Medium runs (1,000-5,000 outputs): ~5-15 minutes
  • Large runs (5,000+ outputs): ~15-30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.

Limitations

  • Availability depends on what Cars.com publicly exposes at run time.
  • Some optional fields may be missing on sparse records or listings with limited public detail.
  • Very broad searches may take longer or require higher limits to capture the desired coverage.
  • Target-side changes can affect field availability, naming, or completeness.
  • Regional, account, or availability differences may change visible results.
  • Search result URLs only collect within the scope represented by the provided Cars.com URL.

Troubleshooting

  • No results returned: check the Cars.com URL, location or filter spelling in the URL, direct listing availability, and whether Cars.com has matching public records.
  • Fewer results than expected: broaden the Cars.com URL filters, raise limit, or verify that the target page contains enough matching records.
  • Some fields are empty: optional fields depend on what each public listing provides.
  • Run takes longer than expected: reduce scope, lower limit for validation, or split broad collection into smaller segments.
  • Output changed: compare the current output with the field reference and include a small sample if support is needed.

FAQ

What data does this actor collect?

It collects public Cars.com vehicle listing data, including listing identifiers, vehicle details, pricing, seller information, media, badges, and related metadata when available.

Can I filter by location, category, date, price, or other criteria?

The actor accepts Cars.com URLs through startUrls. To apply filters, configure them on Cars.com first and use the resulting search result URL as input. The schema does not expose separate location, category, date, or price fields.

Can I use direct listing URLs?

Yes. Direct Cars.com vehicle listing URLs are supported and are useful when you already know the exact vehicles you want to collect.

Why did I receive fewer results than my limit?

The limit is a maximum per input URL, not a guarantee. You may receive fewer records if the page has fewer matching public listings, if listings are unavailable, or if the provided URL is too narrow.

Can I schedule recurring runs?

Yes. Use Apify schedules to run the actor daily, weekly, or on a custom cron schedule.

How do I avoid duplicates across runs?

Use id as the idempotency key when syncing records into downstream systems.

Can I export the data to CSV, Excel, or JSON?

Yes. Apify datasets support JSON, CSV, Excel, and other export formats.

Does this actor collect private data?

No. The actor is intended to collect publicly available information from Cars.com pages you provide.

What should I include when reporting an issue?

Include the input used, the run ID, expected versus actual behavior, and a small output sample if it helps explain the issue. Redact anything sensitive before sharing.

Compliance & Ethics

Responsible Data Collection

This actor collects publicly available vehicle listing information from https://www.cars.com for legitimate business purposes, including:

  • Automotive industry research and market analysis
  • Inventory, pricing, and availability monitoring
  • CRM, BI, and analytics dataset enrichment

Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, and the target site’s terms. This section is informational and not legal advice.

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site’s terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable, such as GDPR and CCPA

Support

For help, use the actor page or Issues. Include the input used, with sensitive values redacted if needed, the run ID, expected versus actual behavior, and a small output sample when it helps clarify the problem.