CarGurus Scraper — Car Listings, Prices, IMV & Dealer Leads
Pricing
from $2.75 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
CarGurus Scraper — Car Listings, Prices, IMV, Deal Ratings & Dealer Leads
Extract CarGurus car listings at scale — with price, Instant Market Value (IMV), deal rating, mileage, make/model/year/trim, VIN, color, price drops, and the selling dealer's name & phone. Paste a CarGurus search URL and get clean, structured JSON/CSV/Excel in seconds. Built for dealers, car shoppers, price analysts and automotive lead-gen.
What This Actor Does
The CarGurus Scraper turns any CarGurus search into a structured dataset. Give it a search URL and it returns each vehicle as a clean row with:
- Vehicle — year, make, model, trim, VIN, exterior color, mileage, transmission, drivetrain, engine, CPO/new flags
- Pricing — listed price, total price with fees, Instant Market Value (IMV), expected price, and savings-vs-IMV
- Deal intelligence — CarGurus deal rating (Great / Good / Fair Price), deal score, days on market, and recent price drops
- Dealer (lead-gen) — dealer name, phone number, location (city/region/postal code), dealer ID
- Media — main photo and a direct listing link
Paste a search from any CarGurus region and it paginates through the full result set.
Why Use This
- CarGurus is protected and JavaScript-rendered — a plain fetch returns nothing usable. This Actor uses a browser-grade TLS fingerprint over a residential connection to read the real page data.
- The listing data is deeply nested (price, IMV, dealer, mileage and vehicle attributes all live in separate objects) — this Actor flattens it to one tidy row per car.
- It surfaces the values that actually matter for car decisions and lead-gen: IMV, deal rating, price drops, days on market, and dealer phone — not just a price and a title.
- Handles pagination, retries and dedup so you get a complete, clean dataset.
Quick Start
Run it in the console (no code)
- On cargurus.com, search for a car (make/model, location, filters).
- Copy the URL from your browser's address bar.
- Open the Actor, paste it into CarGurus search URLs, set Max listings, and click Start.
- Export as JSON, CSV, Excel, or HTML, or push to Google Sheets, a webhook or a database.
The proxy is preconfigured (US residential) since CarGurus requires it — just paste and run.
Run it via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"startUrls": ["https://www.cargurus.com/Cars/l-Used-Toyota-Camry-c24099"],"maxItems": 300,}run = client.actor("YOUR_USERNAME/cargurus-scraper").call(run_input=run_input)for car in client.dataset(run["defaultDatasetId"]).iterate_items():print(car["title"], car["price"], car["dealRating"], car["dealerName"], car["dealerPhone"])
Build a dealer lead list (Python)
run = client.actor("YOUR_USERNAME/cargurus-scraper").call(run_input={"startUrls": ["https://www.cargurus.com/Cars/l-Used-Toyota-Camry-c24099"],"maxItems": 500,})dealers = {}for c in client.dataset(run["defaultDatasetId"]).iterate_items():if c.get("dealerPhone"):dealers[c["dealerName"]] = {"phone": c["dealerPhone"], "location": c["dealerLocation"]}print(len(dealers), "unique dealers")
Find the best deals (Node.js)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/cargurus-scraper').call({startUrls: ['https://www.cargurus.com/Cars/l-Used-Toyota-Camry-c24099'],maxItems: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const greatDeals = items.filter(c => c.dealRating === 'GREAT_PRICE').sort((a,b) => a.price - b.price);console.log(greatDeals.slice(0, 10));
Input Parameters
| Field | Type | Description |
|---|---|---|
startUrls | array | CarGurus search result URLs (e.g. https://www.cargurus.com/Cars/l-Used-Toyota-Camry-c24099). Search on cargurus.com and copy the address-bar URL. |
maxItems | integer | Maximum listings to return across all URLs. Default 200. |
proxyConfiguration | object | Preconfigured to US residential (required by CarGurus). |
Finding a search URL: search on cargurus.com, apply any filters (location, price, mileage, year…), and copy the URL. All your filters are preserved.
Output
Each listing is one record. Example:
{"listingId": "458597712","title": "2014 Volkswagen Eos","year": "2014", "make": "Volkswagen", "model": "Eos", "trim": "Sport SULEV","vin": "WVWBW8AH7EV000372","price": 9500, "totalPrice": 10495, "imv": 12539,"savingsVsImv": 3039, "savingsLabel": "$3,039","dealRating": "GREAT_PRICE", "dealScore": 92,"mileage": 51049, "mileageUnit": "MILES","exteriorColor": "Brown (Tan)","transmission": "Automatic", "drivetrain": "FWD","isCpo": false, "isNew": false,"daysOnMarket": 13,"priceDropOriginal": 9900, "priceDropAmount": 400,"dealerName": "Auto Gallery Hollywood","dealerPhone": "+1 754-799-4977","dealerLocation": "Hollywood, FL","imageUrl": "https://static.cargurus.com/....jpeg","listingUrl": "https://www.cargurus.com/Cars/link/458597712","scrapedAt": "2026-09-24T04:10:00.000Z"}
Field reference
| Field | Meaning |
|---|---|
title, year, make, model, trim, vin | Vehicle identity |
price, totalPrice, imv, expectedPrice, savingsVsImv | Pricing + Instant Market Value |
dealRating, dealScore, daysOnMarket | Deal intelligence |
priceDropOriginal, priceDropAmount | Recent price drop |
mileage, exteriorColor, transmission, drivetrain, engine, isCpo, isNew | Vehicle attributes |
dealerName, dealerPhone, dealerLocation, dealerCity, dealerRegion, dealerPostalCode, dealerId | Dealer + lead-gen |
imageUrl, listingUrl | Media and link |
Use Cases
1. Dealer lead generation
Every listing carries the dealer's name, phone and location. Build targeted dealer lists by make, model or region for automotive B2B outreach, vendor sales, and marketing.
2. Pricing & IMV analysis
Compare listed price to CarGurus IMV and deal rating across a model or market. Find where cars are priced below market and track how deal ratings shift.
3. Deal hunting
Filter to GREAT_PRICE / GOOD_PRICE deals, sort by savings-vs-IMV, and surface the best-value listings for a model.
4. Inventory & competitor monitoring
Dealers can monitor competing inventory, prices, days-on-market and price drops in their area to price competitively.
5. Market research & analytics
Aggregate listings by make/model/region to analyze pricing, mileage, days-on-market and price-drop trends over time (schedule daily).
6. Price-drop alerts
priceDropAmount and daysOnMarket let you flag stale inventory and fresh price cuts.
Frequently Asked Questions
Do I need a CarGurus account? No. The Actor reads publicly visible listing data — no login required.
Why is a proxy required? CarGurus is protected by anti-bot; a US residential proxy is preconfigured so it works out of the box.
How do I get a search URL? Search on cargurus.com with any filters and copy the URL. Your filters (location, price, mileage, etc.) are kept.
Does it include dealer contact details? Yes — dealer name, phone and location are included where CarGurus shows them.
What's IMV? CarGurus' Instant Market Value — an estimated fair market price, useful for spotting deals.
What export formats are supported? JSON, CSV, Excel, HTML, or via API — plus Google Sheets, webhooks, Make, and Zapier.
Can I schedule it? Yes — use Apify Schedules for daily inventory and price-drop snapshots.
Legal & Responsible Use
This Actor collects only publicly available listing information for research, pricing and business use. You are responsible for how you use the data. Please:
- Respect CarGurus' Terms of Service and robots directives.
- Comply with applicable data-protection laws when handling dealer contact details.
- Do not use the data for spam, harassment, or any unlawful purpose.
- Use reasonable request volumes and scheduling.
This project is an independent tool and is not affiliated with, endorsed by, or sponsored by CarGurus.