CarGurus API: Get used car market value
Gets 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.
Unofficial. Not affiliated with or endorsed by CarGurus.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Car, required
car Year, make and model, for example 2020 Honda Civic.
2022 Toyota Camry
Input as JSON
{ "car": "2022 Toyota Camry"}Output
{ "car_name": "2022 Toyota Camry", "currency": "USD", "page_link": "https://www.cargurus.com/research/price-trends/Toyota-Camry-d292" , "number_of_listings": null, "monthly_average_prices": [ { "month": "2025-10", "price_usd": 23643.53 }, { "month": "2025-11", "price_usd": 23340.55 }, { "month": "2025-12", "price_usd": 22834.24 } ], "average_market_price_usd": 23267, "price_change_12_months_usd": -491.81, "typical_price_range_low_usd": 22982, "typical_price_range_high_usd": 23596, "price_change_12_months_percent": -2.07}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"cargurus.com/get_market_value","input":{"car":"2022 Toyota Camry"}}' # 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/get_market_value" , "input": { "car": "2022 Toyota Camry" }})# 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/get_market_value" , "input": { "car": "2022 Toyota Camry" } }), 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/get_market_value# with {"car":"2022 Toyota Camry"}"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": "Year, make and model, for example 2020 Honda Civic." } }}Output schema
{ "type": "object", "required": [ "car_name", "average_market_price_usd", "currency", "typical_price_range_low_usd", "typical_price_range_high_usd", "price_change_12_months_usd", "price_change_12_months_percent", "monthly_average_prices", "number_of_listings", "page_link" ], "properties": { "car_name": { "type": "string", "description": "Year, make and model." }, "currency": { "type": "string", "description": "Price currency (USD)." }, "page_link": { "type": "string", "description": "CarGurus price trends page link." }, "number_of_listings": { "type": [ "integer", "null" ], "description": "CarGurus listing count for the year and model; null when not published." }, "monthly_average_prices": { "type": "array", "items": { "type": "object", "required": [ "month", "price_usd" ], "properties": { "month": { "type": "string", "description": "Month in YYYY-MM." }, "price_usd": { "type": "number", "description": "Average of sampled price points in the month, in USD." } } } }, "average_market_price_usd": { "type": "number", "description": "Current average used asking price in USD." }, "price_change_12_months_usd": { "type": [ "number", "null" ], "description": "Estimated USD change implied by the CarGurus year-over-year percentage; null if unavailable." }, "typical_price_range_low_usd": { "type": [ "number", "null" ], "description": "Lower listed price range on the CarGurus year overview, in USD; null if not shown." }, "typical_price_range_high_usd": { "type": [ "number", "null" ], "description": "Upper listed price range on the CarGurus year overview, in USD; null if not shown." }, "price_change_12_months_percent": { "type": [ "number", "null" ], "description": "CarGurus year-over-year average price percentage." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
cargurus.com/get_market_value- Returns
- car name, average market price, price range, 12-month change in USD and percent, monthly average prices, page link
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/get_market_value with the inputs above.
Ask your agent
- What's the average asking price for a used 2019 Toyota RAV4 right now, and how has it changed over the past year?
- Check CarGurus for the current market value and price range of a 2017 Ford F-150
- How much have 2021 Tesla Model 3 prices dropped over the last 12 months? Show me the monthly averages.
- I'm selling my 2015 Subaru Outback — what's the typical used price range across all trims?
- Pull the CarGurus price trend for a 2018 Jeep Wrangler, including the 12-month percent change
See more
All CarGurus methodsSearches 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 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 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_carsGets Kelley Blue Book's expert and consumer ratings, trim prices with the KBB Fair Purchase Price, fuel economy, pros, cons and the expert review's opening verdict for a car model by year, make and model. Some details are unavailable for certain model years.
kbb.com/get_car_reviewEstimates a used car's trade-in and private-party values and ranges on Kelley Blue Book for a given mileage, ZIP code, trim and condition.
kbb.com/get_car_valueSearches 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 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_cars