Autotrader Scraper & API - US Cars, VIN, Price & Mileage
Pricing
from $1.00 / 1,000 run start fees
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
13 days ago
Last modified
Categories
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
- Open an Autotrader search for your target location and vehicle category.
- Apply the make, model, price, mileage, radius and condition filters you need, then copy the search address.
- Paste that address into
search_url, choose your maximum number of listings and start the actor. - Open the dataset or export it as JSON, CSV or Excel. Use
listing_idto identify an advertisement andvinto 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:
| Field | JSON type | Default and behaviour |
|---|---|---|
search_url | string | An 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. |
limit | integer | Default 100, range 1 to 2000. Maximum listings requested; available inventory and the page limit still apply. |
retries | integer | Default 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.
| Field | JSON type | Meaning |
|---|---|---|
listing_id | string | Source advertisement identifier. |
vin | string or null | Vehicle Identification Number, uppercased and checked for the 17-character VIN format. |
title | string or null | Listing title. |
year | integer or null | Vehicle model year. |
make, model, trim | string or null | Vehicle make, model and trim. |
price | number or null | Advertised asking price, excluding separately reported dealer fees. |
currency | string | USD. |
dealer_fees | number or null | Sum of fees declared by the listing. |
mileage | integer or null | Odometer reading in miles. |
engine, transmission, drive_type, fuel_type | string or null | Listed vehicle specifications. |
body_styles | array or null | Body-style objects; body_styles[].code and body_styles[].name remain strings. |
doors | string or null | Listed door count, retained as text. |
exterior_color, interior_color | string or null | Exterior and interior colours. |
listing_type | string or null | Source condition, such as NEW, USED or CERTIFIED. |
days_on_site | integer or null | Listing age as reported by the source. |
is_reduced_price, is_newly_listed | boolean | Source price-reduction and recent-listing flags. |
has_special_offer, has_leather_seats | boolean | Source offer and equipment flags. |
image | string or null | First listing image URL. |
url | string | Autotrader vehicle listing link. |
position | integer | Consecutive 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
priceanddealer_feestogether 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 approach | Published scope | Fit of this actor |
|---|---|---|
| Manual browsing and copying | Individual search and vehicle pages | Collects a structured, deduplicated dataset for repeated analysis. |
| epctex Autotrader Scraper | Search and listing-detail URLs, with optional reviews | Uses one search URL and preserves the existing flat listing fields. |
| memo23 AutoTrader.com Scraper | Search and vehicle inputs, dealer records and optional vehicle-page enrichment | Focuses on VIN, asking price, mileage, fees and search-page specifications. |
| Auto Trader UK or Canadian AutoTrader tools | Separate country marketplaces and schemas | Covers 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.