# Carmax Zipcode Search Scraper (`e-commerce/carmax-zipcode-search-scraper`) Actor

Scrape used car listings from CarMax.com by ZIP code, radius, and make, including vin, make, model, year, price, originalPrice, mileage, storeName, and distance. Export data, run via API, schedule and monitor runs, or integrate with other tools.

- **URL**: https://apify.com/e-commerce/carmax-zipcode-search-scraper.md
- **Developed by:** [E Commerce](https://apify.com/e-commerce) (Apify)
- **Categories:** Other
- **Features:** Full permissions
- **Stats:** 47 total users, 0 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: 4.99 out of 5 stars

## Pricing

from $0.90 / 1,000 cars

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 CarMax, Amazon, eBay, and any other e-commerce site.

## CarMax Zipcode Search Scraper: used car listings by ZIP

> Scrape used car listings from CarMax.com by ZIP code, radius, and make - VIN, make, model, year, price, price drops, mileage, specs, store, and transfer availability - with no CarMax API required.

### What does CarMax Zipcode Search Scraper do?

CarMax Zipcode Search Scraper collects used car listings from CarMax.com around any US ZIP code. Give it one or more ZIPs, a search radius, and optional make filters, and it returns one structured record per vehicle: VIN, make, model, year, trim, price, original price and price-drop flag, full specs, store location, distance, and transfer availability. CarMax sells at fixed no-haggle prices and can transfer cars between stores, so this data is a clean view of national used-car pricing. No CarMax API or login required.

- 📍 **ZIP and radius search** - scan CarMax inventory around any US ZIP, up to 500 miles or nationwide
- 🚙 **Full listing detail** - VIN, make, model, year, trim, mileage, and complete specs
- 💲 **Fixed price and drops** - price, original price, and a price-drop flag
- 🏬 **Store and transfer** - store name, city, distance, and transfer availability
- 📊 **Clean output** - structured records ready for JSON, CSV, or Excel

### What data can you extract from CarMax?

| Vehicle | Pricing and specs | Store and media |
|---|---|---|
| VIN and stock number | Price and original price | Store name and ID |
| Make, model, year, trim | Price-drop flag | Store city and state |
| Body, mileage, transmission | Engine, cylinders, drivetrain | Distance from ZIP |
| Fuel type and MPG | Features list | Transfer and new-arrival flags |
| Exterior and interior color | Rating and review count | Main photo and detail URL |

### Can I search CarMax by ZIP, make, and radius?

Yes. Provide a list of ZIP codes and a radius, and optionally filter by make (for example Ford, Toyota, BMW). CarMax supports radii of 25, 50, 100, 250, and 500 miles; any other value rounds up to the nearest tier, and 0 searches nationwide. Leave the make filter empty to scrape every vehicle around each ZIP.

### How does CarMax Zipcode Search Scraper work?

1. Enter one or more US ZIP codes and a search radius
2. (Optional) Filter by make
3. The Actor pages through CarMax search results around each ZIP
4. Results stream to a dataset you can preview or export as JSON, CSV, or Excel

### How to use CarMax 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 to filter by
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. |
| `makes` | array | none | Makes to filter by (for example Ford, Toyota, BMW). Empty for all. |
| `radius` | integer | `50` | Radius in miles (25, 50, 100, 250, 500; other values round up; 0 = nationwide). |
| `maxConcurrency` | integer | `10` | Maximum number of concurrent requests. |
| `maxRequestsPerCrawl` | integer | none | Optional cap on search pages for test runs. |

```json
{
  "zips": ["90210", "10001"],
  "radius": 50,
  "makes": ["Ford"]
}
```

### What does the output look like?

Each listing is one structured record:

```json
{
  "stockNumber": "28346516",
  "vin": "1FADP3R48EL241837",
  "make": "Ford",
  "model": "Focus Electric",
  "year": 2014,
  "body": "4D Hatchback",
  "mileage": 63364,
  "transmission": "Automatic",
  "driveTrain": "Front Wheel Drive",
  "engineType": "Electric",
  "exteriorColor": "Blue",
  "interiorColor": "Gray",
  "features": ["Leather Seats", "Navigation System", "Rear View Camera"],
  "price": 9599,
  "originalPrice": null,
  "hasPriceDrop": false,
  "storeName": "LAX",
  "storeCity": "Inglewood",
  "state": "California",
  "distance": 9,
  "isTransferable": true,
  "isNewArrival": true,
  "heroImageUrl": "https://img2.carmax.com/assets/28346516/hero.jpg",
  "detailUrl": "https://www.carmax.com/car/28346516",
  "searchZip": "90210"
}
```

### Why use CarMax Zipcode Search Scraper?

| Feature | Manual or copy-paste | CarMax 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 vehicle per ZIP |
| Price drops | Read by eye | Original price and price-drop flag |
| Transfer info | Not obvious | Transfer availability on every record |
| Export | None | JSON, CSV, Excel |

### What can you do with CarMax data?

- **National used-car pricing** - CarMax's fixed prices give a clean benchmark for used-car values by make, model, and ZIP
- **Price-drop tracking** - watch `originalPrice` and `hasPriceDrop` to catch markdowns across a market
- **Inventory and supply research** - measure how many vehicles of a make sit within a radius or are transferable to a store
- **Spec and feature analysis** - compare mileage, drivetrain, and features across comparable listings

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

### How much does CarMax Zipcode Search Scraper cost?

CarMax Zipcode Search Scraper uses Apify's pay-per-event pricing: a small run-start fee plus a per-result fee for each listing scraped. Apify gives you $5 in free usage credits every month on the [free plan](https://apify.com/pricing), so light runs cost nothing. See the Actor's **Pricing** tab for the current rate on each plan.

### How do I run CarMax Zipcode Search Scraper via the Apify API?

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

### What can I integrate CarMax 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 used-car pricing and inventory sheet
- **Make, Zapier, and n8n** - trigger a workflow when new listings or price drops 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`, or set it to 0 for a nationwide search.
- **Make filter returns nothing** - Makes are matched against CarMax's make slug; check spelling, or leave `makes` empty for all makes.
- **Slow or blocked runs** - CarMax limits heavy traffic and changes its page layout over time. Lower `maxConcurrency`, keep Apify Proxy enabled, 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 radius values does CarMax support?

CarMax supports 25, 50, 100, 250, and 500 miles. Any other value rounds up to the nearest supported tier, and 0 (or empty) searches nationwide.

#### Does it show price drops?

Yes. Each record carries `price`, `originalPrice`, and a `hasPriceDrop` flag, so you can spot markdowns and measure the reduction.

#### Can I run CarMax 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 CarMax inventory on demand.

#### Is it legal to scrape CarMax?

CarMax.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 CarMax, 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
- 🚘 [Cars.com Zipcode Search Scraper](https://apify.com/e-commerce/cars-com-zipcode-scraper) - scrape cars.com 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`):

US ZIP codes to search from.

## `makes` (type: `array`):

Optional CarMax makes to filter by (e.g. Ford, Toyota, BMW, Mercedes-Benz). Case-insensitive; matched against CarMax's make slug. Leave empty for all makes.

## `radius` (type: `integer`):

Search radius in miles around each ZIP. CarMax supports 25, 50, 100, 250, and 500; any other value is rounded up to the nearest supported tier, and 0 (or empty) searches nationwide.

## `maxConcurrency` (type: `integer`):

Maximum number of concurrent requests.

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

Optional cap on total requests (search pages). Leave empty to scrape every page. Useful for test runs.

## Actor input object example

```json
{
  "zips": [
    "90210",
    "10001"
  ],
  "radius": 50,
  "maxConcurrency": 10
}
```

# 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 = {
    "zips": [
        "90210",
        "10001"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("e-commerce/carmax-zipcode-search-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 = { "zips": [
        "90210",
        "10001",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("e-commerce/carmax-zipcode-search-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 '{
  "zips": [
    "90210",
    "10001"
  ]
}' |
apify call e-commerce/carmax-zipcode-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,e-commerce/carmax-zipcode-search-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/VlUGuPiEFj7bxKWaM/builds/GRu8el9BUf763vkNR/openapi.json
