๐Ÿš— Cars.com Scraper avatar

๐Ÿš— Cars.com Scraper

Pricing

from $3.50 / 1,000 cars.com listing records

Go to Apify Store
๐Ÿš— Cars.com Scraper

๐Ÿš— Cars.com Scraper

Scrape Cars.com listings by make, model, year, ZIP, price, mileage. Clean records with verified VINs, dealer location + distance, photos. For used-car flippers, dealer-intel teams, and AI shopping agents. Export, run via API, schedule, or integrate with other tools.

Pricing

from $3.50 / 1,000 cars.com listing records

Rating

0.0

(0)

Developer

Skootle

Skootle

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Cars.com Scraper hero

TL;DR

Pull live used-car listings from Cars.com by make, model, year, ZIP, price, and mileage in 7 seconds flat. Returns one normalized record per listing: validated VIN, decoded vehicle squib, dealer name + phone + lat / lon + distance from your ZIP, MPG city / highway as integers, numeric mirrors of price and mileage, photos, and a ready-to-paste markdown card per car. Built for used-car flippers, dealer marketing agencies, lead-gen firms, fleet sourcing, and AI shopping agents. A flipper finds one $2K-margin car per ~200 listings scanned. Same record schema as the KBB Scraper so you can run both and pivot between sources.


Try it on a small dataset, then let us know what you think in a review.


What does Cars.com Scraper do?

Today, a used-car flipper hunting margin across Texas opens cars.com 50 times a day, runs the same search across five different ZIPs, copies the cheapest listings into a spreadsheet, manually checks each VIN, and starts calling dealers. A dealer-marketing agency tracking competitor inventory across a 12-store group does the same thing weekly, by hand, for every neighbor dealership. A lead-gen company building a "find me a used Tacoma in TX under $30K" feature for car-dealer SaaS has to scrape Cars.com themselves and watch their pipeline break the moment Cars.com tweaks a CSS class.

This actor collapses all of that into a single API call per query. A 10-record run finishes in roughly 7 seconds, and a 100-record metro sweep is under a minute. Cars.com adjusting their visible site does not break it.

For AI agents and LLM pipelines, every record carries a 300-500 character agentMarkdown summary card you can paste straight into a Claude or ChatGPT context, plus a fieldCompletenessScore so agents can self-filter sparse rows. Records use idempotent IDs (cars-com:vin:<VIN> when the VIN is valid, falling back to the listing UUID), so refreshes upsert cleanly downstream.

Why scrape Cars.com?

Cars.com is one of the deepest US used-car inventory pools, millions of dealer-supplied listings nationwide. Where Autotrader and KBB carry the deal-rating signal, Cars.com carries the volume and trim coverage. A flipper hunting margin across a state, a dealer-marketing agency tracking competitors across a 12-store group, or a lead-gen company powering "find me a used Tacoma in TX under $30K" all need the same thing: a clean, live Cars.com inventory feed without writing the scraper themselves.

Manual workflow killed: refreshing Cars.com 50 times a day across five ZIPs and copying the cheapest listings into a sheet. A used-car flipper finds roughly one $2K-margin car per 200 listings scanned, so the per-record cost pays back fast. The 7-second 10-record run time is the wedge over every other Cars.com actor on the Store.

Who needs this?

  • Used-car flippers and arbitrage buyers sweeping multiple metros daily for under-priced inventory to flip in the same week
  • Dealer-marketing agencies tracking competitor inventory and pricing daily across every neighbor dealership in their client's MSA
  • Lead-gen companies for car-dealer SaaS powering "find me a used X" features inside dealer CRMs and consumer-facing apps
  • Auto-warranty and extended-protection sellers segmenting outbound prospect lists by VIN-decoded year / make / model and mileage band
  • Fleet operators and corporate procurement sourcing comparable vehicles across multiple ZIPs to pick the best price-per-mile example
  • Auto-finance and lending platforms building VIN-validated training data for valuation and risk models
  • Automotive journalists and analysts tracking market price by trim, mileage band, and region for industry reports
  • AI shopping agents and natural-language car search that need a "what's available right now" feed for chat-based shopping flows

How to use Cars.com Scraper

  1. Open the Input tab on the actor page
  2. Set Make (e.g., BMW), Model (free text, e.g., 3 Series), and ZIP code (US 5-digit)
  3. Optionally narrow with Year (min/max), Price max, Mileage max, and Search radius (miles)
  4. Pick a Condition: USED, NEW, CPO, NEW_CPO, or ALL
  5. Set Max items (default 10, raise for production runs)
  6. Click Start or call via the Apify REST API or CLI

Run on demand from the Console, schedule daily monitoring with Apify's cron, integrate with Make, Zapier, n8n, Slack, Google Sheets, or pipe directly into a Claude or ChatGPT custom agent.

How much will scraping Cars.com cost?

This actor is priced per event:

  • Actor Start: $0.005 per run, charged once
  • Listing record: tiered, charged per record written
Apify plan$/1000 records
FREE$5.00
BRONZE$4.50
SILVER$4.00
GOLD$3.50
PLATINUM$3.00
DIAMOND$3.00

A 100-listing search on the FREE plan costs about $0.51 and the $5/month Apify free credit covers ~1,000 listings of trial volume. Production runs over 1,000 listings on the GOLD plan land at $3.50 per 1,000 records; PLATINUM and DIAMOND drop to $3.00.

Frame it as ROI. A used-car flipper finds one $2,000-margin listing per ~200 Cars.com records scanned. At GOLD pricing that's ~$0.70 in actor cost per $2,000 of margin found. A dealer-marketing agency tracking 50 competitors daily at 200 records each runs about $35 per day on GOLD, replacing a junior analyst's full-time inventory-monitoring job.

You only pay for records actually pushed to the dataset.

Yes for public listing data. Cars.com publishes dealer inventory openly on its website without authentication. This actor consumes the same public GraphQL endpoint the Cars.com web client uses, honors network rate limits, and does not bypass any login wall, captcha, or paywall. Records contain only data the public Cars.com website displays to any browser visitor.

For commercial redistribution of scraped data (reselling raw inventory feeds), consult your own legal counsel: dealer inventory may be subject to dealer terms-of-service and your jurisdiction's database-rights regime.

Examples

Example 1: Flipper hunting underpriced 2020-2024 BMW 3 Series within 50 mi of Beverly Hills

{
"make": "BMW",
"model": "3 Series",
"yearMin": 2020,
"yearMax": 2024,
"zip": "90210",
"searchRadius": 50,
"condition": "USED",
"maxItems": 50
}

Example 2: Lead-gen Honda Civic feed under $25K, 100 mi of Chicago

{
"make": "Honda",
"model": "Civic",
"priceMax": 25000,
"zip": "60601",
"searchRadius": 100,
"condition": "USED",
"maxItems": 200
}

Example 3: Wholesale Ford F-150 sweep under 50K miles, Texas-wide

{
"make": "Ford",
"model": "F-150",
"mileageMax": 50000,
"zip": "75201",
"searchRadius": 500,
"condition": "USED",
"maxItems": 500
}

Example 4: Tesla Model 3 certified pre-owned only, 50 mi NYC, fleet sourcing

{
"make": "Tesla",
"model": "Model 3",
"zip": "10001",
"searchRadius": 50,
"condition": "CPO",
"maxItems": 50
}

Example 5: Dealer competitive intel, Toyota Camry daily watchlist on Atlanta market

{
"make": "Toyota",
"model": "Camry",
"yearMin": 2022,
"zip": "30301",
"searchRadius": 75,
"condition": "USED",
"maxItems": 100
}

Example 6: Warranty seller, 2018-2022 Honda Pilot prospect list near Denver

{
"make": "Honda",
"model": "Pilot",
"yearMin": 2018,
"yearMax": 2022,
"zip": "80202",
"searchRadius": 100,
"condition": "USED",
"maxItems": 200
}

Example 7: AI shopping agent, natural-language "Tacoma in TX under $30K"

{
"make": "Toyota",
"model": "Tacoma",
"priceMax": 30000,
"zip": "75201",
"searchRadius": 500,
"condition": "USED",
"maxItems": 50
}

Input parameters

FieldTypeDefaultDescription
makestringBMWVehicle make.
modelstring3 SeriesFree-text model. Used as a Cars.com keyword filter.
yearMinint2020Minimum model year.
yearMaxint2024Maximum model year.
priceMaxint0Maximum list price USD. 0 = no cap.
mileageMaxint0Maximum mileage. 0 = no cap.
zipstring90210US 5-digit ZIP.
searchRadiusint50Radius in miles, 10-500.
conditionenumUSEDUSED, NEW, CPO, NEW_CPO, ALL.
maxItemsint10Hard cap. Default 10 keeps daily auto-test under 5 minutes; raise for production.
proxyConfigurationobjectresidential USApify proxy. Residential US is recommended.

Cars.com output format

cars_com_listing

FieldTypeDescription (and how a buyer uses it)
recordTypestringAlways cars_com_listing.
outputSchemaVersionstringDate-stamped schema version, pin downstream pipelines safely.
listingIdstringCars.com internal listing UUID, stable across runs.
listingUrlstringDirect dealer URL when available.
vinstring|null17-char VIN.
vinValidboolTrue when the VIN is structurally valid, filter on vinValid: true to drop garbage rows.
vinDecodedobject|null{ year, manufacturer, country } decoded inline, no NHTSA round-trip.
year, make, model, trimmixedVehicle identity.
bodyStyle, exteriorColor, interiorColorstring|null
transmission, drivetrain, fuelTypestring|null
mpgCity, mpgHighwayint|nullInteger MPG; sort and filter without parsing strings.
pricestring|nullOriginal Cars.com price string.
priceUsdint|nullNumeric mirror in USD; use this for math.
mileagestring|nullOriginal mileage string.
mileageMilesint|nullNumeric mirror; use this for math.
listedAt, scrapedAtstringISO 8601 timestamps.
dealerobject|null{ name, phone, address, city, state, zip, lat, lon, distanceMi }, geo joined per listing, no re-geocoding needed.
imagesstring[]Photo URLs (max 30 per listing).
agentMarkdownstring300-500 char ready-to-paste LLM summary card per record.
fieldCompletenessScorenumber0-100, lets buyers and agents self-filter sparse rows.

Sample record

{
"recordType": "cars_com_listing",
"outputSchemaVersion": "2026-05-09",
"listingId": "b47b2d08-da47-4270-81e6-5c18ba5da2d2",
"listingUrl": "https://www.example-dealer.com/inventory/...",
"vin": "5UXCR4C09N9M69613",
"vinValid": true,
"vinDecoded": { "year": 2022, "manufacturer": "BMW", "country": "North America" },
"year": 2022, "make": "BMW", "model": "X5", "trim": "sDrive40i",
"bodyStyle": "SUV", "exteriorColor": "Alpine White", "interiorColor": "Black",
"transmission": "Automatic", "drivetrain": "RWD", "fuelType": "Gasoline",
"mpgCity": 21, "mpgHighway": 26,
"price": "40084", "priceUsd": 40084,
"mileage": "20594", "mileageMiles": 20594,
"listedAt": "2026-04-12T10:30:00", "scrapedAt": "2026-05-09T15:30:22.413Z",
"dealer": {
"name": "Sample BMW", "phone": "(310) 555-0101",
"address": "1234 Wilshire Blvd", "city": "Beverly Hills", "state": "CA", "zip": "90210",
"lat": 34.10103, "lon": -118.41475, "distanceMi": 2.4
},
"images": ["https://example.com/photo-1.jpg"],
"agentMarkdown": "๐Ÿš— 2022 BMW X5 sDrive40i\n๐Ÿ’ฐ $40,084\n๐Ÿ“ 20,594 mi\n๐Ÿ“ Beverly Hills, CA (2 mi)\n๐Ÿ”— https://...",
"fieldCompletenessScore": 95
}

During the Actor run

Each run paginates through Cars.com results 50 listings at a time, normalizes every record, and writes the dataset. Typical 10-record run finishes in ~7 seconds; 100-record run under a minute. The default key-value store holds OUTPUT (compact run summary) and AGENT_BRIEFING (markdown digest of the run).

FAQ

How is this different from the five existing free Cars.com scrapers on the Apify Store?

The free Cars.com actors on the Store have combined ~37 monthly users and a single review across all of them. They scrape rendered HTML, leak $ and , straight into the price field, never validate the VIN, drop the dealer's lat / lon, and break monthly when Cars.com tweaks a class name. This actor consumes the upstream GraphQL contract directly, validates every VIN, returns numeric mirrors of price / mileage / MPG, joins dealer geo per listing, and ships a versioned schema with idempotent IDs. The premium tier is small ($3-5 per 1,000 records vs free) and the architecture is meaningfully more robust.

Why does this cost more than the free actors?

If you're feeding the data into a customer-facing product, a daily AI-agent run, or a dealer-monitoring pipeline, the per-record cost pays back the first time a free actor breaks silently. Free actors trade reliability for cost; this actor trades a few dollars per 1,000 records for a pipeline that doesn't go silently empty.

Will this break when Cars.com changes their site?

Cars.com redesigns the rendered HTML on a regular cadence. This actor consumes a far more stable upstream contract, so cosmetic UI changes don't break it. When the underlying contract does change, the actor adapts within 24-48 hours and we ship a build update.

How fast is it?

A 10-record run typically completes in 7 seconds. A 100-record run is under a minute. Low latency even at higher volume.

How reliable is this for daily production use?

Built for it. We monitor every run daily, ship maintenance updates within 24-48 hours when needed, and the architecture is meaningfully more robust than the free actors that scrape rendered HTML.

What model values does the keyword field accept?

Anything Cars.com itself accepts as a search keyword: "3 Series", "Civic", "F-150", "Model 3" all work. The keyword is matched against Cars.com's internal model catalog, so close-match queries also surface relevant trims (e.g., "3 Series" returns 330i, 330e, 330xDrive, 228 Gran Coupe).

Can I monitor only listings new since the previous run?

Use the listingId (or VIN-based recordId) as your dedupe key on the consumer side. Records are idempotent, re-running the same query produces the same listingId per car, so a downstream sink can INSERT ... ON CONFLICT DO UPDATE cleanly and detect new rows.

Why not just use the KBB Scraper instead?

Run both. We ship a companion KBB Scraper on the same record schema. Cars.com gives you volume and trim breadth; KBB gives you the Price Advisor GREAT / GOOD / FAIR / HIGH deal grade. Most flippers and dealer-intel buyers run both: KBB for the deal-quality signal on a tight ZIP, Cars.com for the broader inventory sweep across the metro.

Can I integrate with Make / Zapier / n8n / Slack?

Yes. From the actor page, click Integrations and pick your destination. Apify provides native connectors for all of them.

Can I use this with Python?

Yes. Use the Apify Python client: client.actor("skootle/cars-com-scraper").call(run_input={...}) and read the dataset.

What's the cheapest way to use this?

The $5/month Apify free credit covers about 1,000 listings on the FREE plan, enough to validate the schema against your pipeline. For production volume, GOLD at $3.50 per 1,000 records is the sweet spot; PLATINUM and DIAMOND drop to $3.00.

Your feedback

Hit a bug or want a feature? Open an issue on the Issues tab rather than the reviews page, and we'll fix it fast (typically within 48 hours).

Why choose Cars.com Scraper

  • 7-second typical run for 10 records, daily price-watch finishes before your coffee
  • Hand-tuned for Cars.com. Fixes ship the same week the source changes, far more stable than HTML-scraping competitors
  • Returns dealer geo so you can radius-filter without re-geocoding, lat / lon and distanceMi per listing, ready for CRM and lead-gen workflows
  • Every VIN is real. No junk rows polluting your dataset, structurally validated on every record
  • VIN decoded inline, model year + manufacturer + country, no NHTSA round-trip, no extra API call
  • Sort and filter without parsing strings, numeric mirrors of price, mileage, and MPG on every row
  • Agent-ready, agentMarkdown per record + AGENT_BRIEFING.md per run, drop into Claude / ChatGPT / Slack as cards
  • Cross-platform parity with the KBB Scraper, run both and pivot between sources without remapping
  • Safe to dedupe across re-runs, cars-com:vin:<VIN> when valid, else cars-com:listing:<id>; refreshes upsert cleanly
  • Schema doesn't break your pipeline, outputSchemaVersion is date-stamped; downstream pipelines can pin

Other Skootle actors you might want to check

  • Kelley Blue Book Scraper, companion used-car actor with the KBB Price Advisor GREAT / GOOD / FAIR / HIGH deal grade. Run both for full coverage.
  • eBay Sold Comps, sold-listing comps with variant-aware grouping for resale-price benchmarks
  • SEC EDGAR Filings Monitor, public-company filings stream for dealer-network operators (CarMax, Carvana, Lithia, Penske, AutoNation)

Export, run via API, schedule, or integrate with other tools.

Support and contact

File issues on this actor's page (Issues tab), replies within 48 hours. For feature requests, drop them in the same tracker tagged enhancement.