Cars.com API: Search listings
Searches Cars.com car listings for a make and model around a US ZIP code within a radius, optionally by condition (new, used or certified pre-owned) and maximum price, in Cars.com search order.
Unofficial. Not affiliated with or endorsed by Cars.com.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Car, required
car Make and model to search for, for example Ford F-150.
Ford F-150
- Zip Code, required
zip_code Five-digit US ZIP code, for example 60601.
60601
Exactly 5 characters.
- Condition optional
condition Vehicle condition, for example used. Certified selects certified pre-owned cars.
used
One of
any,new,used,certified. Defaultany.- Max Price optional
max_price Maximum listed price in USD; leave blank for no price cap, for example 25000.
30000
Whole number 0 or more.
- Max Results optional
max_results Maximum number of listings to return, for example 20.
30
Whole number from 1 to 100. Default
20.- Radius (miles) optional
radius_miles Search distance in miles from the ZIP code, for example 50.
37
Whole number from 1 to 9999. Default
50.
Input as JSON
{ "car": "Ford F-150", "zip_code": "60601", "condition": "used", "max_price": 30000, "max_results": 30, "radius_miles": 37}Output
{ "listings": [ { "vin": "1FTFW1E55MKE12878", "make": "Ford", "trim": "XLT", "year": 2021, "model": "F-150", "condition": "used", "photo_url": "https://platform.cstatic-images.com/in/v2/dd56b598-9e74-58c3-b3e8-2c623780b8ed/191fb3ba-ac23-48e8-9f84-4cd23578ace8/bD7FreNtlHwGie9BezRkbLAH1Tc.jpg" , "price_usd": 27000, "deal_badge": "Good Deal", "dealer_name": "Al Piemonte Nissan", "listing_url": "https://www.cars.com/vehicledetail/fb0e11c3-7a87-4808-801b-8af13680a45a/?attribution_type=premier&sid=c94c64f9-7f7e-4371-8533-fb4898a1cd19" , "dealer_rating": 4.7, "mileage_miles": 130912, "distance_miles": 13 }, { "vin": "1FTEW1EP3MFC01815", "make": "Ford", "trim": "XLT", "year": 2021, "model": "F-150", "condition": "used", "photo_url": "https://platform.cstatic-images.com/in/v2/0ec7e1eb-e70e-4af2-aaef-9eb955a66f33/10e0ef86-55aa-4d2b-8385-c097fbf30ae4/sI4pDvx-uE1QbLwMm-zrdb-cx6g.jpg" , "price_usd": 26578, "deal_badge": "Great Deal", "dealer_name": "D'Arcy Mitsubishi", "listing_url": "https://www.cars.com/vehicledetail/a4301367-8dd6-4bd2-a6a6-9dc3c73d2bae/?attribution_type=isa&sid=c94c64f9-7f7e-4371-8533-fb4898a1cd19" , "dealer_rating": 4.9, "mileage_miles": 81787, "distance_miles": 37 }, { "vin": "1FTEW1E57KKD68973", "make": "Ford", "trim": "LARIAT", "year": 2019, "model": "F-150", "condition": "used", "photo_url": "https://platform.cstatic-images.com/in/v2/4b990c84-bff4-5211-8ee3-37adf360680b/d0745c30-55ec-4ef5-8559-0db28bc908dd/dFXzLTEKgOkZmo6esW5QLpTGhZ0.jpg" , "price_usd": 23346, "deal_badge": "Good Deal", "dealer_name": "Family Hyundai", "listing_url": "https://www.cars.com/vehicledetail/e33c1961-57c9-4f1d-8197-d27de258f2f8/?attribution_type=isa&sid=c94c64f9-7f7e-4371-8533-fb4898a1cd19" , "dealer_rating": 4.5, "mileage_miles": 138215, "distance_miles": 23 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"cars.com/search_cars","input":{"car":"Ford F-150","zip_code":"60601","condition":"used","max_price":30000,"max_results":30,"radius_miles":37}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "cars.com/search_cars" , "input": { "car": "Ford F-150", "zip_code": "60601", "condition": "used", "max_price": 30000, "max_results": 30, "radius_miles": 37 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "cars.com/search_cars" , "input": { "car": "Ford F-150", "zip_code": "60601", "condition": "used", "max_price": 30000, "max_results": 30, "radius_miles": 37 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run cars.com/search_cars# with {"car":"Ford F-150","zip_code":"60601","condition":"used","max_price":30000,"max_results":30,"radius_miles":37}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "car", "zip_code" ], "properties": { "car": { "type": "string", "description": "Make and model to search for, for example Ford F-150." }, "zip_code": { "type": "string", "maxLength": 5, "minLength": 5, "description": "Five-digit US ZIP code, for example 60601." }, "condition": { "enum": [ "any", "new", "used", "certified" ], "type": "string", "default": "any", "description": "Vehicle condition, for example used. Certified selects certified pre-owned cars." }, "max_price": { "type": "integer", "minimum": 0, "description": "Maximum listed price in USD; leave blank for no price cap, for example 25000." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of listings to return, for example 20." }, "radius_miles": { "type": "integer", "default": 50, "maximum": 9999, "minimum": 1, "description": "Search distance in miles from the ZIP code, for example 50." } }}Output schema
{ "type": "object", "required": [ "listings" ], "properties": { "listings": { "type": "array", "items": { "type": "object", "required": [ "year", "make", "model", "trim", "price_usd", "mileage_miles", "condition", "dealer_name", "dealer_rating", "distance_miles", "deal_badge", "photo_url", "listing_url", "vin" ], "properties": { "vin": { "type": [ "string", "null" ], "description": "Vehicle identification number when shown.", "x-fous-developer": true }, "make": { "type": [ "string", "null" ], "description": "Vehicle make." }, "trim": { "type": [ "string", "null" ], "description": "Vehicle trim." }, "year": { "type": [ "integer", "null" ], "description": "Model year." }, "model": { "type": [ "string", "null" ], "description": "Vehicle model." }, "condition": { "type": [ "string", "null" ], "description": "New or used; certified cars are used." }, "photo_url": { "type": [ "string", "null" ], "description": "Primary listing photo link." }, "price_usd": { "type": [ "number", "null" ], "description": "Listed price in US dollars." }, "deal_badge": { "type": [ "string", "null" ], "description": "Deal badge when shown, such as Great Deal." }, "dealer_name": { "type": [ "string", "null" ], "description": "Seller or dealer name." }, "listing_url": { "type": "string", "description": "Cars.com vehicle page link." }, "dealer_rating": { "type": [ "number", "null" ], "description": "Dealer review rating from 0 to 5." }, "mileage_miles": { "type": [ "integer", "null" ], "description": "Odometer miles." }, "distance_miles": { "type": [ "number", "null" ], "description": "Listing distance from the search ZIP code in miles." } }, "additionalProperties": false }, "description": "Matching Cars.com listings in search order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
cars.com/search_cars- Returns
- year, make, model, trim, price, mileage, condition, dealer name and rating, distance, deal badge, photo, listing link, VIN
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method cars.com/search_cars with the inputs above.
Ask your agent
- Find used Toyota RAV4s under $28,000 within 30 miles of 78701
- Show me certified pre-owned Honda Accords near ZIP 30309 on Cars.com, up to 75 miles away
- I'm in 98103 — what new Subaru Outbacks are dealers listing within 50 miles? Need price, trim, and VIN.
- Pull up to 40 Cars.com listings for a Jeep Wrangler around 80202, any condition, max $35k
- Looking for a cheap used Mazda3 under 15000 dollars close to 02139, within 25 miles, with mileage and dealer ratings
See more
All Cars.com methodsFinds a dealership on Cars.com by name and city/state or ZIP and returns its latest customer reviews with its rating, address and phone.
cars.com/get_dealer_reviewsSearches CARFAX used-car listings for a make and model near a US ZIP code, in CARFAX order, with listing details and free vehicle-history highlights. Paid full history reports are not included.
carfax.com/search_carsSearches Autotrader car listings near a US ZIP code by make and model, with condition, price, year and distance filters. Returns up to 100 listings in site order.
autotrader.com/search_carsSearches new and used cars for sale near a US ZIP code for a make and model, with prices, dealer details and CarGurus deal ratings. Used cars come first, then new cars, each in CarGurus order; market difference is positive below market and negative above.
cargurus.com/search_carsSearches CarMax used cars by make and model with optional ZIP, distance, year, price and mileage filters, keeping CarMax's order. Pages expose only the first 48 cars; distance is CarMax's distance from the selected local store, and larger limits or narrow distance filters may return fewer matches.
carmax.com/search_carsSearches Carvana's used-car inventory by make and model, with optional price, year, mileage and ZIP filters, and returns each car's price, estimated monthly payment, mileage and delivery or pickup estimate for the ZIP.
carvana.com/search_carsSearches mobile.de car listings by make and model, with optional registration year, price, mileage, fuel, condition and sorting. Returns up to 50 listings in marketplace order; fields not shown on a listing are null.
mobile.de/search_carsGets the current average used asking price, the CarGurus price range and the 12-month price history for a model year (all trims), from CarGurus price trends.
cargurus.com/get_market_value