Autotrader Canada Scraper
Pricing
from $0.50 / 1,000 results
Autotrader Canada Scraper
Scrape AutoTrader.ca vehicle listings at scale. Get price, year, mileage, trim, dealer name and phone number, CARFAX report links, full specifications and AutoTrader's own market median price. Multiple search URLs, newest-first sorting, optional full listing details. Export to JSON, CSV or Excel.
Pricing
from $0.50 / 1,000 results
Rating
5.0
(4)
Developer
Coder
Maintained by CommunityActor stats
0
Bookmarked
43
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
AutoTrader.ca Scraper
Scrape vehicle listings from AutoTrader.ca — Canada's largest automotive marketplace. Paste one or more search URLs and get clean, structured rows with price, mileage, trim, location, dealer, and optionally the VIN and CARFAX report link for every vehicle.
Built for dealers tracking competitor inventory, analysts following used-car prices, and anyone who needs AutoTrader.ca data in a spreadsheet instead of a browser tab.
What you get
Every listing returns the vehicle (year, make, model, trim, engine, fuel,
transmission, mileage, body type), the price (including a clear flag when a
listing is price on request rather than a misleading $1), the location
(city, province, postal code, distance from your search point) and the seller
(dealer name, type, address, dealer page).
Turn on Include full listing details and each row also gets:
| Field | What it is |
|---|---|
vin | The 17-character Vehicle Identification Number |
carfax_report_url | Direct link to that vehicle's CARFAX history report |
description | The seller's full write-up |
image_urls | Every photo on the listing, not just the thumbnail |
body_color, doors, seats | Specifications from the listing page |
warranty_exists, status, is_deliverable | Listing condition flags |
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | — | One or more AutoTrader.ca search URLs. Apply your filters on the site, then paste the address bar. |
maxListings | integer | 10 | Listings per search URL. Total = this × number of URLs. |
fetchDetails | boolean | false | Open each listing for VIN, CARFAX link, description and photos. |
scrapeNewListings | boolean | false | Sort newest first. |
Any filter the site supports works, because the filters live in the URL:
https://www.autotrader.ca/cars/toyota/corolla/qc/montreal/https://www.autotrader.ca/cars/bmw/?prx=100&pRng=%2C40000
Output
One row per listing, streamed to the dataset as soon as it is ready — you can start working with results while the run is still going.
{"ad_id": "71392833","title": "2022 Volvo XC90 T6 AWD Momentum","year": 2022,"make": "Volvo","model": "XC90","trim": "T6 AWD Momentum (7-Seat) Climate Package","price": "$ 38,888","price_amount": 38888,"mileage": "28,800 km","transmission": "Automatic","fuel": "Gasoline","city": "MONTRÉAL","province": "QC","postal_code": "H4P 2H4","distance_km": 6,"dealer_name": "Silver Star Mercedes-Benz Montréal","vin": "YV4A22PK8N1234567","carfax_report_url": "https://www.carfax.ca/order?vin=YV4A22PK8N1234567","detailFetched": true,"url": "https://www.autotrader.ca/offers/volvo-xc90-..."}
All fields are shown in the dataset by default.
How it handles the awkward cases
- A listing whose detail page will not load is still delivered, with all its
search-page fields and
detailFetched: false— and it is not billed for details. Other scrapers quietly drop these, so you pay for a search that found 50 cars and receive 30 with no explanation. - "Price on request" listings are labelled, not invented. The site reports
these with a placeholder value; they arrive with
price_on_request: trueand no price, rather than a $1 supercar in your spreadsheet. - New cars have no mileage and are returned as such, rather than with a fabricated zero.
- The site's own result count is respected, so paging stops where the search actually ends instead of guessing.
- A page that fails is retried before the search is given up on, and if listings still cannot be collected the run says so rather than quietly returning fewer results than you asked for.
Billing
Pay per event, charged only for what reaches your dataset:
listing— one per listing delivered.detail— one per listing whose detail page actually returned data.
Failed fetches, retries, blocked requests and empty results are never charged.
Free plan
Free Apify accounts can run this Actor with every feature enabled on a limited volume, so you can evaluate the real output before paying. The run log states exactly what was trimmed.
Notes
- Only public AutoTrader.ca listing data is collected. No logins, no personal accounts, no private data.
- Very large runs are best split across several search URLs — the Actor works them in parallel.