Skip to Content

CarGurus Data Parser & API

CarGurus is the #1 US car-shopping portal by traffic — around 36M visits per month — and Carapis can extract its full listing data, including the proprietary Deal Rating, price history, dealer details and full spec, through one REST API. CarGurus aggregates millions of dealer and private-seller listings across the US, Canada and UK, and its instant price-vs-market signal makes it one of the richest pricing-intelligence sources in North America — delivered without you building or maintaining a DataDome-protected scraper.

On request — not in the live feed today. We do not continuously crawl CarGurus right now. Activation takes 2–3 weeks of engineering and is quoted per source, because each one ships with dedicated proxies, anti-bot tuning and ongoing maintenance. Ask us to add it.

CountryUSA
TypePortal
Vehicle typesused, new, dealer, private
Monthly visits~36M/mo (SimilarWeb, Nov 2025)
Active listings"Millions" (dealer+private)
API accessPartial / limited API
Parse priority★★★★★
Official sitewww.cargurus.com

What is CarGurus?

CarGurus is a publicly traded US car-shopping marketplace that ranks dealer and private-seller listings by how their price compares to the market. It draws roughly 36M visits per month (SimilarWeb, Nov 2025), making it the most-visited US car-shopping portal. Its signature Deal Rating (Great/Good/Fair/Overpriced) and per-listing price history are computed from its own market model, giving each car a transparent pricing signal that most portals do not expose.

Market Position

CarGurus leads US car-shopping portals with ~36M visits per month (SimilarWeb, Nov 2025), ahead of Cars.com and AutoTrader.com, and it lists “millions” of dealer and private-seller vehicles. The same brand operates cargurus.ca in Canada and cargurus.co.uk in the UK, so a single Carapis parsing strategy maps onto its North American footprint. Its independent market-pricing model is a competitive moat — the Deal Rating and price-history fields are unique to CarGurus and highly valued for residual-value and competitive-pricing analysis.

What the API returns

Response schema

Indicative — this is the shape, not a guarantee. Every source returns the same structure, so what you build against does not change when you add one. Which fields carry a value depends on the source and on the individual listing: a site that does not publish mileage returns null there, and CarGurus is no exception.

List — GET /apix/api/vehicles/ — returns 30 fields per vehicle:

  • idstring
  • source_codestring
  • brand_namestring
  • brand_slugstring
  • model_namestring
  • model_slugstring
  • trimstring
  • yearinteger
  • price_usdinteger
  • mileageinteger
  • fuel_typeFuelTypeEnum
  • transmissionTransmissionEnum
  • body_typeBodyTypeEnum
  • colorColorEnum
  • seller_typeSellerTypeEnum
  • regionstring
  • source_locationobject
  • has_accidentboolean
  • is_new_vehicleboolean
  • is_verifiedboolean
  • statusVehicleStatusEnum
  • is_availableboolean
  • first_seen_atstring
  • last_seen_atstring
  • thumbVehiclePhoto
  • photosarray
  • photos_countinteger
  • has_valuationboolean
  • has_llm_analysisboolean
  • analysisobject

Detail — GET /apix/api/vehicles/{id}/ — adds 23 more:

  • generationstring
  • price_originalstring
  • price_original_currencystring
  • original_msrpstring
  • engine_ccinteger
  • seat_countinteger
  • drive_typeDriveTypeEnum
  • has_simple_repairboolean
  • has_recallboolean
  • recall_fulfilledboolean
  • warranty_typestring
  • inspection_passedboolean
  • owner_countinteger
  • is_undervaluedboolean
  • valuation_scorenumber
  • featuresarray
  • descriptionstring
  • listing_urlstring
  • listing_idstring
  • vinstring
  • vehicle_nostring
  • availability_checked_atstring
  • status_changed_atstring

Abbreviated example:

{
  "id": "0193f2c1-...",
  "source_code": "encar",
  "brand_name": "BMW",
  "model_name": "320i",
  "trim": "M Sport",
  "year": 2021,
  "price_usd": 28400,
  "price_original": "38900000",
  "price_original_currency": "KRW",
  "mileage": 45000,
  "fuel_type": "gasoline",
  "transmission": "automatic",
  "has_accident": false,
  "listing_url": "https://...",
  "photos": [{ "url": "https://cdn.carapis.com/..." }],
  "first_seen_at": "2026-09-28T11:04:22Z",
  "is_available": true
}

Which sources you can actually query is answered by GET /apix/api/sources/ with your API key — it is the list your account can pull today, and it is the one to trust over any page on this site.

The Deal Rating and price history are what make CarGurus especially valuable: they are a ready-made market-pricing layer for dealers and analysts, not just raw listings.

API Quick Start

import requests resp = requests.get( "https://api.carapis.com/v2/listings", params={"source": "cargurus", "limit": 20}, headers={"Authorization": f"Bearer {API_KEY}"}, ) for car in resp.json()["results"]: print(car["make"], car["model"], car["year"], car["price"])

Get an API key at my.carapis.com  and see the full API reference. Pricing is on the pricing page .

Use Cases

  • Pricing intelligence — Deal Rating and price-history fields power residual-value and competitive-pricing models for dealers.
  • Market research — track inventory mix, price trends and days-on-market across the US used-car market. See market research.
  • Inventory monitoring — watch competitor listings and price moves at scale instead of manual checks.

Frequently asked questions