Cargurus.com Scraper avatar

Cargurus.com Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Cargurus.com Scraper

Cargurus.com Scraper

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

🚗💎 CarGurus Listings Scraper

Pick a country, ZIP/postcode, make (and optional model + condition) — the actor walks CarGurus' search SPA and streams clean, structured rows of vehicle data into your Apify dataset in real time.

🌟 Why Choose This Actor?

  • 🧭 Zero-URL workflow — no need to copy a search URL. Pick country + ZIP + make and we build the request for you.
  • 🛡️ Smart 3-tier connection strategy — starts with a direct request, then auto-falls-back to datacenter proxy → residential proxy with 3 retries if CarGurus pushes back. Once we escalate, we stay on the stronger tier.
  • 🇺🇸🇨🇦🇬🇧 Multi-countrycargurus.com (USD), cargurus.ca (CAD), cargurus.co.uk (GBP) with automatic currency tagging.
  • Real-time output — each matching listing is pushed to the dataset as soon as it's parsed.
  • 🛞🆕 Condition filter — choose Used (incl. CPO + priority) or New.
  • 🎯 Make + optional model filter — applied client-side so results always match.
  • 📦 80+ structured fields per listing — pricing, deal rating, dealer phone, fuel economy, colours, drivetrain, fuel type, images and more.
  • 🧠 Browser-fingerprinted HTTP via curl_cffi (Chrome TLS + HTTP/2 impersonation) so we look like a real Chrome session.
  • 🧭 VIN-based dedup — never pushes the same vehicle twice.

📥 Input

FieldTypeRequiredDescription
countryenum US / CA / UKWhich CarGurus marketplace to query.
zipcodestringZIP / postcode to anchor the search.
makeenum (44 brands)Vehicle brand. Drives the CarGurus internal make-ID + client-side filter.
modelstringoptionalNarrow to a specific model name (case-insensitive). Leave blank for all.
conditionenum used / newUsed = pre-owned + CPO + priority listings. New = factory-fresh.
maxItemsintegeroptionalCap on matching listings. 0 = no cap. Default 50. The internal SRP page budget is auto-sized from this — no extra knobs to tune.
proxyConfigurationobjectoptionalLeave blank for smart 3-tier fallback.

Example input

{
"country": "US",
"zipcode": "10001",
"make": "Toyota",
"model": null,
"condition": "used",
"maxItems": 50,
"proxyConfiguration": { "useApifyProxy": false }
}

📤 Output

Each row in the dataset is a single vehicle listing. Selected fields:

FieldTypeExample
idstring5TFBY5F12AX122219 (VIN)
skunumber433980025 (CarGurus listing id)
namestring2010 Toyota Tundra Limited Double Cab 5.7L 4WD
urlstringhttps://www.cargurus.com/Cars/inventorylisting/vdp.action?listingId=…
pricestring"17895"
priceCurrencystringUSD
localizedTotalPricestring$17,895
brand, model, trimName, vehicleModelDatetext/intToyota · Tundra · Limited Double Cab 5.7L 4WD · 2010
mileage, unitMileageint / object99050 · { value: 99050, unit: "MILES" }
color, vehicleInteriorColortextGray · Gray
engine, vehicleTransmission, driveWheelConfigurationtext381 hp 5.7L V8 · Automatic · Four-Wheel Drive
fuelType, fuelEfficiency, cityFuelEconomy, highwayFuelEconomy, combinedFuelEconomymixedGasoline · 15 MPG · { value: 13, unit: "MPG" } · …
dealRating, dealScorestring/numberGREAT_PRICE · 0.761643
daysOnMarket, pictureCountint164 · 12
dealerName, sellerCity, sellerRegion, sellerPostalCodetextWilliston Economy Motors · South Burlington, VT · VT · 05403
phoneNumberString, phoneNumberSMStext(802) 255-8955 · +18883346545
primaryImage, dealerLogoUrlurlimage URLs
googleStaticMapUrlurldealer location map URL
itemTypestringLISTING_USED_STANDARD / LISTING_USED_CPO / LISTING_USED_PRIORITY / LISTING_NEW

Plus many more: inclusionType, listingSource, bodyType, bodyTypeGroupId, salesStatus, compliance, priceDropData, financeDto, evBatteryDto, stockNumber, ncapOverallSafetyRating, howToShop, buyingOption, sellerType, isFranchiseDealer, franchiseMake, distance, localizedFuelEconomy, description, expectedPrice, priceDifferential, imvPrice, feesCompliant, localizedDoors, normalizedExteriorColor, condition, availability, priceValidUntil, sortScore, debugInfo, offset, mpn.


🚀 How to Use (Apify Console)

  1. 🔐 Sign in at https://console.apify.comActors.
  2. 🔍 Open the CarGurus Listings Scraper Actor.
  3. 🌍 Pick Country, type a ZIP / postcode, pick a Make (and optional Model).
  4. 🛞 Pick a Condition (Used / New).
  5. 🎯 Optionally cap Maximum listings and Maximum pages.
  6. ▶️ Click Start.
  7. 👀 Watch matching listings stream into the Output tab live.
  8. 💾 Export to JSON / CSV / XLSX when the run finishes.

🤖 Use via API

curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"country": "US",
"zipcode": "10001",
"make": "Toyota",
"condition": "used",
"maxItems": 50
}'

🎯 Best Use Cases

  • 📊 Market-price benchmarking by make / model / region
  • 🏬 Inventory monitoring for specific dealers
  • 🚗 Lead generation for car-buying services
  • 📈 Trend analysis on deal ratings and days-on-market
  • 🌍 Cross-country pricing comparison (US / CA / UK)
  • 🤖 AI agents that need fresh used-car data

💸 Pricing

This Actor uses Apify's Pay-per-event monetisation. You are billed per result-item event (i.e. per listing pushed to the dataset). Run start is free for the first 5 seconds and capped by your ACTOR_MAX_TOTAL_CHARGE_USD — the run stops cleanly when the limit is reached.

❓ Frequently Asked Questions

Q. Do I need a proxy? No. The Actor starts without a proxy and only falls back to datacenter → residential if CarGurus pushes back. Leave Proxy configuration as-is.

Q. Why is the model field optional? Because the make-level filter already narrows the result set heavily and many users want a quick model snapshot. Leave it blank for all models from the selected make.

Q. Does it support new / used / CPO listings? Yes. Pick Used to include standard pre-owned + CPO + priority listings. Pick New for factory-fresh inventory only. The output includes an itemType field for finer slicing.

Q. Why am I seeing fewer rows than maxItems? CarGurus simply ran out of unique listings for your search — we keep paginating until either your maxItems target is hit or CarGurus stops returning new VINs (3 consecutive empty pages). Widen the search (different zip, drop the model filter, try a more common make) and re-run. The scraper carries the make filter forward on every pagination request so server-side filtering is preserved across pages, and the SRP page budget is sized automatically from maxItems so you never need to tune it.

Q. Is this legal? The Actor only collects data already publicly visible on CarGurus search pages. You are responsible for compliance with target-site Terms of Service, GDPR / CCPA, and any data-handling laws applicable to your use case.

🛟 Support and Feedback

Found a quirk or want a custom field? Open an issue on the Actor's page or drop a line to dev.scraperengine@gmail.com.


  • Data is collected only from publicly available CarGurus search-result pages.
  • Do not scrape private accounts or content behind authentication.
  • The end user is responsible for legal compliance (GDPR, CCPA, anti-spam laws, CarGurus ToS, etc.).
  • Honour robots.txt and reasonable rate limits — being a good citizen reduces blocks too.