🇨🇦🚘 Multiple site Car data Scraper(💰1/1000)
Pricing
$1.00 / 1,000 results
🇨🇦🚘 Multiple site Car data Scraper(💰1/1000)
Search AutoTrader.ca, CarGurus.ca, Kijiji Autos, Craigslist Canada, Carpages.ca, and UsedCarCanada.ca in one run. One make/model search returns every matching listing, normalized into a single dataset — price, mileage, VIN, dealer info, and photos. JSON, CSV, or Excel.
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
Jordan Byte
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
🍁 All Car Data Scraper Canada
Search 6 major Canadian car sites at once — one make/model, one run, one dataset.
Instead of running six separate scrapers and stitching the results together yourself, this actor queries AutoTrader.ca, CarGurus.ca, Kijiji Autos, Craigslist (Canadian cities), Carpages.ca, and UsedCarCanada.ca in a single run and hands back every listing in one normalized shape — same field names, same structure, regardless of which site it came from. Ask for a used Honda Civic and every site that has one gives you one.
✨ Why use this instead of six separate scrapers
- 🔎 One search, six sites —
make/model/year/price filters apply everywhere at once, so you get one clean comparison set instead of six inconsistent ones. - ⚡ Built for speed — every site is queried at the same time, so the total run time is close to whichever single site is slowest, not the sum of all six.
- 🆕 New and used, one toggle — most sites here carry both new and used inventory; a single
conditionfilter applies it consistently across all of them instead of you having to know each site's own filter quirks. - 🛡️ Built to survive anti-bot walls — several of these sites are aggressive about blocking non-residential or non-Canadian traffic. This actor handles that so you don't have to babysit failed runs.
- 💾 Skips repeat work — an identical search run recently is served instantly from cache instead of re-scraping everything.
- 🔔 Notifies you when it's done — optional Slack/Discord webhook, no extra credentials needed.
- 🖼️ Photos included — listing images are pulled through to the output wherever the site has one.
- 🧩 Resilient by design — one site failing or getting temporarily blocked never brings down the other five; you still get everything the rest could find.
🌐 Individual site actors
Each site below also exists as its own standalone, independently-maintained actor in case a single-site scraper is all you need: AutoTrader.ca, CarGurus.ca, Kijiji Autos, Craigslist Canada, Carpages.ca, and UsedCarCanada.ca. This actor doesn't call or depend on any of them — it's a fully separate implementation.
🗺️ Sites covered
| Site | Inventory | Default on |
|---|---|---|
| autotrader (AutoTrader.ca) | New & used | ✅ |
| cargurus (CarGurus.ca) | New & used | ✅ |
| kijiji (Kijiji Autos) | New & used | ✅ |
| craigslist (Craigslist, Canadian cities) | Used only | ✅ |
| carpages (Carpages.ca) | New & used | ✅ |
| usedcarcanada (UsedCarCanada.ca) | Used only | ⬜ opt-in |
usedcarcanada needs a real browser and can take noticeably longer to get past that site's own bot defences, so it's left off by default — add it to the sites input if you want fuller coverage and don't mind the extra time. One site failing or getting temporarily blocked never affects the others — every site is independently retried and fully isolated from the rest of the run.
⚙️ Input
Only make is required — everything else has a sensible default, grouped into sections so the input form stays simple unless you need to go further.
🔍 Search
| Field | Type | Description |
|---|---|---|
make | string | Required. e.g. "Ford". |
model | string | Optional. e.g. "F-150". Leave blank to search all models of the make. |
condition | string | "any" (default), "new", or "used". "New only" skips craigslist and usedcarcanada, since they're used-only marketplaces; "used only" still queries all 6, since every site has used stock. |
yearMin / yearMax | integer | Optional year range, where supported. |
priceMax | integer | Optional max price (CAD), where supported. |
🌍 Sites & result limits
| Field | Type | Description |
|---|---|---|
sites | array | Which sites to query — one checkbox per site. Defaults to the 5 fastest ones; add usedcarcanada here for fuller coverage. |
maxItemsPerSite | integer | Stop each site once this many listings are collected. Default 5. Set to 0 for "no limit" (up to a 2,000/site safety ceiling). |
Every site is queried at the same time from the moment the run starts, so results come back roughly as fast as the quickest sites can deliver them, and the total run time doesn't stack up site by site.
⚡ Caching
| Field | Type | Description |
|---|---|---|
useCache | boolean | Default true. If an identical search (same make/model/filters/sites/limit) was already run before, instantly return those stored results instead of re-scraping every site again. Cached results never expire on their own — turn this off if a specific run needs to force a fresh scrape. |
The cache persists across runs, keyed to the exact search (make/model/condition/year/price/sites/limit, case-insensitive). Change any of those and it's a cache miss — a fresh scrape — by design.
🔔 Notifications
| Field | Type | Description |
|---|---|---|
slackWebhookUrl | string | Optional. Posts a summary (result count per site, or errors) here when the run finishes. Create one under Slack → Apps → Incoming Webhooks. |
discordWebhookUrl | string | Optional. Same summary, posted to a Discord channel. Create one under a channel's Integrations → Webhooks settings. |
Both are plain webhook POSTs — no extra credentials needed from you beyond the URL itself, and a failed webhook post never fails the run.
🛡️ Proxy
| Field | Type | Description |
|---|---|---|
proxyConfiguration | object | Required. Every site here blocks or aggressively rate-limits non-proxied traffic — a Canadian residential proxy is not optional, and each site fails fast with a clear error if one isn't available. Defaults to a CA-targeted residential proxy. |
📦 Output
One row per listing, normalized to the same shape regardless of source site — fields are ordered for how a shopper would actually scan a listing:
{"source": "cargurus","url": "https://www.cargurus.ca/Cars/inventorylisting/viewDetailsFilterViewInventoryListing.action?listingId=123456789","title": "2022 Honda Civic","image": "https://static.cargurus.com/images/forsale/2026/07/23/07/19/2022_honda_civic-pic.jpeg","make": "Honda","model": "Civic","price": 24500,"vin": null,"location": "Toronto, ON","sellerName": "Downtown Honda","sellerPhone": "(416) 555-0134","currency": "CAD","trim": "EX-L CVT","year": 2022,"condition": "used","mileage": 38200,"exteriorColor": "Sonic Grey Pearl","listedAt": null}
Not every field is available from every site — null means that particular site doesn't expose that field (or it wasn't available for that listing), not a scraping error. vin is currently only reliably populated by kijiji and craigslist (both expose it on the listing itself); the rest only surface it on a detail page they'd otherwise need a second request to fetch.
📝 Notes
- A Canadian residential proxy is required, not just recommended — every site here fails fast with a clear error if
proxyConfigurationcomes back empty, instead of wasting time on requests that were never going to succeed. condition: "new"narrows results but doesn't change which sites are queried unless a site is exclusively used-only (craigslist, usedcarcanada) — those two are skipped automatically rather than returning an empty result set.
📬 Custom work / contact
Want a custom actor, a site added to this one, or anything tweaked for your use case? Reach out:
- 📧 Email: sajanbista1030@gmail.com
- 💼 LinkedIn: linkedin.com/in/sajan-bista