Carvana API: Search used cars
Searches 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.
Unofficial. Not affiliated with or endorsed by Carvana.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Car, required
car Make and model to find, for example Toyota Camry.
Honda Civic
- Max Year optional
max_year Latest model year, for example 2024.
Not set
Whole number from 1900 to 2100.
- Min Year optional
min_year Earliest model year, for example 2020.
Not set
Whole number from 1900 to 2100.
- Zip Code optional
zip_code US ZIP code for local delivery estimates, for example 10001.
Not set
Exactly 5 characters.
- Max Price optional
max_price Highest vehicle price in USD, for example 25000.
Not set
Whole number 0 or more.
- Max Mileage optional
max_mileage Highest odometer reading in miles, for example 60000.
Not set
Whole number 0 or more.
- Max Results optional
max_results Maximum number of cars to return, for example 30.
100
Whole number from 1 to 100. Default
24.
Input as JSON
{ "car": "Honda Civic", "max_results": 100}Output
{ "cars": [ { "vin": "2HGFE1E5XSH470283", "make": "Honda", "trim": "Si", "year": 2025, "model": "Civic", "price": 31990, "mileage": 17937, "car_link": "https://www.carvana.com/vehicle/4770587" , "currency": "USD", "photo_link": "https://vexgateway.fastly.carvana.io/3006641534/standardizedHero.jpg?v=1790284943.535" , "vehicle_id": 4770587, "key_features": [], "estimated_monthly_payment": "$514/mo" , "delivery_or_pickup_estimate": "Free shipping · Get it Friday" }, { "vin": "2HGFE1F96NH314442", "make": "Honda", "trim": "Touring", "year": 2022, "model": "Civic", "price": 21990, "mileage": 103769, "car_link": "https://www.carvana.com/vehicle/4625631" , "currency": "USD", "photo_link": "https://vexgateway.fastly.carvana.io/3006361772/standardizedHero.jpg?v=1790106223.086" , "vehicle_id": 4625631, "key_features": [], "estimated_monthly_payment": "$465/mo" , "delivery_or_pickup_estimate": "Free shipping · Get it Friday" }, { "vin": "19XFL2G8XRE025226", "make": "Honda", "trim": "Sport", "year": 2024, "model": "Civic", "price": 27990, "mileage": 23759, "car_link": "https://www.carvana.com/vehicle/4682455" , "currency": "USD", "photo_link": "https://vexgateway.fastly.carvana.io/3006478260/standardizedHero.jpg?v=1790522318.293" , "vehicle_id": 4682455, "key_features": [], "estimated_monthly_payment": "$492/mo" , "delivery_or_pickup_estimate": "Free shipping · Get it Friday" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"carvana.com/search_cars","input":{"car":"Honda Civic","max_results":100}}' # 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": "carvana.com/search_cars" , "input": { "car": "Honda Civic", "max_results": 100 }})# 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": "carvana.com/search_cars" , "input": { "car": "Honda Civic", "max_results": 100 } }), 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 carvana.com/search_cars# with {"car":"Honda Civic","max_results":100}"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" ], "properties": { "car": { "type": "string", "description": "Make and model to find, for example Toyota Camry." }, "max_year": { "type": "integer", "maximum": 2100, "minimum": 1900, "description": "Latest model year, for example 2024." }, "min_year": { "type": "integer", "maximum": 2100, "minimum": 1900, "description": "Earliest model year, for example 2020." }, "zip_code": { "type": "string", "maxLength": 5, "minLength": 5, "description": "US ZIP code for local delivery estimates, for example 10001." }, "max_price": { "type": "integer", "minimum": 0, "description": "Highest vehicle price in USD, for example 25000." }, "max_mileage": { "type": "integer", "minimum": 0, "description": "Highest odometer reading in miles, for example 60000." }, "max_results": { "type": "integer", "default": 24, "maximum": 100, "minimum": 1, "description": "Maximum number of cars to return, for example 30." } }}Output schema
{ "type": "object", "required": [ "cars" ], "properties": { "cars": { "type": "array", "items": { "type": "object", "required": [ "year", "make", "model", "trim", "price", "currency", "estimated_monthly_payment", "mileage", "delivery_or_pickup_estimate", "key_features", "photo_link", "car_link", "vin", "vehicle_id" ], "properties": { "vin": { "type": [ "string", "null" ] }, "make": { "type": "string" }, "trim": { "type": [ "string", "null" ] }, "year": { "type": "integer" }, "model": { "type": "string" }, "price": { "type": "number", "description": "Vehicle price in USD." }, "mileage": { "type": "integer", "description": "Odometer reading in miles." }, "car_link": { "type": "string" }, "currency": { "type": "string", "description": "Price currency." }, "photo_link": { "type": [ "string", "null" ] }, "vehicle_id": { "type": "integer" }, "key_features": { "type": "array", "items": { "type": "string" } }, "estimated_monthly_payment": { "type": [ "string", "null" ], "description": "Estimated payment as shown on the listing, for example $412/mo." }, "delivery_or_pickup_estimate": { "type": [ "string", "null" ], "description": "Delivery or pickup text as shown for the chosen ZIP code." } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
carvana.com/search_cars- Returns
- year, make, model, trim, price, monthly payment, mileage, delivery estimate, photo, 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 carvana.com/search_cars with the inputs above.
Ask your agent
- Find me used Honda CR-Vs from 2019 to 2022 under $26,000 with fewer than 50k miles, and tell me how fast they can deliver to 85281.
- What used Ford F-150s does Carvana have under $35k? I'm in ZIP 75201 and want to see monthly payments and delivery dates.
- Show 10 used Tesla Model 3s, 2021 or newer, under 40,000 miles, with VINs and links.
- I'm shopping for a cheap commuter car: Toyota Corolla, max $18,000, delivered to 30318. List price, mileage, and estimated monthly payment for each.
- Pull up to 40 used Jeep Wranglers on carvana.com between 2018 and 2023 priced below $32,000, with photos and pickup estimates for 98101.
See more
Searches 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 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 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 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_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_valueSearches 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_parts