Autotrader Scraper & API - US Cars, VIN, Price & Mileage avatar

Autotrader Scraper & API - US Cars, VIN, Price & Mileage

Pricing

from $1.00 / 1,000 run start fees

Go to Apify Store
Autotrader Scraper & API - US Cars, VIN, Price & Mileage

Autotrader Scraper & API - US Cars, VIN, Price & Mileage

Get US Autotrader car listings with VIN, price, mileage, dealer fees and specifications. Built for dealers and researchers tracking vehicle prices and inventory. Export JSON, CSV or Excel.

Pricing

from $1.00 / 1,000 run start fees

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

13 days ago

Last modified

Share

Autotrader API - US Car Listings Scraper

This Autotrader API turns US Autotrader search pages into structured car listings for dealer price monitoring, vehicle research and inventory analysis. Get VIN, asking price, mileage, dealer fees, specifications and days on site in a dataset you can export or collect through the Apify API.

The actor is an independent data collection tool, operated by ShoppingResult. Its Store address remains s-r/autotrader-scraper. It reads the United States marketplace at autotrader.com; Auto Trader UK and Canadian AutoTrader are separate sources.

How to use the Autotrader API

  1. Open an Autotrader search for your target location and vehicle category.
  2. Apply the make, model, price, mileage, radius and condition filters you need, then copy the search address.
  3. Paste that address into search_url, choose your maximum number of listings and start the actor.
  4. Open the dataset or export it as JSON, CSV or Excel. Use listing_id to identify an advertisement and vin to join records for the same physical vehicle.

The actor follows subsequent pages automatically and removes repeated listing ids. A large search uses the same three input settings as a small one. The requested limit is a maximum, and collection stops after 25 source pages or when that maximum is reached. Available inventory and interrupted pages can reduce the delivered total.

Search pages can include promoted or recommended vehicles alongside direct matches. Those listings remain in the output, preserving the actor's existing behaviour. If your analysis requires strict price, make or condition criteria, check the returned fields and filter your dataset accordingly.

Input reference

All existing input names and defaults remain available:

FieldJSON typeDefault and behaviour
search_urlstringAn Autotrader search URL. The Run form is prefilled with Seattle, all cars. There is no API default: supply the URL explicitly when starting a run through the API.
limitintegerDefault 100, range 1 to 2000. Maximum listings requested; available inventory and the page limit still apply.
retriesintegerDefault 4, range 1 to 8. Maximum attempts for a page before its failure is reported.

Make, model and regional settings belong in the search URL. There are no separate dealer-contact, vehicle-history or detail-enrichment input switches.

The following input was used for the captured Seattle response illustrated below on 9 October 2026. It requests the maximum volume; it does not promise 2000 results:

{
"search_url": "https://www.autotrader.com/cars-for-sale/all-cars/seattle-wa",
"limit": 2000,
"retries": 8
}

For routine monitoring, choose a limit appropriate to the inventory you need. Keep the same search URL between scheduled runs so that changes in filters do not look like changes in the market.

Output: one record per vehicle listing

Each dataset row represents a unique listing. All 28 original dataset fields keep their names and JSON types, including nested body-style objects. Missing values remain null; a missing price, fee or mileage reading is not replaced with zero.

FieldJSON typeMeaning
listing_idstringSource advertisement identifier.
vinstring or nullVehicle Identification Number, uppercased and checked for the 17-character VIN format.
titlestring or nullListing title.
yearinteger or nullVehicle model year.
make, model, trimstring or nullVehicle make, model and trim.
pricenumber or nullAdvertised asking price, excluding separately reported dealer fees.
currencystringUSD.
dealer_feesnumber or nullSum of fees declared by the listing.
mileageinteger or nullOdometer reading in miles.
engine, transmission, drive_type, fuel_typestring or nullListed vehicle specifications.
body_stylesarray or nullBody-style objects; body_styles[].code and body_styles[].name remain strings.
doorsstring or nullListed door count, retained as text.
exterior_color, interior_colorstring or nullExterior and interior colours.
listing_typestring or nullSource condition, such as NEW, USED or CERTIFIED.
days_on_siteinteger or nullListing age as reported by the source.
is_reduced_price, is_newly_listedbooleanSource price-reduction and recent-listing flags.
has_special_offer, has_leather_seatsbooleanSource offer and equipment flags.
imagestring or nullFirst listing image URL.
urlstringAutotrader vehicle listing link.
positionintegerConsecutive position, starting at 1, in the delivered dataset.

Additional fields are brand (the make value), condition (the listing_type value), image_url (the image value), country (US), source (autotrader-scraper) and fetched_at (the search's UTC collection timestamp). Existing integrations can continue using make, listing_type and image.

Real output example

This is the complete first vehicle row from the captured Seattle response on 9 October 2026. It is a historical observation, rather than a promise that this advertisement or price is still available:

{
"listing_id": "764719862",
"vin": "1GNSKBE05BR389327",
"title": "Used 2011 Chevrolet Tahoe LT",
"year": 2011,
"make": "Chevrolet",
"model": "Tahoe",
"trim": "LT",
"price": 5450,
"currency": "USD",
"dealer_fees": null,
"mileage": 193000,
"engine": "8-Cylinder",
"transmission": "Automatic",
"drive_type": "AWD4WD",
"fuel_type": "Flexible Fuel",
"body_styles": [
{
"code": "SUV",
"name": "Sport Utility"
}
],
"doors": "4",
"exterior_color": "Black",
"interior_color": "Black",
"listing_type": "USED",
"days_on_site": 335,
"is_reduced_price": false,
"is_newly_listed": false,
"has_special_offer": false,
"has_leather_seats": true,
"image": "https://assets.cai-media-management.com/ps-vehicle-media/0721909d-cec1-4a72-8cf0-43b3d1a73ab9.jpg",
"url": "https://www.autotrader.com/cars-for-sale/vehicle/764719862",
"position": 1,
"source": "autotrader-scraper",
"fetched_at": "2026-10-09T19:22:02.867Z",
"country": "US",
"brand": "Chevrolet",
"condition": "USED",
"image_url": "https://assets.cai-media-management.com/ps-vehicle-media/0721909d-cec1-4a72-8cf0-43b3d1a73ab9.jpg"
}

Output and run summary

The summary key-value record reports listingsReturned, pagesFetched, withVin, withPrice, withMileage, reducedPrice and errorCount. It also identifies the source through servedBy. If Autotrader cannot serve the initial search, the actor can read the corresponding Kelley Blue Book inventory; listing ids, VINs and Autotrader vehicle links retain their meaning. Conditional fields such as autotraderRefusal and fallbackNote explain that fallback, and an unsuccessful search can include refusal, outcome and reason.

An errors record appears when a page fails. A page without usable listings can be reported as no_listings. Earlier delivered rows remain available if a later page fails. A search with no usable output or a source-access failure finishes successfully with an empty dataset and an explanation in the run records. Empty output incurs no listing fee.

Fields worth knowing about

VIN identifies one physical car. Use it to follow a vehicle across dealers, sources and repeated snapshots. A listing can omit its VIN. Values outside the 17-character VIN format, including the excluded letters I, O and Q, become null. Format checking does not verify ownership, vehicle history or a VIN checksum.

Dealer fees are separate from price. dealer_fees: null means no fees were declared in the source data. It does not mean the final transaction has no fees. The sum of a non-null price and declared fees helps compare advertised costs, but does not include every possible tax or charge.

Listing age and price flags support monitoring. days_on_site describes the source's listing age. is_reduced_price is the source's flag, rather than a price history computed by this actor. To measure your own price changes, save successive datasets and join them on VIN or listing id.

Prices are advertised US dollar amounts, rather than transaction prices. Mileage stays in miles. New vehicles can legitimately show delivery mileage above zero.

Use cases for dealers, researchers and developers

  • Dealer price monitoring: compare repeated snapshots for the same VIN, including advertised price reductions and declared fees.
  • Local market pricing: group listings by make, model, year, mileage and region to compare similar stock. Review promoted or recommended rows before applying strict search criteria.
  • Inventory ageing: combine days_on_site, condition and price flags to identify listings that have remained advertised for longer.
  • Total advertised cost comparison: examine price and dealer_fees together while retaining the distinction between unknown and zero fees.
  • Specification analysis: filter collected rows by fuel, transmission, drive type, body style, equipment and colours.
  • Recurring data feeds: schedule the actor in Apify and collect datasets through its API for spreadsheets, dashboards or your own inventory application.

Comparison with other Autotrader data tools

Choose a tool according to the records your workflow needs:

Tool or approachPublished scopeFit of this actor
Manual browsing and copyingIndividual search and vehicle pagesCollects a structured, deduplicated dataset for repeated analysis.
epctex Autotrader ScraperSearch and listing-detail URLs, with optional reviewsUses one search URL and preserves the existing flat listing fields.
memo23 AutoTrader.com ScraperSearch and vehicle inputs, dealer records and optional vehicle-page enrichmentFocuses on VIN, asking price, mileage, fees and search-page specifications.
Auto Trader UK or Canadian AutoTrader toolsSeparate country marketplaces and schemasCovers the United States, with USD prices and mileage in miles.

The competitor scope above comes from their Store documentation. This actor has no dealer phone or address output, vehicle-history report, financing terms or monthly-payment estimate. Use the VIN with an appropriate separate service when your workflow needs history or additional vehicle information. It also has no built-in price-history dataset; history comes from the snapshots you retain.

Pricing

The existing price remains $0.001 per run plus $0.002 per delivered listing. The run_start event is charged once, including an invalid or empty search. The listing event counts only listings actually delivered to the dataset. Automatically collecting further pages does not add another run fee.

Users without a paid Apify plan receive at most ten listings per run. Those listings use the same run and listing prices; the cap limits delivery. Paid-plan users retain the requested limit up to 2000, subject to available inventory and the 25-page maximum. Check the actor's Pricing tab for the current Apify price display before starting a run.

FAQ

Is this an official Autotrader API?

No. This is ShoppingResult's independent Autotrader Scraper, accessed through Apify. It collects public US search listings. It does not provide dealer-account access, listing publication or the official Auto Trader UK partner API.

Does this scrape the United States or Auto Trader UK?

It reads US Autotrader searches and reports USD prices and mileage in miles. Auto Trader UK and Canadian AutoTrader are separate sources with different data contracts.

Will every listing have a VIN and price?

No. Either value can be missing. Missing data stays null, and a VIN outside the expected 17-character format is returned as null. The summary reports VIN, price and mileage coverage.

Why can the returned total be lower than the requested limit?

The limit is a maximum. Pages can overlap, inventory can change during collection, a later page can fail, and the actor stops after 25 pages. Each listing id is delivered once. Check the summary and errors records when a search is interrupted.

Are all delivered vehicles strict matches for my filters?

Search pages can carry recommendations and promoted listings. The actor preserves those records alongside other inventory. Apply your exact criteria to the returned values when your analysis requires a strict subset.

Can I start a run without supplying a search URL?

The Run form provides a Seattle search as its prefill. An API request does not receive that URL as a default. Supply search_url explicitly; missing input gives an empty run with a reason in the run records and the existing start fee.

Can I run this on a schedule and collect results through an API?

Yes. Create an Apify task with your search URL and settings, schedule it, and retrieve each run's dataset through the Apify API. Save the collection timestamp with your snapshots and use VIN or listing id for comparisons over time.