# US Autotrader Scraper (`fmchisti/us-autotrader-scraper`) Actor

Scrape Autotrader.com vehicle listings nationwide or for a specific US state.

- **URL**: https://apify.com/fmchisti/us-autotrader-scraper.md
- **Developed by:** [Fahim Mahmud Chisti](https://apify.com/fmchisti) (community)
- **Categories:** Automation, Integrations, Other
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### What does US Autotrader Scraper do?

US Autotrader Scraper extracts public vehicle listings from [Autotrader.com](https://www.autotrader.com/) into a structured Apify dataset. It supports nationwide searches, verified state-specific results, keyword searches, filtered Autotrader URLs, and direct vehicle-detail URLs. Camoufox, browser sessions, retries, and US residential proxy support help handle Autotrader's JavaScript application and anti-bot controls.

### Why use US Autotrader Scraper?

- Monitor vehicle inventory across the entire United States.
- Restrict saved vehicles to any US state or Washington, DC.
- Compare prices, mileage, model years, trims, and sellers.
- Track newly listed vehicles using newest-first search and optional age filtering.
- Export results through the Apify API or as JSON, CSV, Excel, XML, RSS, or HTML.

### How to scrape Autotrader vehicles

1. Open the Actor's **Input** tab.
2. Add search keywords, Autotrader search URLs, or direct vehicle URLs.
3. Select **Entire United States** or **Specific state**.
4. When using a specific state, select its two-letter state code.
5. Set item/page limits and start the Actor.

The Actor adds location parameters to search URLs but also verifies each listing's location before saving state-specific output. This prevents nearby out-of-state inventory from leaking into state results.

### Input

- `searchKeywords` — phrases such as `Toyota Camry`, `Ford F-150`, or `electric SUV`.
- `startUrls` — Autotrader search or vehicle-detail URLs. Existing filters are preserved.
- `locationScope` — `nationwide` or `state`.
- `state` — required for state scope; supports all 50 states and DC.
- `maxItems` — maximum listings saved across all searches; `0` means unlimited.
- `maxPagesPerSearch` — maximum result pages per search.
- `maxListingAgeDays` — optional publication-age limit. Listings without a known date are excluded.
- `scrapeItemDetails` — opens detail pages for VIN, mileage, seller, specifications, description, and images.
- `proxyConfiguration` — US residential proxy settings are strongly recommended.

Nationwide example:

```json
{
    "searchKeywords": ["Toyota Camry"],
    "locationScope": "nationwide",
    "maxItems": 100,
    "maxPagesPerSearch": 3,
    "scrapeItemDetails": true
}
````

Texas example:

```json
{
    "startUrls": [
        {
            "url": "https://www.autotrader.com/cars-for-sale/all-cars?startYear=2020&endYear=2026"
        }
    ],
    "locationScope": "state",
    "state": "TX",
    "maxItems": 50,
    "scrapeItemDetails": true
}
```

### Output

The output uses the same vehicle contract as the eBay and Craigslist Actors:

```json
{
    "itemId": "765432109",
    "title": "2022 Toyota Camry XSE",
    "listedAt": "2026-07-18T14:30:00.000Z",
    "price": "29995",
    "currency": "USD",
    "year": "2022",
    "make": "Toyota",
    "model": "Camry",
    "trim": "XSE",
    "mileage": "31220",
    "vin": "4T1TESTVIN1234567",
    "location": "Austin, TX",
    "seller": "Example Toyota",
    "imageUrl": "https://images.autotrader.com/example.jpg",
    "images": ["https://images.autotrader.com/example.jpg"],
    "url": "https://www.autotrader.com/cars-for-sale/vehicle/765432109"
}
```

Additional fields include description, condition, body type, engine, transmission, drivetrain, fuel type, colors, seller type, title status, source URL, page number, scrape timestamp, and a `specifics` object. Fields unavailable on a listing remain `null`.

Autotrader usually does not publish an exact listing date. When only a "days on site" counter is available, the Actor derives `listedAt` from it (accurate to the day, midnight UTC) and marks this with `"listedAtDerivedFrom": "daysOnSite"` in `specifics`. Private-seller listings sometimes expose no counter at all; if Autotrader flags them as newly listed, the Actor sets `listedAt` to the current day and marks it with `"listedAtDerivedFrom": "isNewlyListed"`. The `maxListingAgeDays` filter uses the same value.

### Cost and performance

Autotrader requires a real browser, so this Actor uses more memory and compute than HTTP-only scrapers. Detail mode also opens one page per vehicle. Use `maxItems`, `maxPagesPerSearch`, and `maxListingAgeDays` to control cost. State searches may inspect extra listings because location is verified before output.

### Tips

- Keep the default US residential proxy configuration.
- Use filtered Autotrader search URLs for make, model, price, year, mileage, body style, and condition filters.
- Enable detail scraping for the most reliable state filtering and richest output.
- The run Container URL exposes `/` and `/status` for live progress while the Actor is active.

### Legal notice and support

Scrape only public information and comply with applicable law, Autotrader's terms, and reasonable request rates. The Actor does not intentionally collect private contact information. Autotrader can change its application or blocking behavior; if a run fails, provide its run ID and affected URL through the Actor's Issues tab.

# Actor input Schema

## `searchKeywords` (type: `array`):

Used only when Start URLs are empty. Vehicle keywords such as Toyota Camry, Ford F-150, or electric SUV. Each keyword creates a separate search.

## `startUrls` (type: `array`):

Autotrader search-result or vehicle-detail URLs. When provided, the Actor crawls only these URLs and ignores keywords. Existing make, model, price, year, mileage, and other URL filters are preserved.

## `locationScope` (type: `string`):

Search all United States inventory or restrict saved results to one state.

## `state` (type: `string`):

Required when Location scope is Specific state. Results are verified against listing location before being saved.

## `maxItems` (type: `integer`):

Maximum listings to save across all searches. Set to 0 for no item limit.

## `maxPagesPerSearch` (type: `integer`):

Maximum result pages to process for each keyword or start URL.

## `maxListingAgeDays` (type: `integer`):

Optional. Save only listings with a known publication date within this many days.

## `scrapeItemDetails` (type: `boolean`):

Open each vehicle page for VIN, mileage, specifications, seller, description, and full images. Recommended for state filtering.

## `proxyConfiguration` (type: `object`):

US residential proxies are strongly recommended because Autotrader blocks most cloud and datacenter traffic.

## Actor input object example

```json
{
  "searchKeywords": [],
  "startUrls": [
    {
      "url": "https://www.autotrader.com/cars-for-sale/all-cars"
    }
  ],
  "locationScope": "nationwide",
  "maxItems": 100,
  "maxPagesPerSearch": 3,
  "scrapeItemDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `scrapeState` (type: `string`):

No description

## `debugItems` (type: `string`):

No description

## `debugPages` (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 = {
    "searchKeywords": [],
    "startUrls": [
        {
            "url": "https://www.autotrader.com/cars-for-sale/all-cars"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fmchisti/us-autotrader-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 = {
    "searchKeywords": [],
    "startUrls": [{ "url": "https://www.autotrader.com/cars-for-sale/all-cars" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("fmchisti/us-autotrader-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchKeywords": [],
  "startUrls": [
    {
      "url": "https://www.autotrader.com/cars-for-sale/all-cars"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call fmchisti/us-autotrader-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fmchisti/us-autotrader-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "US Autotrader Scraper",
        "description": "Scrape Autotrader.com vehicle listings nationwide or for a specific US state.",
        "version": "0.1",
        "x-build-id": "xAP3nEM4aKPdZWC1f"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fmchisti~us-autotrader-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fmchisti-us-autotrader-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/fmchisti~us-autotrader-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fmchisti-us-autotrader-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/fmchisti~us-autotrader-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fmchisti-us-autotrader-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchKeywords": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "Used only when Start URLs are empty. Vehicle keywords such as Toyota Camry, Ford F-150, or electric SUV. Each keyword creates a separate search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Autotrader search-result or vehicle-detail URLs. When provided, the Actor crawls only these URLs and ignores keywords. Existing make, model, price, year, mileage, and other URL filters are preserved.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "locationScope": {
                        "title": "Location scope",
                        "enum": [
                            "nationwide",
                            "state"
                        ],
                        "type": "string",
                        "description": "Search all United States inventory or restrict saved results to one state.",
                        "default": "nationwide"
                    },
                    "state": {
                        "title": "State",
                        "enum": [
                            "AL",
                            "AK",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "FL",
                            "GA",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "OH",
                            "OK",
                            "OR",
                            "PA",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY",
                            "DC"
                        ],
                        "type": "string",
                        "description": "Required when Location scope is Specific state. Results are verified against listing location before being saved."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum listings to save across all searches. Set to 0 for no item limit.",
                        "default": 100
                    },
                    "maxPagesPerSearch": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum result pages to process for each keyword or start URL.",
                        "default": 3
                    },
                    "maxListingAgeDays": {
                        "title": "Only listings from the last (days)",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Optional. Save only listings with a known publication date within this many days."
                    },
                    "scrapeItemDetails": {
                        "title": "Scrape item details",
                        "type": "boolean",
                        "description": "Open each vehicle page for VIN, mileage, specifications, seller, description, and full images. Recommended for state filtering.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "US residential proxies are strongly recommended because Autotrader blocks most cloud and datacenter traffic.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
