# Cars.com Zipcode Scraper (`e-commerce/cars-com-zipcode-scraper`) Actor

Scrape used car listings from cars.com by ZIP code, radius, and make, including vin, makeName, modelName, carYear, price, mileage, serviceProviderName, sellerRating, and detailUrl. Export data, run via API, schedule and monitor runs, or integrate with other tools.

- **URL**: https://apify.com/e-commerce/cars-com-zipcode-scraper.md
- **Developed by:** [E Commerce](https://apify.com/e-commerce) (Apify)
- **Categories:** E-commerce
- **Features:** Limited permissions
- **Stats:** 4 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.68 / 1,000 car details

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**Powered by [E-commerce Scraping Tool](https://apify.com/apify/e-commerce-scraping-tool).** Need data from other stores too? The E-commerce Scraping Tool gets you data from Cars.com, Amazon, eBay, and any other e-commerce site.

## Cars.com Zipcode Search Scraper: used car listings by ZIP

> Scrape used car listings from cars.com by ZIP code, radius, and make - VIN, make, model, year, price, mileage, dealer, rating, accident and owner history, and photos - with no cars.com API required.

### What does Cars.com Zipcode Search Scraper do?

Cars.com Zipcode Search Scraper collects used car listings from cars.com around any US ZIP code. Give it one or more ZIPs, a radius, and optional make filters, and it returns one structured record per vehicle: VIN, make, model, year, trim, price, mileage, dealer name and rating, and location. Turn on detail mode to also pull transmission, engine, stock number, accident and owner history, and the dealer phone number. No cars.com API or login required.

- 📍 **ZIP and radius search** - scan cars.com inventory around any US ZIP, up to nationwide
- 🚘 **Full listing detail** - VIN, make, model, year, trim, price, and mileage
- 🏢 **Dealer and rating** - dealer name, rating, review count, and location
- 🔎 **Optional detail mode** - add specs, accident and owner history, and dealer phone
- 📊 **Clean output** - structured records ready for JSON, CSV, or Excel

### What data can you extract from Cars.com?

| Vehicle | Pricing and history | Dealer and media |
|---|---|---|
| VIN and listing ID | Price and price string | Dealer name |
| Make, model, year, trim | Mileage | Dealer rating and reviews |
| Body type and fuel type | Accident count | Seller type and location |
| Transmission and engine | Owner count | Main photo and all photos |
| Exterior and interior color | Vehicle-history summary | Detail URL |

### Can I search Cars.com by ZIP, make, and radius?

Yes. Provide a list of ZIP codes and a radius (from 10 miles to nationwide), and optionally filter by make (for example Toyota, Ford, BMW). Leave the make filter empty to scrape every vehicle around each ZIP. Turn on `scrapeVehicleDetails` to enrich each listing from its detail page.

### How does Cars.com Zipcode Search Scraper work?

1. Enter one or more US ZIP codes and a search radius
2. (Optional) Filter by make and turn on detail mode
3. The Actor loads cars.com search results around each ZIP and reads the listing data
4. Results stream to a dataset you can preview or export as JSON, CSV, or Excel

### How to use Cars.com Zipcode Search Scraper

1. Create a free [Apify account](https://console.apify.com/sign-up)
2. Enter ZIP codes and a search radius
3. (Optional) Add makes and enable detail mode
4. Click **Start**
5. Download your data from the **Dataset** tab

#### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `zips` | array | required | US ZIP codes to search from. |
| `carBrands` | array | none | Makes to filter by (for example Toyota, Ford). Empty for all. |
| `radius` | string | `100 miles` | Search radius: 10 to 500 miles, or Nationwide. |
| `scrapeVehicleDetails` | boolean | `false` | Open each detail page to add specs, history, and dealer phone. Slower and more costly. |
| `maxRequestsPerCrawl` | integer | none | Optional cap on pages for test runs. |

```json
{
  "zips": ["90210"],
  "carBrands": ["Toyota"],
  "radius": "50 miles",
  "scrapeVehicleDetails": false
}
```

### What does the output look like?

Each listing is one structured record (detail-only fields are filled when `scrapeVehicleDetails` is on):

```json
{
  "vin": "4T1BF1FK5HU380000",
  "carId": "a1b2c3d4-0000-0000-0000-000000000000",
  "makeName": "Toyota",
  "modelName": "Camry",
  "carYear": 2017,
  "trimName": "SE",
  "bodyTypeName": "Sedan",
  "price": 17998,
  "priceString": "$17,998",
  "mileage": 68450,
  "sellerType": "Dealer",
  "serviceProviderName": "Example Toyota",
  "sellerRating": 4.6,
  "reviewCount": 512,
  "sellerCity": "Los Angeles",
  "accidentCount": 0,
  "ownerCount": 1,
  "mainPictureUrl": "https://platform.cstatic-images.com/.../1.jpg",
  "detailUrl": "https://www.cars.com/vehicledetail/a1b2c3d4/",
  "searchZip": "90210"
}
```

### Why use Cars.com Zipcode Search Scraper?

| Feature | Manual or copy-paste | Cars.com Zipcode Search Scraper |
|---|---|---|
| Input | Search one ZIP at a time | Many ZIPs and a radius per run |
| Volume | A few listings by hand | Every matching listing per ZIP |
| History | Open each listing | Accident and owner counts in detail mode |
| Dealer trust | Not obvious | Dealer rating and review count |
| Export | None | JSON, CSV, Excel |

### What can you do with Cars.com data?

- **Local market pricing** - track prices and mileage by ZIP to benchmark used-car values across a region
- **Dealer intelligence** - rank dealers by rating, review count, and inventory in a market
- **Vehicle-history screening** - use accident and owner counts in detail mode to filter cleaner listings
- **Inventory and supply research** - measure how many vehicles of a make sit within a radius

For ongoing monitoring, schedule the Actor daily for fast-moving markets or weekly for stable ones.

### How much does Cars.com Zipcode Search Scraper cost?

Cars.com Zipcode Search Scraper uses Apify's pay-per-event pricing: a small run-start fee plus a per-result fee for each listing scraped. Detail mode renders an extra page per listing, so it costs more. Apify gives you $5 in free usage credits every month on the [free plan](https://apify.com/pricing). See the Actor's **Pricing** tab for the current rate on each plan.

### How do I run Cars.com Zipcode Search Scraper via the Apify API?

```bash
curl -X POST "https://api.apify.com/v2/acts/e-commerce~cars-com-zipcode-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "zips": ["90210"],
    "carBrands": ["Toyota"],
    "radius": "50 miles"
  }'
```

### What can I integrate Cars.com Zipcode Search Scraper with?

The Actor runs on the Apify platform, so its data flows into the tools your team already uses:

- **Google Sheets and Excel** - build a local used-car pricing and dealer sheet
- **Make, Zapier, and n8n** - trigger a workflow when new listings appear
- **Slack** - get pinged when a target vehicle lands in your area
- **LangChain and MCP** - feed listing data into AI agents and apps
- **Apify API and webhooks** - load listings into your own data warehouse

### Troubleshooting

- **No results in the dataset** - Check the ZIP codes are valid US ZIPs and widen the `radius`; cars.com blocks datacenter IPs, so keep Apify residential proxy enabled.
- **Missing detail fields** - Transmission, interior color, engine, stock number, and history are filled only when `scrapeVehicleDetails` is on.
- **Slow or blocked runs** - cars.com sits behind bot protection and changes its layout over time. Keep residential proxy on, lower `maxRequestsPerCrawl`, and open an issue on the **Issues** tab if fields stop returning.

### FAQ

#### Can I search several ZIP codes in one run?

Yes. Pass a list of ZIP codes in `zips` and the Actor scans each one within your chosen radius, tagging every listing with its `searchZip`.

#### What does detail mode add?

With `scrapeVehicleDetails` on, the Actor opens each vehicle detail page to add transmission, interior color, engine, stock number, accident and owner counts, personal-use flag, and the dealer phone number.

#### Why does it need residential proxy?

cars.com blocks datacenter IPs, so the Actor uses a stealth browser over Apify residential proxy to load pages reliably. No extra setup is needed.

#### Can I run Cars.com Zipcode Search Scraper with the Apify API?

Yes. Start and schedule runs over the Apify REST API and collect results with the `apify-client` packages for Node.js and Python.

#### Does it work with MCP and AI agents?

Yes. Expose the Actor through the Apify MCP server so your AI agents can pull cars.com inventory on demand.

#### Is it legal to scrape Cars.com?

Cars.com is a US site, and collecting publicly available listing data is generally legal. This Actor reads only public vehicle listings, not private personal data. Keep your use case lawful and read [is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/) if you are unsure.

### Related Actors

- 🛒 [E-commerce Scraping Tool](https://apify.com/apify/e-commerce-scraping-tool) - get data from Cars.com, Amazon, eBay, and any other e-commerce site
- 🚗 [AutoTrader Zipcode Search Scraper](https://apify.com/e-commerce/autotrader-zipcode-scraper) - scrape AutoTrader listings by ZIP
- 🚙 [CarGurus Zipcode Search Scraper](https://apify.com/e-commerce/cargurus-zipcode-search-scraper) - scrape CarGurus listings by ZIP
- 🚘 [CarMax Zipcode Search Scraper](https://apify.com/e-commerce/carmax-zipcode-search-scraper) - scrape CarMax listings by ZIP

### Your feedback

Found a bug or want a field added? Open an issue on the Issues tab - we read every one.

# Actor input Schema

## `zips` (type: `array`):

ZIPs to start with

## `carBrands` (type: `array`):

Select the car brands to scrape listings for.

## `radius` (type: `string`):

Search radius within which listings will be scraped.

## `maxRequestsPerCrawl` (type: `integer`):

Optional cap on total requests (search pages + detail pages). Leave empty to scrape every result across all pages. Useful for bounded test runs.

## `scrapeVehicleDetails` (type: `boolean`):

When enabled, the actor opens each listing's vehicle detail page (VDP) to fill detail-only fields: transmission, interior color, engine, stock number, accident and owner counts, personal-use flag, and the dealer phone number. This renders one extra browser page per listing, so it is slower and more expensive than the default search-only mode.

## `carModels` (type: `array`):

Narrow the search to particular models, e.g. Camry, F-150, Bronco Sport. Each name is turned into cars.com's own model slug for the brands above (Ford + F-150 -> ford-f_150), and cars.com's echo of the search it ran is checked, so a model it did not accept is reported in the log rather than passing as applied. Leave empty for every model of the selected brands.

## `yearFrom` (type: `integer`):

Oldest model year to include.

## `yearTo` (type: `integer`):

Newest model year to include.

## `mileageMax` (type: `integer`):

Highest odometer reading to include, in miles. cars.com has no minimum-mileage filter — it drops the parameter — so only a maximum is offered.

## `priceMin` (type: `integer`):

Lowest list price to include, in US dollars.

## `priceMax` (type: `integer`):

Highest list price to include, in US dollars.

## `stockType` (type: `string`):

Which inventory to search. cars.com defaults this Actor to used.

## `sortBy` (type: `string`):

The order cars.com returns the listings in. These are the values from its own sort control.

## Actor input object example

```json
{
  "zips": [
    "90210",
    "73099",
    "77494",
    "37042"
  ],
  "radius": "100 miles",
  "scrapeVehicleDetails": false,
  "carModels": [
    "Camry",
    "Corolla"
  ],
  "yearFrom": 2020,
  "yearTo": 2022,
  "mileageMax": 60000,
  "priceMin": 10000,
  "priceMax": 30000,
  "stockType": "used",
  "sortBy": "Best match"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("e-commerce/cars-com-zipcode-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("e-commerce/cars-com-zipcode-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call e-commerce/cars-com-zipcode-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,e-commerce/cars-com-zipcode-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/dUJoN6zy4MFWzsgV6/builds/RSWgcLh9zGcDLxdD4/openapi.json
