CarGurus Scraper — Car Listings, Prices, IMV & Dealer Leads avatar

CarGurus Scraper — Car Listings, Prices, IMV & Dealer Leads

Pricing

from $2.75 / 1,000 results

Go to Apify Store
CarGurus Scraper — Car Listings, Prices, IMV & Dealer Leads

CarGurus Scraper — Car Listings, Prices, IMV & Dealer Leads

Scrape CarGurus used & new car listings: price, Instant Market Value (IMV), deal rating, mileage, make/model/year/trim, VIN, color, price drops, and dealer name & phone for lead-gen. Paste a CarGurus search URL and get every listing across all pages.

Pricing

from $2.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Security

Limited permissions

Share

CarGurus Scraper — Car Listings, Prices, IMV, Deal Ratings & Dealer Leads

This CarGurus scraper extracts car listings from CarGurus at scale — with listed price, total price, Instant Market Value (IMV), deal rating, mileage, make/model/year/trim, VIN, exterior color, transmission, engine, price drops, and the selling dealer's name, phone & location. Paste a CarGurus search URL and the scraper paginates every result page into clean, structured rows — no login, no coding. Use it to scrape CarGurus inventory, prices and dealer contacts in minutes.

Export to JSON, CSV, Excel, or API.

Built for car dealers tracking competitor inventory, car shoppers hunting the best deal, pricing & market analysts, and automotive lead-gen teams building dealer prospect lists.


🔎 Why scrape CarGurus?

CarGurus is one of the largest automotive marketplaces in the US, listing millions of new, used and certified pre-owned vehicles from thousands of franchise and independent dealers. Every listing carries far more than a price: CarGurus computes an Instant Market Value (IMV), a deal rating (Great / Good / Fair / High / Overpriced price), a numeric deal score, days on market, and recent price drops — the exact signals shoppers and dealers use to judge whether a car is a bargain.

That intelligence is locked inside a JavaScript-rendered, anti-bot-protected site. Copy-pasting dozens of listings by hand is slow, error-prone, and impossible to keep fresh. CarGurus data also sits in deeply nested page objects (price, IMV, mileage, dealer and vehicle attributes each live in separate structures), so even a basic fetch returns nothing usable. This CarGurus scraper reads the real page data, flattens every nested object into one tidy row per car, and lets you export hundreds of listings on a schedule.

Common reasons people scrape CarGurus:

  • Build dealer lead lists — capture dealer name, phone, city, state and ZIP from every listing for automotive B2B outreach.
  • Track pricing vs IMV — compare listed price against CarGurus' Instant Market Value across a model or market.
  • Hunt the best deals — filter to GREAT_PRICE / GOOD_PRICE and sort by savings-vs-IMV.
  • Monitor competitor inventory — watch competing dealers' stock, prices, days-on-market and price cuts.
  • Analyze used-car market trends — aggregate make/model/region data for pricing and depreciation research.
  • Detect stale inventory & price drops — flag cars sitting on the market and fresh markdowns.
  • Power valuation tools — feed a used-car pricing, appraisal or trade-in model with live market comps.

✨ What this CarGurus scraper does

  • ✅ Search-URL driven — paste any CarGurus search result URL (by make/model, location, price, mileage, year, body style — any filter) and the scraper collects every listing it finds.
  • ✅ Automatic pagination — walks ?page=N through the full result set (reading the real pageCount) and returns hundreds to thousands of de-duplicated listings, bounded by your Max listings setting.
  • ✅ De-duplication — listings are keyed by CarGurus listing ID, so repeated cars across pages and across multiple input URLs never appear twice.
  • ✅ Rich vehicle fields — year, make, model, trim, vin, exteriorColor, mileage + mileageUnit, transmission, drivetrain, engine, plus isCpo (certified pre-owned) and isNew flags.
  • ✅ Full pricing + IMV — price, totalPrice, pricePlusFees, imv (Instant Market Value), expectedPrice, savingsVsImv and a human-readable savingsLabel.
  • ✅ Deal intelligence — dealRating (GREAT / GOOD / FAIR price), numeric dealScore, daysOnMarket, and recent price-drop fields (priceDropOriginal, priceDropAmount).
  • ✅ Dealer / lead-gen data — dealerName, dealerPhone, dealerLocation, dealerCity, dealerRegion, dealerPostalCode, and dealerId.
  • ✅ Media & links — main photo imageUrl and a direct listingUrl to the car on CarGurus.
  • ✅ Anti-bot handling — a browser-grade Chrome TLS fingerprint over a US residential proxy (CarGurus is protected by DataDome), with automatic retries and IP rotation.
  • ✅ Any export — JSON, CSV, Excel, HTML, or pull via the Apify API; push to Google Sheets, a webhook, Make, Zapier or a database.

Every field above is read directly from CarGurus' own listing data — the scraper only claims what the page actually returns.

🎯 Use cases

  • Car dealerships — monitor competitor inventory, pricing, days-on-market and price drops in your region to price your own stock competitively.
  • Automotive lead-gen & B2B sales — build targeted dealer prospect lists (name + phone + city/state) by make, model or metro for vendor, SaaS or marketing outreach.
  • Car shoppers & deal hunters — surface the best GREAT_PRICE listings for a model, sorted by savings against IMV.
  • Pricing analysts & valuation teams — benchmark listed prices against IMV to model fair value, depreciation and regional spreads.
  • Market researchers — aggregate used-car supply, pricing and mileage data across makes and regions over time.
  • Trade-in & appraisal tools — feed live market comps into a used-car valuation engine.
  • Fleet & wholesale buyers — scan large inventories for below-market vehicles and freshly dropped prices.
  • Data & analytics teams — maintain a clean, scheduled dataset of CarGurus inventory for dashboards and BI.

📥 Input

Give the scraper one or more CarGurus search URLs and a listings cap. The proxy is preconfigured.

FieldTypeDescription
startUrlsarrayCarGurus search result URLs, e.g. https://www.cargurus.com/Cars/l-Used-Toyota-Camry-d586?zip=90210. Search on cargurus.com, apply any filters, and copy the address-bar URL — all filters are preserved.
maxItemsintegerMaximum number of listings to return across all URLs. Default 200.
proxyConfigurationobjectProxy settings. Preconfigured to US residential (required by CarGurus / DataDome). Leave as-is unless you have a reason to change it.
{
"startUrls": [
"https://www.cargurus.com/Cars/l-Used-Toyota-Camry-d586?zip=90210"
],
"maxItems": 400,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Finding a search URL: search on cargurus.com, apply any filters (location, price, mileage, year, body style…), and copy the URL from your browser. Include a ?zip= (or search from a location on the site) so CarGurus returns full local inventory — without a ZIP, a model page may return only a short "nationwide shipping" fallback list. Paste multiple URLs to combine several searches in one run.

📤 Output

Each CarGurus listing becomes one clean, flat record. Real example from a live run:

{
"listingId": "462870440",
"title": "2026 Honda Civic",
"year": "2026",
"make": "Honda",
"model": "Civic",
"trim": "Si FWD",
"vin": "2HGFE1E51TH474188",
"price": 31965,
"totalPrice": 33023.97,
"pricePlusFees": 33023.97,
"imv": 32069,
"expectedPrice": 32069,
"savingsVsImv": 104,
"savingsLabel": "$104",
"dealRating": "FAIR_PRICE",
"dealScore": 2.1860642,
"mileage": 6585,
"mileageUnit": "MILES",
"exteriorColor": "Crystal Black Pearl",
"transmission": "6-Speed Manual",
"drivetrain": "Front-Wheel Drive",
"engine": "200 hp 1.5L I4",
"isCpo": false,
"isNew": false,
"daysOnMarket": 3,
"priceDropOriginal": null,
"priceDropAmount": null,
"dealerName": "Morris Smith Ford of Leavenworth",
"dealerPhone": "+1 913-404-4874",
"dealerLocation": "Leavenworth, KS",
"dealerCity": "Leavenworth",
"dealerRegion": "KS",
"dealerPostalCode": "66048",
"dealerId": "430173",
"imageUrl": "https://static.cargurus.com/images/forsale/2026/10/29/05/31/2026_honda_civic-pic-5792379292970233072-1024x768.jpeg",
"listingUrl": "https://www.cargurus.com/Cars/link/462870440",
"scrapedAt": "2026-11-02T01:54:06.548Z"
}

Field reference

FieldDescription
listingIdCarGurus listing ID (unique key, used for de-duplication)
title, year, make, model, trim, vinVehicle identity
price, totalPrice, pricePlusFeesListed price, total price, and price including fees
imv, expectedPrice, savingsVsImv, savingsLabelInstant Market Value, expected price and savings vs IMV (number + formatted label)
dealRating, dealScore, daysOnMarketDeal intelligence (GREAT / GOOD / FAIR price, numeric score, days listed)
priceDropOriginal, priceDropAmountRecent price drop — present when the car has a markdown
mileage, mileageUnit, exteriorColor, transmission, drivetrain, engineVehicle attributes
isCpo, isNewCertified-pre-owned and new-vehicle flags — present when CarGurus tags the car as such
dealerName, dealerPhone, dealerLocation, dealerCity, dealerRegion, dealerPostalCode, dealerIdDealer details for lead-gen
imageUrl, listingUrlMain photo and direct link to the listing on CarGurus
scrapedAtISO 8601 timestamp of when the record was scraped

In a fresh verification run, core fields — title, year, make, model, trim, vin, price, imv, dealRating, mileage, dealerName, dealerLocation and dealerId — populated on 100% of listings, and dealerPhone on ~95%. Fields such as priceDropOriginal / priceDropAmount (only when a car has a recent markdown) and isCpo / isNew (only certified or brand-new cars) populate when available, because they describe conditions that apply to a subset of vehicles — this is expected, not missing data.

🔁 Pagination & scale

CarGurus paginates search results with a ?page=N query parameter. The scraper reads the total pageCount from the embedded search data and walks page by page, pushing each batch as it goes, until it reaches the last page, hits three consecutive empty pages, or reaches your maxItems cap. Listings are de-duplicated by CarGurus listing ID across all pages and all input URLs, so a single run can return hundreds to thousands of unique cars from one or many searches. A broad model-plus-ZIP search typically spans ~30 pages and 500+ listings. To cap a run, lower maxItems; to pull everything, set it high (or omit it for the default).

⚙️ How to use

  1. Open the CarGurus Scraper on the Apify Console.
  2. On cargurus.com, search for a car (make/model, location, filters) and copy the address-bar URL (keep the ?zip= so you get full local inventory).
  3. Paste it into CarGurus search URLs, set Max listings, and click Start. The US residential proxy is already on.
  4. Watch listings stream into the dataset, then export as JSON, CSV, Excel or HTML — or pull them via the Apify API.
  5. Automate it: run on a Schedule for daily inventory/price snapshots, or wire the output to Make, Zapier, Google Sheets, a webhook or a database.

💡 Tips

  • Combine searches — paste several CarGurus URLs (e.g. one per model or metro) into startUrls to build one merged, de-duplicated dataset.
  • Keep your filters — any filter you apply on cargurus.com (price, mileage, year, radius, body style) is baked into the URL and respected by the scraper.
  • Always include a ZIP — add ?zip=90210 (or any ZIP) to a model URL so CarGurus returns real local inventory across many pages instead of a short fallback list.
  • Deal hunting — after export, filter dealRating to GREAT_PRICE/GOOD_PRICE and sort by savingsVsImv to surface the best buys.
  • Lead-gen — de-duplicate on dealerId or dealerName to turn a listings run into a clean dealer contact list.
  • Fresh price cuts — filter where priceDropAmount is set and daysOnMarket is low to catch newly discounted inventory.
  • Scheduling — run daily and diff on listingId + price to track price changes and new arrivals over time.

❓ FAQ

Is scraping CarGurus legal? This scraper collects only publicly visible listing information. Scraping public data is generally permissible, but you are responsible for how you use it — respect CarGurus' Terms of Service and applicable data-protection laws, especially when handling dealer contact details.

Do I need a CarGurus account or login? No. The CarGurus scraper reads publicly visible listing data — no login or password is required.

How many listings can it return and how fast? It paginates the full result set — from a handful up to thousands of listings per run, limited only by your maxItems setting and how many results the search contains. A broad model-plus-ZIP search typically covers ~30 pages / 500+ cars. Throughput depends on result size and proxy conditions.

Do I need proxies? Yes, and they're already set up. CarGurus is protected by DataDome, so a US residential proxy is preconfigured and enabled by default — just paste a URL and run.

What export formats are supported? JSON, CSV, Excel and HTML downloads, plus the Apify API, Google Sheets, webhooks, Make and Zapier.

Is there a CarGurus API? CarGurus has no public listings API for this data. This Actor is effectively an unofficial CarGurus API: structured JSON output you can call programmatically via the Apify API or client libraries.

What is IMV? IMV is CarGurus' Instant Market Value — an estimated fair market price for a vehicle. Comparing a car's price to its imv (and reading the dealRating) is how you spot a good deal.

How fresh is the data? Every run scrapes CarGurus live, so results reflect current inventory and prices at run time. Schedule the Actor to keep a continuously updated dataset.

Can I filter by make, model, price or location? Yes — apply those filters on cargurus.com first, then paste the resulting search URL. All filters are preserved in the URL and honored by the scraper.

Does it include dealer phone numbers? Yes — dealerName, dealerPhone, dealerLocation, dealerCity, dealerRegion, dealerPostalCode and dealerId are included wherever CarGurus displays them (phone present on roughly 95% of listings).


Ready to scrape CarGurus? Paste a search URL, set your listings cap, and click Start to export car listings, prices, IMV, deal ratings and dealer leads as JSON, CSV, Excel or API.