Autotrader US at a glance
Autotrader US is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes id, vin, year, make and model, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Ecommerce, Developer Tools, Travel
- Pricing
- $2.20 per 1,000 results (Free plan), from $1.50 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 36 options
Scrape US car listings from Autotrader by make, model, ZIP, price, year, body style, filters, or listing URLs. Returns VIN, price, KBB deal rating, mileage, colors, MPG, drivetrain, dealer name, phone, location, history flags, photos, and 60+ fields.
What Autotrader US can do
- 60+ fields per listing, including VIN, full dealer contact, and the site's own deal rating.
- KBB fair-purchase price range and how each listing compares, when the site provides it.
- Vehicle history flags: no accidents reported, no salvage title, no frame damage, no flood damage, single owner, and free history report availability.
- Two ways to search: build a query from filters, or paste any AutoTrader search or listing URL.
- Forward pagination that walks a whole result set by default, bounded only by the total listings cap you set, so runs stay predictable.
- Optional per-listing detail enrichment for full options, extended specs, and complete vehicle history.
Choose what to collect
These inputs let you configure Autotrader US - Cars, Prices, Dealers & VINs. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Choose 'search' to build a query from filters below, or 'url' to paste Autotrader search or listing links. |
zipstring | US ZIP code the search is centred on. Required in search mode. |
searchRadiusinteger | Distance from the ZIP code to search. Use a large value for a wider area. |
makearray | Vehicle make codes, e.g. HONDA, TOYOTA, FORD. Leave empty for all makes. |
modelarray | Vehicle model codes, e.g. CIVIC, CAMRY. Leave empty for all models of the selected make(s). |
minYearinteger | Oldest model year to include. |
maxYearinteger | Newest model year to include. |
Show 29 more inputs
| Input | What it controls |
|---|---|
minPriceinteger | Lowest listing price to include. |
maxPriceinteger | Highest listing price to include. |
maxMileageinteger | Highest odometer reading to include. |
conditionarray | New, Used, Certified, or Third-party certified. Leave empty for all. |
bodyStylearray | Filter by one or more body styles. |
fuelTypearray | Filter by fuel type. |
driveTypearray | Filter by drivetrain. |
transmissionarray | Filter by transmission. |
exteriorColorarray | Filter by simplified exterior color, e.g. BLACK, WHITE, RED, BLUE, GRAY. |
vehicleHistoryarray | Restrict to vehicles matching history criteria. |
dealTypearray | Restrict to Good Price or Great Price listings (per the site's price rating). |
sellerTypestring | Restrict to dealers or private sellers. |
sortBystring | Ordering of the results. |
urlsarray | Paste Autotrader search result pages (SEO, query-form, paginated, filtered, used/new, make-only, body-style, mobile host), the listing JSON service URL, or individual vehicle pages. Dealer directory pages are skipped with a warning. Leaving this untouched in URL mode scrapes the example URLs. In URL mode the filter fields above are ignored. |
startUrlsarray | Alias of Autotrader URLs for compatibility with other Autotrader scrapers. Used when Autotrader URLs is empty or still the example list; when it holds URLs it selects URL mode. Items may be plain strings or {url} objects. |
fetchDetailsboolean | When on, each listing is enriched with the richer per-vehicle page (full options, extended specs, complete history). Adds an extra request per listing. |
maxListingsinteger | The sole soft cap on the run, applied across the whole run (not per page or per search). Default 20. Set 0 for unlimited. |
maxItemsinteger | Alias of Max listings. Used only when Max listings is not set. |
maxPagesinteger | Safety bound on how many result pages to walk per search or URL. 0 (default) means unlimited, the walk stops naturally once a page comes back empty or keeps repeating listings already collected, or sooner once Max listings is reached. Set a number only for an explicit page cap below that natural stop. |
endPageinteger | Alias of Max pages per search. Used only when Max pages per search is not set. |
resumeFromRunIdstring | Optional. Paste a previous run ID or dataset ID to continue a large walk-all pull: listings already saved by that run are loaded before scraping starts and skipped, so this run only appends new listings. Leave empty for a normal fresh run. |
incrementalModeboolean | Remember what each scheduled run returned and label every listing NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED. UNCHANGED listings are skipped (not saved, not charged) unless Emit unchanged is on. Off by default: output is identical to a normal run. |
stateKeystring | Optional name for the remembered baseline. Leave empty to key it automatically on your search or URLs and filters (changing Max listings never starts a new baseline). Use the same key across runs to share one baseline. |
emitUnchangedboolean | Also save listings that did not change since the last run, labelled UNCHANGED. Default off. |
emitExpiredboolean | Save a row labelled EXPIRED for listings seen in the baseline that the latest complete scan no longer returns. Skipped when the scan was cut short by Max listings, Max pages or a resume. |
ignoreFieldsForChangesarray | Output field names that must not count as a change, for example price or distanceFromSearch. They stay in the output. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write. Leave empty to skip; never changes the dataset output. Supported: Notion, Linear, Airtable, Apify. |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
idID (text)vinVIN (text)yearYear (number)makeMake (text)modelModel (text)trimTrim (text)pricePrice (number)mileageMileage (number)exteriorColorColor (text)fuelTypeFuel (text)dealIndicatorDeal (text)sellerNameSeller (text)Show 27 more fields
sellerPhonePhone (text)sellerCityCity (text)sellerStateState (text)urlURL (link)sellerTypeType (text)sellerZipZIP (text)distanceFromSearchDistance (mi) (number)kbbFairPurchasePriceKBB Fair Price (number)kbbPriceDeltavs. KBB (number)kbbPriceLowKBB Low (number)kbbPriceHighKBB High (number)transmissionTransmission (text)driveTypeDrivetrain (text)mpgCityMPG City (number)mpgHighwayMPG Hwy (number)brandBrand (text)stockNumberStock number (text)engineEngine (text)mileageValueMileage (number) (number)mileageUnitMileage unit (text)specificationsSpecifications (object)ownerTitleDealer (text)ownerPhoneDealer phone (text)changeTypeChange (text)changedFieldsChanged fields (array)firstSeenAtFirst seen (date)lastSeenAtLast seen (date)Example output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"id": "000000001",
"vin": "1XXXX00000X000000",
"url": "https://www.autotrader.com/cars-for-sale/vehicle/000000001",
"title": "Used 2023 Sample Make Sample Model",
"year": 2023,
"make": "Sample Make",
"model": "Sample Model",
"trim": "Sample Trim",
"price": 22000,
"displayPrice": 22000,
"dealIndicator": "Great",
"kbbFairPurchasePrice": 22500,
"kbbPriceLow": 21000,
"kbbPriceHigh": 23500,
"mileage": "30,000",
"mileageValue": 30000,
"mileageUnit": "mi",
"exteriorColor": "White",
"interiorColor": "Black",
"fuelType": "Gasoline",
"transmission": "Automatic",
"driveType": "Front Wheel Drive",
"mpgCity": 30,
"mpgHighway": 38,
"sellerName": "Sample Motors",
"sellerType": "dealer",
"isPrivateSeller": false,
"sellerPhone": "+10000000000",
"sellerCity": "Sample City",
"sellerState": "CA",
"sellerZip": "00000",
"vehicleHistory": {
"noAccidentsReported": true,
"noSalvageTitle": true,
"noFrameDamage": true,
"noFloodDamage": true,
"singleOwner": true,
"freeHistoryReport": false
},
"images": [
"https://images.autotrader.com/000000000.jpg"
],
"dealer": {
"name": "Sample Motors",
"phone": {
"value": "0000000000"
},
"location": {
"address": {
"city": "Sample City",
"state": "CA",
"zip": "00000"
}
}
}
}Ways to use this data
- Car shoppers and price researchers: compare listings across dealers by price, mileage, and the site's own deal rating.
- Dealership and inventory teams: track competitor pricing and days-on-market within a search area.
- Vehicle history and valuation tools: pull VINs, KBB fair-purchase price ranges, and history flags to feed valuation models.
- Lead generation and CRM pipelines: capture current listings and dealer contact details for a make or model.
- Market analysts and data scientists: build historical pricing datasets across ZIP codes, makes, and body styles.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Autotrader US return?
The documented output for Autotrader US includes id, vin, year, make, model, trim, price and mileage. Availability of each field depends on the source page and the selected mode.
How much does Autotrader US cost?
It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I run this on a schedule to catch new listings?
Yes. Schedule it from the Schedules tab and switch on incrementalMode. The actor remembers what each run returned for the same search (or for your stateKey) and adds changeType (NEW, UPDATED, UNCHANGED, REAPPEARED, EXPIRED), changedFields, firstSeenAt and lastSeenAt to every row. UNCHANGED listings are skipped, and not charged, unless emitUnchanged is on. EXPIRED rows appear only after a scan that completed (not one cut short by Max listings, Max pages or a resume, and not one where a pasted URL was skipped) and can be turned off with emitExpired. Use ignoreFieldsForChanges to keep noisy fields such as distanceFromSearch from counting as changes. Changing Max listings does not start a new baseline. To continue one very large pull across runs, use resumeFromRunId.
What is the difference between maxListings and maxPages?
maxListings is the cap almost everyone wants: it stops the whole run once that many listings are collected. maxPages only bounds how many result pages a single search or URL walks before giving up, and its default of 0 already lets the walk stop naturally on its own. Leave maxPages at 0 unless you specifically want a lower, explicit page limit.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear, or Airtable.
