AutoTrader.ca Scraper: Car Prices, Price Drops & Market Stats
Pricing
from $0.36 / 1,000 listings
AutoTrader.ca Scraper: Car Prices, Price Drops & Market Stats
Export AutoTrader.ca car listings by make, model, province or postal code, past the 4,000-result limit: price, mileage, year, fuel, transmission, body style, price rating, seller type. Track new cars, price drops and removed ads; get median prices by model and year. No phone numbers or seller names.
Pricing
from $0.36 / 1,000 listings
Rating
0.0
(0)
Developer
Datasmithlab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
Export used and new car listings from AutoTrader.ca by make and model, for all of Canada, a province, or a postal code and radius. Every row comes with price (CAD), mileage, model year, fuel, transmission, body style, engine size, condition, city, province, AutoTrader's price rating (top / good price) and the seller type.
AutoTrader.ca shows at most 4,000 cars per search (200 pages). Type toyota/rav4 and the Actor checks the count. If there are more, it reads the search in price bands, so you get the whole market instead of the first 4,000.
Two things you won't get from a plain scraper:
- Monitoring. Schedule it and every later run returns only what changed:
NEWcars,PRICE_DROPandPRICE_UPwith the old price and the % change, andREMOVEDads. Unchanged cars are not returned and not charged. - Market summary by model and year. One row per make, model, model year and condition: listings, median and quartile price, median mileage, price per 1,000 km, dealer share and the share AutoTrader rates as a good or top price. Ready for residual-value and pricing work.
No login, no browser, no detail pages. No phone numbers, no dealer or seller names, no contact persons are collected: dealers and private sellers appear only as Dealer / Private. Only search result pages are read.
What you get
- Price.
price: 24987(CAD),priceText,priceLabel(top-price,good-price; empty when AutoTrader gives no rating),previousPriceOnSitewhen a crossed-out old price is shown. - The car.
make,model,version,bodyStyle,title,year,mileageKm,condition(used,new,demo...),fuel,transmission,engineCcm,isDamaged. - Where.
province,city,zip(postal code of the listing). - Seller.
sellerType(Dealer/Private). urlof the ad,imageUrl,photoCount.- Reports in the run's key-value store:
SEARCHES(one line per search and price band: cars available, pages read, status),MARKET_SUMMARYandHEALTH.
How to search
| You want | Set |
|---|---|
| All Honda Civics in Canada | Make / model honda/civic |
| A whole make | mazda |
| Only Alberta and B.C. | Provinces Alberta, British Columbia |
| Within 50 km of Toronto | Postal code M5V 3L9, Radius 50 |
| New automatic SUVs from 2023 under C$60,000 | Condition New, Transmission Automatic, Body type SUV, Model year from 2023, Price to 60000 |
| Only dealers (or only private sellers) | Seller |
| A daily new-car / price-drop feed | Only new or changed listings on, schedule the Actor daily |
| Median prices per model year | Market summary by model and year on |
| A search you already have open | paste it in AutoTrader.ca search URLs |
The make/model is written as in AutoTrader.ca links (https://www.autotrader.ca/cars/mercedes-benz/c-class). Unknown makes or models are reported in SEARCHES and are not charged.
Output example
{"recordType": "listing","id": "autotrader-ca:f12196ae-bb3d-4182-b684-49f5e3cd766e","title": "2019 BMW 3 Series 330i xDrive AWD CLUSTERNAV SUNROOF","make": "BMW","model": "3 Series","bodyStyle": "Sedan","year": 2019,"price": 24987,"currency": "CAD","priceLabel": "top-price","mileageKm": 83333,"condition": "used","fuel": "Gasoline","transmission": "Automatic","engineCcm": 2000,"province": "ON","city": "Toronto","zip": "M3J 2A9","sellerType": "Dealer","url": "https://www.autotrader.ca/offers/bmw-3-series-330i-xdrive-...-f12196ae-bb3d-4182-b684-49f5e3cd766e"}
In monitoring mode rows also carry changeType, previousPrice, priceChange, priceChangePct and firstSeenAt.
Market summary row:
{"recordType": "marketSummary","make": "Toyota", "model": "RAV4", "year": 2021, "condition": "used","listings": 112, "medianPrice": 31995, "p25Price": 28990, "p75Price": 34500,"minPrice": 21995, "maxPrice": 44990, "medianMileageKm": 68000,"medianPricePer1000Km": 470.5, "dealerShare": 0.92, "goodPriceShare": 0.41, "priceDropOnSiteCount": 0}
Pricing
Pay per event: a small start fee, then per listing row and per market summary row. Filtered-out cars and, in monitoring mode, unchanged cars are free. Set Max listings to cap the cost.
Good to know
- Cars without a price ("please call") are not included when a search is split into price bands.
HEALTH.splitCoverageshows how much of the original count the bands covered. - AutoTrader.ca does not let this Actor choose the sort order, so results come in the site's default order. Every search is checked for completeness; if cars moved between pages while reading, the search report says so and
REMOVEDis not reported for that run. - REMOVED is only reported when every search was read completely in this run and the previous one, and never when more than half of the remembered cars vanish at once (that is far more likely a site change than a real sell-out).
- Requests go out without a proxy. If AutoTrader.ca blocks them, the Actor retries through a residential proxy (at most 3 new IPs) and then stops and says so. It never tries to solve captchas or log in.
- Use the same settings for scheduled runs: monitoring memory is kept per set of searches and filters.
yearFrom/yearTofilter on the model year as shown on the ad.
FAQ
Why not every field from the ad page (VIN, equipment list, description)? The Actor only reads search results, which keeps it fast, cheap and polite. You still get the url of each ad.
Why no dealer name or phone? They are personal or contact data and not needed for price analysis or monitoring. Seller type is enough to compare dealer and private prices.
Is this affiliated with AutoTrader.ca? No. It reads public search pages at a polite pace and identifies itself honestly.