CarGurus API: Search cars for sale
Searches 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.
Unofficial. Not affiliated with or endorsed by CarGurus.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Car, required
car Make and model to search, for example Toyota RAV4.
Toyota RAV4
- Max Year optional
max_year Latest model year, for example 2024.
Not set
Whole number 1900 or more.
- Min Year optional
min_year Earliest model year, for example 2021.
Not set
Whole number 1900 or more.
- Zip Code, required
zip_code Five-digit US ZIP code, for example 02108.
02108
Exactly 5 characters.
- Max Price optional
max_price Highest listing price in US dollars, for example 30000.
Not set
Number 0 or more.
- Max Mileage optional
max_mileage Maximum vehicle mileage in miles, for example 60000.
Not set
Whole number 0 or more.
- Max Results optional
max_results Maximum number of listings to return, for example 25.
60
Whole number from 1 to 100. Default
25.- Radius (miles) optional
radius_miles Maximum distance from the ZIP code in miles, for example 50.
50
Whole number 1 or more. Default
50.
Input as JSON
{ "car": "Toyota RAV4", "zip_code": "02108", "max_results": 60, "radius_miles": 50}Output
{ "listings": [ { "vin": "2T3RFREV8GW451262", "make": "Toyota", "trim": "XLE AWD", "year": 2016, "model": "RAV4", "condition": "Used", "price_usd": 15900, "photo_link": "https://static.cargurus.com/images/forsale/2026/09/17/17/23/2016_toyota_rav4-pic-283103718445583851-1024x768.jpeg" , "deal_rating": "Good Deal", "dealer_name": "Elmwood Auto Sales", "listing_link": "https://www.cargurus.com/details/458292973?resultSetId=51d51366-ac13-4eb7-b4b9-43026d896e94&searchUuid=cbd9c665-7e97-4d32-960a-e6521b26d9d2&sponsoredType=PRIORITY&srpVariation=DEFAULT_SEARCH&listingIndex=0&inclusionType=DEFAULT&searchZip=02108&searchDistance=50&ourls=SRP&srpc=N4IghgZgxiBcoC8CWAHOIAM…" , "mileage_miles": 110476, "days_on_market": 22, "distance_miles": 42.6, "amount_below_or_above_market_usd": 713 }, { "vin": "2T3RFREVXJW736908", "make": "Toyota", "trim": "XLE AWD", "year": 2018, "model": "RAV4", "condition": "Used", "price_usd": 23988, "photo_link": "https://static.cargurus.com/images/forsale/2026/08/19/06/51/2018_toyota_rav4-pic-101318377761192457-1024x768.jpeg" , "deal_rating": "Fair Deal", "dealer_name": "Autobahn USA", "listing_link": "https://www.cargurus.com/details/456440173?resultSetId=51d51366-ac13-4eb7-b4b9-43026d896e94&searchUuid=cbd9c665-7e97-4d32-960a-e6521b26d9d2&sponsoredType=FEATURED&srpVariation=DEFAULT_SEARCH&listingIndex=1&inclusionType=DEFAULT&searchZip=02108&searchDistance=50&ourls=SRP&srpc=N4IghgZgxiBcoC8CWAHOIAM…" , "mileage_miles": 38147, "days_on_market": 41, "distance_miles": 27.5, "amount_below_or_above_market_usd": 47 }, { "vin": "2T3BFREV7JW706475", "make": "Toyota", "trim": "LE AWD", "year": 2018, "model": "RAV4", "condition": "Used", "price_usd": 16995, "photo_link": "https://static.cargurus.com/images/forsale/2026/09/23/08/28/2018_toyota_rav4-pic-6423931026046083282-1024x768.jpeg" , "deal_rating": "Fair Deal", "dealer_name": "South Shore Auto Connection", "listing_link": "https://www.cargurus.com/details/454089009?resultSetId=51d51366-ac13-4eb7-b4b9-43026d896e94&searchUuid=cbd9c665-7e97-4d32-960a-e6521b26d9d2&sponsoredType=FEATURED&srpVariation=DEFAULT_SEARCH&listingIndex=2&inclusionType=DEFAULT&searchZip=02108&searchDistance=50&ourls=SRP&srpc=N4IghgZgxiBcoC8CWAHOIAM…" , "mileage_miles": 102569, "days_on_market": 68, "distance_miles": 20.3, "amount_below_or_above_market_usd": 127 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"cargurus.com/search_cars","input":{"car":"Toyota RAV4","zip_code":"02108","max_results":60,"radius_miles":50}}' # 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": "cargurus.com/search_cars" , "input": { "car": "Toyota RAV4", "zip_code": "02108", "max_results": 60, "radius_miles": 50 }})# 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": "cargurus.com/search_cars" , "input": { "car": "Toyota RAV4", "zip_code": "02108", "max_results": 60, "radius_miles": 50 } }), 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 cargurus.com/search_cars# with {"car":"Toyota RAV4","zip_code":"02108","max_results":60,"radius_miles":50}"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 example Toyota RAV4." }, "max_year": { "type": "integer", "minimum": 1900, "description": "Latest model year, for example 2024." }, "min_year": { "type": "integer", "minimum": 1900, "description": "Earliest model year, for example 2021." }, "zip_code": { "type": "string", "maxLength": 5, "minLength": 5, "description": "Five-digit US ZIP code, for example 02108." }, "max_price": { "type": "number", "minimum": 0, "description": "Highest listing price in US dollars, for example 30000." }, "max_mileage": { "type": "integer", "minimum": 0, "description": "Maximum vehicle mileage in miles, for example 60000." }, "max_results": { "type": "integer", "default": 25, "maximum": 100, "minimum": 1, "description": "Maximum number of listings to return, for example 25." }, "radius_miles": { "type": "integer", "default": 50, "minimum": 1, "description": "Maximum distance from the ZIP code in miles, for example 50." } }}Output schema
{ "type": "object", "required": [ "listings" ], "properties": { "listings": { "type": "array", "items": { "type": "object", "required": [ "year", "make", "model", "trim", "condition", "price_usd", "deal_rating", "amount_below_or_above_market_usd", "mileage_miles", "dealer_name", "distance_miles", "days_on_market", "photo_link", "listing_link", "vin" ], "properties": { "vin": { "type": [ "string", "null" ], "description": "Vehicle identification number." }, "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." }, "price_usd": { "type": [ "number", "null" ], "description": "Advertised listing price in US dollars." }, "photo_link": { "type": [ "string", "null" ], "description": "Link to a vehicle photo." }, "deal_rating": { "type": [ "string", "null" ], "description": "CarGurus deal rating, when available." }, "dealer_name": { "type": [ "string", "null" ], "description": "Name of the seller." }, "listing_link": { "type": [ "string", "null" ], "description": "Link to the CarGurus listing." }, "mileage_miles": { "type": [ "number", "null" ], "description": "Odometer mileage in miles." }, "days_on_market": { "type": [ "integer", "null" ], "description": "Days the listing has been on the market." }, "distance_miles": { "type": [ "number", "null" ], "description": "Dealer distance from ZIP code in miles." }, "amount_below_or_above_market_usd": { "type": [ "number", "null" ], "description": "US dollars below market if positive or above market if negative." } } }, "description": "New and used CarGurus car listings, used first and new second." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
cargurus.com/search_cars- Returns
- year, make, model, trim, condition, price, deal rating, market difference, mileage, dealer, distance, days on market, 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 cargurus.com/search_cars with the inputs above.
Ask your agent
- Find used Honda CR-Vs for sale within 30 miles of 60614, model years 2020 to 2023, under $28,000 and less than 50k miles
- On CarGurus, show me Ford F-150 listings near ZIP 75201 with deal ratings and how far each is above or below market
- I'm in Denver (80202) looking for a Tesla Model 3, 2021 or newer, max $35k. Which ones near me are great deals?
- Pull up to 40 Subaru Outback listings around 98101 within 75 miles, mileage under 60,000, with VINs and dealer names
- Search CarGurus for Toyota Tacoma trucks near 30303, 2019–2022, priced below $32,000, and include how long each has been listed
See more
All CarGurus methodsGets 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_valueSearches 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.
cars.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 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 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 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 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_carsFinds OfferUp items for sale near a US city or ZIP code, with prices, condition, seller names, distance and links. Distances use approximate listing locations.
offerup.com/search_listings