All scrapers

Automotive

CarGurus Scraper

cargurus.com

93.4% Success rate
14.1s Avg response
Bot detection + rate limiting Protection
1,000 calls Measured over

CarGurus ranks used-car listings with its own deal ratings and gates them behind bot detection. ScrapeUnblocker renders the listing pages in a real browser and returns the make, model, price and deal rating for each car, holding 93.4% across a spread of model searches.

What you can extract

  • Make, model, trim and year
  • Price and deal rating
  • Mileage and days on market
  • Dealer name, rating and location
  • Vehicle history and listing URL

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/getPageSource?url=https%3A%2F%2Fwww.cargurus.com%2FCars%2Fl-Used-BMW-3-Series-d309&parsed_data=true"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/getPageSource",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"url": "https://www.cargurus.com/Cars/l-Used-BMW-3-Series-d309", "parsed_data": True},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const results = await su.getPageSource({
  url: 'https://www.cargurus.com/Cars/l-Used-BMW-3-Series-d309',
  parsedData: true,
});
console.log(results);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Read the API docs

Frequently asked questions

Is it legal to scrape CarGurus?

Collecting publicly available CarGurus data such as car prices, deal ratings and dealer names is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape CarGurus without getting blocked?

CarGurus uses bot detection and rate limiting. ScrapeUnblocker renders the page in a real browser, rotates residential and ISP exits and handles challenges, so you get the page a visitor sees rather than a block page. In ScrapeUnblocker's benchmark it returned real content on 93.4% of 1,000 calls, about 14.1s per call.

What CarGurus data can I get?

CarGurus listing pages give you each car's make, model, trim and year, the price and CarGurus deal rating, mileage and days on market, the dealer name, rating and location, vehicle history and the listing URL. Take the rendered HTML, or pass parsed_data=true for structured JSON.

Do I need a CarGurus API or account?

No. ScrapeUnblocker returns the public CarGurus page as HTML, or structured JSON with parsed_data=true, so you do not need a CarGurus API account. Send a CarGurus listing or search URL to /getPageSource with your ScrapeUnblocker key. Use steps for clicks, typing or scrolling when a page needs them.

Can I monitor CarGurus at scale?

Yes. Calls run in parallel up to your plan's concurrency limit: 20 to 100 concurrent requests on Pay as you go, Starter and Pro, and 200 to 400 on Business, Scale and Ultimate. Send many model searches at once to follow prices, deal ratings and days on market over time.

How much does it cost to scrape CarGurus?

Each CarGurus request costs 1 credit, from EUR 1.00 per 1,000 on pay as you go to about EUR 0.55 per 1,000 on the Ultimate plan. Delivered pages are billed, including a site's own 404 or 410 page. A 403 block, a timeout, a 523 origin unreachable, a 429 and errors on ScrapeUnblocker's side are not billed. The free trial includes 500 requests, no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.