Used-car pricing and inventory research
Use Cars.com endpoints to turn used-car pricing and inventory research into repeatable API requests with documented inputs and JSON responses.
Turn public Cars.com pages into structured used-car data — a geographic listing search by ZIP, radius and stock type, and full listing detail with pricing, specs, dealer info, and Cars.com's own deal-fairness rating, as normalized JSON. Credential-free.
Search Cars.com vehicle listings by area and get full listing detail as structured JSON.
Endpoint families
2
Documented params
7
Examples
2
Live catalog snapshot
Active endpoints
2
Methods
GET
Required params
3
Schema refs
2
{
"platform": "Cars.com",
"endpoint": "carsdotcom-search",
"method": "GET",
"path": "/carsdotcom/search",
"auth": "apiKey"
}Use cases
Search Cars.com vehicle listings by area and get full listing detail as structured JSON.
Use Cars.com endpoints to turn used-car pricing and inventory research into repeatable API requests with documented inputs and JSON responses.
Use Cars.com endpoints to turn vehicle listing monitoring into repeatable API requests with documented inputs and JSON responses.
Use Cars.com endpoints to turn dealer inventory analysis into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Cars.com endpoint catalog — 2 endpoints, 7 documented request parameters, and 2 published response schemas — the same catalog Docs and Playground run against.
2 documented Cars.com endpoints, grouped into 2 request families — Search and Vehicle.
7 request parameters are documented across those Cars.com endpoints, 3 of them required — the full input contract is public before you write any integration code.
2 of the 2 Cars.com endpoints ship a recorded example response, and 2 carry a documented response schema — you can code against the real JSON before the first request.
Cars.com endpoints document their error responses (400, 404, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
2 hosted MCP tools back the Cars.com endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/carsdotcom/search
/carsdotcom/vehicle/{listing_id}
Endpoint catalog
/carsdotcom/searchSearches Cars.com for new and used car listings, returning normalized vehicle summaries (make, model, trim, year, mileage, exterior color, drivetrain, fuel type, pricing, seller, images) plus the total matching count. Credential-free public data sourced directly from Cars.com's own public search API.
Response notes
- `total_count` reflects Cars.com's own reported matching-result count for the applied filters, not just `len(vehicles)`. Cars.com caps this figure at `10000` for very broad searches (e.g. no filters at all) rather than reporting the true count beyond that. - `is_cpo` is set when Cars.com marks the listing as certified pre-owned. - An invalid `stock_type` value returns `400` before any upstream request is made. Example response: ```json { "code": 200, "msg": "OK", "data": { "total_count": 10000, "page": 1, "page_size": 24, "vehicles": [ { "listing_id": "a6ea5d6f-0395-4f9d-94d5-724c4d7414de", "vin": "JTHKD5BH9G2270550", "year": 2016, "make": "Lexus", "model": "CT 200h", "trim": "Base", "body_style": "Hatchback", "mileage": 63436, "exterior_color": "white", "drivetrain": "Front-wheel Drive", "fuel_type": "Hybrid", "stock_type": "Used", "price": 21992, "seller": {"dealer_name": "Lexus of Cerritos", "zip": "90703"}, "images": ["https://platform.cstatic-images.com/large/in/v2/2b36ae52-fc12-53e4-9ae5-6d931aec6878/1f5784d2-4853-48a2-9ccb-e56f0fd2c59f/7IaYP6lvanG6iPgFM2TPpNxb5gY.jpg"], "url": "https://www.cars.com/vehicledetail/a6ea5d6f-0395-4f9d-94d5-724c4d7414de/" } ], "source_url": "https://graph.cars.com/graphql/api" } } ```
MCP tool carsdotcom_search
/carsdotcom/vehicle/{listing_id}Returns a normalized Cars.com vehicle listing: full vehicle spec (make, model, trim, mileage, colors, engine, transmission, fuel economy, a key-specs table), Cars.com's own deal-fairness rating and predicted fair price, categorized equipment features, an AutoCheck-derived vehicle history report, Cars.com's own price-change history, the seller's notes, dealer detail (name, rating, address, website, phones, hours) or private-seller detail for a for-sale-by-owner listing, and certified-pre-owned/manufacturer-program detail when applicable. Credential-free public data sourced directly from Cars.com's own public GraphQL API.
Response notes
- `model` and `trim` are cleanly split (e.g. `model: "CT 200h"`, `trim: "Base"`). - A delisted or invalid `listing_id` returns a `404`. - `deal_rating` is omitted when Cars.com does not show a deal-fairness assessment for this listing (not enough comparable listings, etc). - `history`'s `owner`/`accidents`/`title` strings are a human-readable summary derived from the boolean fields alongside them (`one_owner`, `no_accidents`, `clean_title`, ...) — prefer the booleans for programmatic checks. This is not a substitute for a full paid vehicle history report. - `key_specs` and `price_history` are frequently empty arrays — Cars.com only populates them for some listings. - `dealer` is populated for a dealer listing; `private_seller` is populated instead for a for-sale-by-owner listing. A listing has at most one of the two. - `certified_pre_owned_program` is only populated for a certified-pre-owned listing (`is_cpo: true`); `new_vehicle_program` is only populated when Cars.com attaches a manufacturer incentive program to a new-inventory listing. Both are omitted otherwise. Example response: ```json { "code": 200, "msg": "OK", "data": { "listing_id": "a6ea5d6f-0395-4f9d-94d5-724c4d7414de", "vin": "JTHKD5BH9G2270550", "year": 2016, "make": "Lexus", "model": "CT 200h", "trim": "Base", "body_style": "Hatchback", "mileage": 63436, "exterior_color": "White", "drivetrain": "Front-wheel Drive", "fuel_type": "Hybrid", "stock_type": "USED", "price": 21992, "images": ["https://platform.cstatic-images.com/in/v2/.../1.jpg"], "url": "https://www.cars.com/vehicledetail/a6ea5d6f-0395-4f9d-94d5-724c4d7414de/", "title": "Used 2016 Lexus CT 200h Base", "stock_number": "G2270550", "interior_color": "Parchment", "engine": "1.8L I-4 DOHC, variable valve control, regular unleaded, engine", "transmission": "Automatic", "cylinder_count": 4, "door_count": 4, "mpg_city": 43, "mpg_highway": 40, "deal_rating": { "rating": "fair", "good_price_min": 17591, "good_price_max": 19566, "predicted_price": 17950, "predicted_price_difference": -4042 }, "features": [ {"category": "Safety", "items": ["Automatic Emergency Braking", "Backup Camera", "Brake Assist", "Stability Control"]} ], "history": { "owner": "Multiple Owners", "accidents": "No accidents reported", "title": "Clean", "one_owner": false, "no_accidents": true, "clean_title": true, "report_url": "https://www.autocheck.com/vehiclehistory/?vin=JTHKD5BH9G2270550&siteID=7071", "report_source": "autocheck" }, "sellers_notes": "This vehicle includes a Money-Back Guarantee* and passed our precise inspection process...", "dealer": { "name": "Lexus of Cerritos", "rating": 4.8, "review_count": 4101, "address": "18800 Studebaker Rd, Cerritos, CA 90703", "website": "https://www.cerritoslexus.com/", "phones": [{"area_code": "888", "local_number": "3375218", "phone_type": "PRIMARY"}], "hours": [{"day": "MON", "department": "Sales", "start_at": "09:00:00", "end_at": "21:00:00"}] }, "listed_days": 13, "total_price_change_display": "$0", "price_history": [ {"description": "Listed", "inserted_at": "2026-07-22T01:17:35", "list_price": 21992, "list_price_display": "$21,992"} ], "source_url": "https://graph.cars.com/graphql/api" } } ```
MCP tool carsdotcom_vehicle
Related APIs
Marketplaces & Retail
Collect marketplace product signals from Amazon without building brittle storefront scrapers.
Marketplaces & Retail
Build resale, pricing, and marketplace workflows from structured eBay data.
Marketplaces & Retail
Turn public Shop.app product and merchant pages into structured JSON for e-commerce product intelligence, price research, shop monitoring, and marketplace discovery workflows.
Company coverage
Cars.com Inc. · CARS
Cars.com is operated by Cars.com Inc. (CARS). Crawlora's SEC endpoints take the same company's CIK, so filings, financials, insider transactions and 13F holdings come from the same API key as the Cars.com endpoints above.
SEC filings & financials API →How to scrape Cars.com
Crawlora's Cars.com endpoints return vehicle search and full listing detail as normalized JSON with one API key — search is anchored on geography rather than free text, so the workflow is narrow the area, then resolve the listings you care about.
/carsdotcom/search takes zip, radius, stock_type (new, used, cpo or all) and page. There is no make, model or free-text parameter — the search is geographic, and you filter to the make and model you want from the normalized results.
total_count is Cars.com's own reported match count for the applied filters, not the number of vehicles in your page, and it is capped at 10000 for very broad searches. Treat a flat 10000 as "at least this many", not as a real total.
Each result already carries vin, year, make, model, trim, body_style, mileage, exterior_color, drivetrain, fuel_type, stock_type, price, seller and images — enough to narrow by make/model/mileage/price in your own code without a second request.
Pass a result's listing_id (a UUID, not a numeric id) to /carsdotcom/vehicle/{listing_id} for the full spec sheet: engine, transmission, fuel economy, a key-specs table, categorized equipment features, dealer info, an AutoCheck-style history summary, and Cars.com's own deal-fairness rating and predicted fair price.
Re-run the same geographic search on a schedule to track new inventory and price movement. A delisted or invalid listing_id returns a 404, which is the cleanest signal that a vehicle has sold or been pulled.
FAQ
Call Crawlora's /carsdotcom/search endpoint with a zip code, a radius, and optionally a stock_type of new, used, cpo or all. It returns normalized vehicle summaries plus Cars.com's own total match count as structured JSON.
Not in the request. /carsdotcom/search accepts zip, radius, stock_type and page only — passing a make or model parameter is not supported and will fail upstream. Because every result already includes make, model, trim, year, mileage and price, the practical approach is to search the area once and filter to the make and model you want from the returned summaries.
That is Cars.com's own reporting cap, not a Crawlora limit. For very broad searches — a large radius with no stock_type, for example — Cars.com reports 10000 rather than the true figure. Narrow the radius or the stock type if you need a count you can trust.
Yes — /carsdotcom/vehicle/{listing_id} returns the listing's dealer alongside the vehicle spec, equipment features, history summary and pricing. The deal_rating and predicted fair price are omitted when Cars.com has no fairness assessment for that listing, typically because it lacks enough comparable inventory.
No Cars.com account or login is required from the caller — only your Crawlora API key.