Autotrader API: Search cars
Searches 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.
Unofficial. Not affiliated with or endorsed by Autotrader.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Car, required
car Car make and model, for example Toyota Camry.
Honda Civic
- Max Year optional
max_year Newest model year, for example 2024.
2023
Whole number 1900 or more.
- Min Year optional
min_year Oldest model year, for example 2018.
2018
Whole number 1900 or more.
- Zip Code, required
zip_code Five-digit US ZIP code, for example 30301.
10001
Exactly 5 characters.
- Condition optional
condition Car condition, for example used; any includes all conditions.
used
One of
any,new,used,certified. Defaultany.- Max Price optional
max_price Highest asking price in USD, for example 25000.
20000
Number 0 or more.
- Max Results optional
max_results Maximum listings to return, for example 25; at most 100.
30
Whole number from 1 to 100. Default
25.- Radius (miles) optional
radius_miles Search radius in miles from the ZIP code, for example 50.
25
Whole number 0 or more. Default
50.
Input as JSON
{ "car": "Honda Civic", "max_year": 2023, "min_year": 2018, "zip_code": "10001", "condition": "used", "max_price": 20000, "max_results": 30, "radius_miles": 25}Output
{ "listings": [ { "vin": "2HGFC2F74JH590042", "make": "Honda", "trim": "EX", "year": 2018, "model": "Civic", "price": 14012, "mileage": 111263, "currency": "USD", "photo_link": "https://images.autotrader.com/hn/c/4f61747ff8a24ce8a397e8356bf8a01c.jpg" , "deal_rating": "Great Price", "seller_name": "Paul Miller BMW", "listing_link": "https://www.autotrader.com/cars-for-sale/vehicle/786601417?endYear=2023&listingType=USED&makeCode=HONDA&maxPrice=20000&modelCode=CIVIC&newSearch=false&startYear=2018&zip=10001" , "distance_miles": 19.3, "exterior_color": "Aegean Blue Metallic" }, { "vin": "SHHFK7H59JU412674", "make": "Honda", "trim": "EX", "year": 2018, "model": "Civic", "price": 19012, "mileage": 45654, "currency": "USD", "photo_link": "https://images.autotrader.com/hn/c/49c5556c75884a1e8ec7de3512fa7a70.jpg" , "deal_rating": "Great Price", "seller_name": "Paul Miller BMW", "listing_link": "https://www.autotrader.com/cars-for-sale/vehicle/785227846?endYear=2023&listingType=USED&makeCode=HONDA&maxPrice=20000&modelCode=CIVIC&newSearch=false&startYear=2018&zip=10001" , "distance_miles": 19.3, "exterior_color": "White" }, { "vin": "2HGFC2F67LH564450", "make": "Honda", "trim": "LX", "year": 2020, "model": "Civic", "price": 17995, "mileage": 36397, "currency": "USD", "photo_link": "https://images.autotrader.com/hn/c/3a210fafe785438ea1bd10e6f72b9c48.jpg" , "deal_rating": "Great Price", "seller_name": "Advantage Toyota", "listing_link": "https://www.autotrader.com/cars-for-sale/vehicle/787634274?endYear=2023&listingType=USED&makeCode=HONDA&maxPrice=20000&modelCode=CIVIC&newSearch=false&startYear=2018&zip=10001" , "distance_miles": 15.85, "exterior_color": "Cosmic Blue Metallic" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"autotrader.com/search_cars","input":{"car":"Honda Civic","max_year":2023,"min_year":2018,"zip_code":"10001","condition":"used","max_price":20000,"max_results":30,"radius_miles":25}}' # 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": "autotrader.com/search_cars" , "input": { "car": "Honda Civic", "max_year": 2023, "min_year": 2018, "zip_code": "10001", "condition": "used", "max_price": 20000, "max_results": 30, "radius_miles": 25 }})# 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": "autotrader.com/search_cars" , "input": { "car": "Honda Civic", "max_year": 2023, "min_year": 2018, "zip_code": "10001", "condition": "used", "max_price": 20000, "max_results": 30, "radius_miles": 25 } }), 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 autotrader.com/search_cars# with {"car":"Honda Civic","max_year":2023,"min_year":2018,"zip_code":"10001","condition":"used","max_price":20000,"max_results":30,"radius_miles":25}"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": "Car make and model, for example Toyota Camry." }, "max_year": { "type": "integer", "minimum": 1900, "description": "Newest model year, for example 2024." }, "min_year": { "type": "integer", "minimum": 1900, "description": "Oldest model year, for example 2018." }, "zip_code": { "type": "string", "maxLength": 5, "minLength": 5, "description": "Five-digit US ZIP code, for example 30301." }, "condition": { "enum": [ "any", "new", "used", "certified" ], "type": "string", "default": "any", "description": "Car condition, for example used; any includes all conditions." }, "max_price": { "type": "number", "minimum": 0, "description": "Highest asking price in USD, for example 25000." }, "max_results": { "type": "integer", "default": 25, "maximum": 100, "minimum": 1, "description": "Maximum listings to return, for example 25; at most 100." }, "radius_miles": { "type": "integer", "default": 50, "minimum": 0, "description": "Search radius 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", "currency", "mileage", "exterior_color", "seller_name", "distance_miles", "deal_rating", "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": "Trim name." }, "year": { "type": [ "integer", "null" ], "description": "Model year." }, "model": { "type": [ "string", "null" ], "description": "Vehicle model." }, "price": { "type": [ "number", "null" ], "description": "Asking price in USD." }, "mileage": { "type": [ "integer", "null" ], "description": "Odometer mileage in miles." }, "currency": { "type": "string", "description": "Price currency, USD." }, "photo_link": { "type": [ "string", "null" ], "description": "Primary car photo link." }, "deal_rating": { "type": [ "string", "null" ], "description": "Shown price rating, such as Good Price." }, "seller_name": { "type": [ "string", "null" ], "description": "Dealer or seller name." }, "listing_link": { "type": "string", "description": "Autotrader vehicle listing page link." }, "distance_miles": { "type": [ "number", "null" ], "description": "Distance from ZIP code in miles." }, "exterior_color": { "type": [ "string", "null" ], "description": "Exterior color." } }, "additionalProperties": false }, "description": "Car listings in Autotrader order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
autotrader.com/search_cars- Returns
- year, make, model, trim, price, mileage, color, seller, distance, deal rating, 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 autotrader.com/search_cars with the inputs above.
Ask your agent
- Find used Honda Civics within 30 miles of 94110, model years 2019 to 2022, under $20,000
- Show me certified pre-owned Subaru Outbacks near ZIP 80202, 2020 or newer, max price 32000
- On autotrader.com, pull up to 50 Ford F-150 listings around 75201 within 100 miles, any condition
- I need a cheap Mazda CX-5 near 02139 — used, 2017-2021, under $18k. List mileage, deal rating and VIN for each
- Search Autotrader for new 2024 Toyota RAV4s within 25 miles of 60614 and give me the top 10 with prices and dealers
See more
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.
cars.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 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 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_carsFinds AutoZone parts listed for a vehicle (year, make, model, optional engine), with prices, warranties and fit notes. Listings are filtered by year, make and model; engine fit often needs further confirmation.
autozone.com/search_partsFinds 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