cargurus.ca scraper avatar

cargurus.ca scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
cargurus.ca scraper

cargurus.ca scraper

This actor scrapes vehicle listings from CarGurus.ca search result pages. Pass any CarGurus.ca inventory search URL and get back structured JSON with listing details — price, mileage, year, make, model, dealer name, location, images, and CPO status.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Mohamed Ibrahim

Mohamed Ibrahim

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

3 days ago

Last modified

Share

CarGurus Canada Scraper

Scrape CarGurus.ca vehicle listings with DataDome bypass. Extract price, mileage, dealer info, images, and more. Automatic pagination fetches up to 200 listings across multiple pages.

What does CarGurus Canada Scraper do?

This actor scrapes vehicle listings from CarGurus.ca search result pages. Pass any CarGurus.ca inventory search URL and get back structured JSON with listing details — price, mileage, year, make, model, dealer name, location, images, and CPO status.

CarGurus.ca is protected by DataDome bot detection. This actor bypasses it using Chrome TLS fingerprinting via got-scraping and Apify residential proxies — no headless browser needed, keeping costs low and runs fast.

Features

  • Automatic pagination — fetches multiple pages of results automatically. Request up to 200 listings per run; the actor handles page offsets behind the scenes.
  • HTTP-only — no Playwright or Puppeteer overhead. A single page fetches in seconds, not minutes.
  • DataDome bypass — uses got-scraping with Chrome TLS fingerprinting and Canadian residential proxies to pass bot detection.
  • Multi-strategy extraction — parses CarGurus's embedded __PREFLIGHT__ JSON for reliable structured data, with DOM and alternative endpoint fallbacks if the page structure changes.
  • Smart session management — establishes cookies on the homepage first, then fetches search results as an authenticated session.
  • Deduplication — automatically removes duplicate listings across pages.

Input

FieldTypeRequiredDefaultDescription
searchUrlstringYesA CarGurus.ca inventory search URL
maxItemsintegerNo25Max listings to return (1–200). Fetches multiple pages if needed.
maxPagesintegerNo10Max pages to fetch (1–20). Each page adds ~2s of run time.
yearMinintegerNoFilter to model years >= this value
yearMaxintegerNoFilter to model years <= this value
debugbooleanNofalseEnable verbose logging for troubleshooting

Example input

{
"searchUrl": "https://www.cargurus.ca/Cars/inventorylisting/viewDetailsFilterViewInventoryListing.action?zip=M5V%203A8&distance=50&entitySelectingHelper.selectedEntity=m7",
"maxItems": 100,
"maxPages": 5
}

Output

Each listing is returned as a JSON object:

{
"listingId": "432711846",
"listingUrl": "https://www.cargurus.ca/Cars/inventorylisting/viewDetailsFilterViewInventoryListing.action?#listing=432711846",
"listingTitle": "2022 Audi A4 45 TFSI quattro Progressiv S line AWD",
"year": 2022,
"make": "Audi",
"model": "A4",
"mileage": 34200,
"priceCAD": 38995,
"imageUrl": "https://static.cargurus.com/images/forsale/...",
"dealerName": "Toronto Auto Gallery",
"location": "Toronto, ON",
"isCertifiedUsed": false
}
FieldTypeDescription
listingIdstringCarGurus listing ID
listingUrlstringDirect link to the listing
listingTitlestringFull listing title (year, make, model, trim)
yearnumberModel year
makestringVehicle manufacturer
modelstringVehicle model
mileagenumberOdometer reading in km
priceCADnumberListed price in CAD
imageUrlstringPrimary listing photo URL
dealerNamestringDealer or seller name
locationstringCity/province of the listing
isCertifiedUsedbooleanWhether the vehicle is Certified Pre-Owned

How to build a search URL

  1. Go to cargurus.ca
  2. Search for vehicles with your desired filters (make, model, location, price range, etc.)
  3. Copy the URL from your browser's address bar
  4. Paste it as the searchUrl input

How pagination works

CarGurus shows ~24 listings per page. When you set maxItems higher than one page, the actor automatically:

  1. Fetches the first page and reads the total available listings from CarGurus's metadata
  2. Calculates how many pages are needed to reach your maxItems target
  3. Fetches subsequent pages with randomized delays (1.5–2.5s) to avoid detection
  4. Deduplicates results by listing ID before returning

Set maxPages to control how many pages the actor will fetch. Each additional page adds ~2 seconds of run time and uses residential proxy bandwidth.

Performance

ScenarioRun timeApprox. cost
25 listings (1 page)5–15s~$0.01–0.03
50 listings (2–3 pages)10–25s~$0.02–0.05
100 listings (4–5 pages)20–40s~$0.04–0.08
200 listings (8–10 pages)40–70s~$0.08–0.15

Use cases

  • Market research — track pricing trends across regions with large datasets
  • Dealer intelligence — monitor competitor inventory comprehensively
  • Aggregator apps — feed CarGurus.ca data into your car search platform
  • Price alerts — run on a schedule and compare results over time
  • Data analysis — export hundreds of listings to CSV for spreadsheet analysis