CarGurus Scraper: US, Canada & UK Car Listings, VIN & Prices avatar

CarGurus Scraper: US, Canada & UK Car Listings, VIN & Prices

Pricing

from $0.80 / 1,000 results

Go to Apify Store
CarGurus Scraper: US, Canada & UK Car Listings, VIN & Prices

CarGurus Scraper: US, Canada & UK Car Listings, VIN & Prices

Scrape CarGurus car listings from cargurus.com, .ca and .co.uk by search URL or ZIP code: price, deal rating, mileage, VIN, specs, dealer name and phone, and every photo. Export to JSON, CSV or Excel.

Pricing

from $0.80 / 1,000 results

Rating

5.0

(1)

Developer

Youssef Farhan

Youssef Farhan

Maintained by Community

Actor stats

0

Bookmarked

94

Total users

34

Monthly active users

6 days ago

Last modified

Share

Scrape CarGurus listings at scale from cargurus.com (USA), cargurus.ca (Canada) and cargurus.co.uk (UK), with no login, no browser and no code. Paste a CarGurus search URL or just pick a country and a location, and get clean, structured JSON for every car: price, deal rating, mileage, VIN, full specs, dealer details and all listing photos.

Fast, reliable CarGurus data extraction for car dealers, marketplaces, price-monitoring tools, lead generation and market research.

What does CarGurus Scraper do?

CarGurus Scraper turns any CarGurus search into a dataset with one row per car. It pages through the whole result set, opens every listing through CarGurus' own listing data, and returns 40+ fields per vehicle: price, CarGurus deal rating and deal score, expected market price, mileage, VIN, stock number, trim, engine, drivetrain, colours, dealer name, phone, website and rating, plus every full-resolution photo.

It works on all three CarGurus marketplaces from one Actor. The country is detected from the URL you paste, or picked in the form when you search without a URL.

Why use this CarGurus Scraper?

  • 3 countries, one Actor: United States, Canada and the United Kingdom, auto-detected.
  • Two ways to search: paste a CarGurus URL, or build a search with simple fields (no URL needed).
  • Every image, full resolution: not just the thumbnail (often 25 to 80 photos per car).
  • Deal rating included: CarGurus' own deal rating, deal score and expected price on every listing.
  • Fast: listing details are fetched in parallel.
  • All pages or set a limit: maxPages = 0 scrapes the entire result set.
  • Anti-blocking built in: browser-grade TLS fingerprinting plus geo-targeted residential proxies, with no proxy setup.
  • Migration-safe: resumes exactly where it left off, with no duplicate or lost data.
  • Clean, validated schema: one tidy record per listing, ready for Excel, Google Sheets, CSV, JSON or the API.
  • AI-agent and MCP ready: typed input and output schemas that LLM agents can call directly.

How to scrape CarGurus in 3 steps

  1. Pick your cars. Paste one or more CarGurus search URLs, or leave the URL field empty and fill in Search by filters (country, ZIP or postal code, radius, sort order).
  2. Set the depth. Leave Max pages at 0 for every page, or cap it for a quick sample.
  3. Click Start. Results stream into the dataset as the Actor runs. Export them as JSON, CSV or Excel, or read them through the API.

Option A: paste a CarGurus URL

  1. Go to CarGurus (.com, .ca or .co.uk) and apply your filters: location or ZIP, make, model, price, mileage and so on.
  2. Copy the URL from your browser's address bar.
  3. Paste it into Search by URL > CarGurus search URLs and click Start.

Old-style CarGurus links (/Cars/inventorylisting/...#filters=...) are converted to the current search format automatically.

Option B: no URL needed

Leave the URL field empty and fill in Search by filters:

  • Country (US, Canada or UK)
  • ZIP or postal code (for example 10001, M4B 1B4, SW1A 1AA)
  • Search radius, Sort by, Sort direction, and an optional make and model filter

The Actor builds the correct CarGurus search for you.

Example input (Option A)

{
"startUrls": [
{ "url": "https://www.cargurus.com/search?distance=10&sortType=BEST_MATCH&zip=10001" },
{ "url": "https://www.cargurus.ca/search?zip=M4B+1B4&entityId=d1751" },
{ "url": "https://www.cargurus.co.uk/search?distance=75&sortType=DEAL_SCORE&zip=75+001" }
],
"maxPages": 0
}

Example input (Option B)

{
"searchCountry": "US",
"zip": "10001",
"distance": 50,
"sortType": "BEST_MATCH",
"sortDirection": "ASC",
"maxPages": 0
}

Input parameters

Search by URL

FieldTypeDescription
startUrlsarrayOne or more CarGurus search or result URLs (US, CA or UK). Leave empty to use the filter fields below.

Search by filters (used only when no URL is provided)

FieldTypeDescription
searchCountryenumUS, CA or UK: picks the marketplace.
zipstringZIP or postal code to search around (required for this mode).
distanceintegerSearch radius. Default 50.
sortTypeenumBEST_MATCH, DEAL_SCORE, PRICE, MILEAGE, YEAR, DISTANCE, LISTING_DATE.
sortDirectionenumASC or DESC.
makeModelTrimPathsstring(Advanced, optional) CarGurus make and model path, for example m4 or m124,m124/d1751.

Scraper settings

FieldTypeDescription
maxPagesintegerMax result pages per URL. 0 (default) scrapes every page until the results run out.

Proxies are handled automatically (geo-targeted residential), so there is no proxy configuration to set up.

Output: one record per listing

Each listing comes from CarGurus' per-listing detail data, so you get full specs, dealer info and every photo:

{
"country": "US",
"listingId": 441325338,
"title": "2023 Hyundai Tucson SEL FWD",
"year": 2023,
"make": "Hyundai",
"model": "Tucson",
"trim": "SEL FWD",
"price": 21495,
"priceString": "$21,495",
"msrp": 28500,
"expectedPrice": 22100,
"dealScore": 8.7,
"dealRating": "GREAT_PRICE",
"mileage": 31250,
"mileageString": "31,250 mi",
"condition": "USED",
"isNew": false,
"vin": "5NMJBCAE8PH000000",
"stockNumber": "H12345",
"transmission": "Automatic",
"drivetrain": "Front-Wheel Drive",
"engine": "2.5L I4",
"fuelType": "Gasoline",
"exteriorColor": "White",
"interiorColor": "Black",
"doors": "4 doors",
"postalCode": "11209",
"distance": 8,
"savedCount": 12,
"dealerName": "Hyundai City of Bay Ridge",
"dealerType": "FRANCHISE",
"dealerPhone": "(718) 000-0000",
"dealerLocation": "Brooklyn, NY, 11209",
"dealerWebsite": "https://...",
"dealerRating": 4.6,
"dealerReviewCount": 1284,
"imageCount": 49,
"mainImage": "https://static.cargurus.com/.../1024x768.jpeg",
"images": ["https://...", "https://..."],
"listingUrl": "https://www.cargurus.com/Cars/inventorylisting/...",
"sourceUrl": "https://www.cargurus.com/search?...",
"scrapedAt": "2026-06-08T17:40:00+00:00"
}

The dataset ships with a typed output schema and a clean table view (price, mileage, deal rating, dealer, photo, listing link). Export to JSON, CSV, Excel, HTML or through the Apify API and MCP.

Use cases

  • Car dealers and resellers: monitor competitor pricing and inventory across markets.
  • Price intelligence: track deal ratings, price drops and days on market.
  • Lead generation: build dealer contact lists with phone, website and ratings.
  • Marketplaces and aggregators: bulk-import vehicle inventory with full media.
  • Market research and analytics: model pricing trends by make, model and region.
  • Cross-border comparison: compare the same model's price in the US, Canada and the UK.

How much does it cost to scrape CarGurus?

You pay per car listing saved to the dataset, with no monthly fee. The current rate is shown on this Actor's Store page. Proxies are included, so there is no separate proxy bill.

The Free plan is limited to 20 results per run, so you can check the output first. For every page and unlimited listings, upgrade to a paid Apify plan.

Use with AI agents (MCP)

This Actor exposes a clean, typed input and output schema, so AI assistants and MCP (Model Context Protocol) clients can call it directly, for example: "Get all used Tucsons near ZIP 10001 sorted by best deal, with photos." Structured fields like price, dealRating, vin and images make the data immediately usable by LLM agents.

FAQ

Which CarGurus sites are supported? US (cargurus.com), Canada (cargurus.ca) and UK (cargurus.co.uk), detected automatically from your input.

Do I need a URL? No. Use Option B (country plus ZIP or postal code) and the Actor builds the search for you.

Do I need to set up proxies? No. Geo-targeted residential proxies are built in.

How do I get every car, not just page 1? Leave maxPages at 0.

Can I get all photos? Yes. The images array contains every full-resolution photo for each listing.

Does it return the VIN? Yes, in the vin field, whenever the seller publishes it on CarGurus. It is empty when the listing has no VIN.

Can I get CarGurus deal ratings? Yes. Every record carries dealRating (for example GREAT_PRICE), dealScore and expectedPrice, so you can sort or filter by how good the deal is.

Is there a CarGurus API? CarGurus does not offer a public listings API. This Actor works as one: call it through the Apify API and get JSON back, or schedule it and read the latest dataset.

Will I get blocked? The Actor uses browser-grade TLS impersonation plus country-matched residential proxies to stay reliable.

What if the run is interrupted? It is migration-safe: state is saved and the run resumes without losing or duplicating data.

Can I schedule it? Yes. Use Apify schedules for daily or weekly runs, and webhooks or integrations to send the results to Google Sheets, Slack or your database.

This Actor collects publicly available listing data only, with no login. Use it in compliance with CarGurus' terms of service and applicable laws (including GDPR and CCPA where relevant). You are responsible for how you use the extracted data, including dealer contact details.

Contact and custom solutions

Found a bug or need a field? Open a ticket in the Issues tab. 💼 Need a custom version or another site? Contact me through my Apify profile

Keywords: CarGurus scraper, CarGurus API, car listings scraper, used car data, vehicle data extraction, CarGurus UK, CarGurus Canada, car price monitoring, dealer inventory scraper, VIN scraper, auto data, car marketplace data.