# CarGurus API

> CarGurus returns car listings, prices, and market trends as a workflow and API.

CarGurus searches new and used car listings near a US ZIP code using a make and model, with optional year, price, mileage, and distance filters. Get market value returns used-price averages, typical price ranges, and 12-month price history for a specified year, make, and model.

- Page: https://fous.com/tools/cargurus
- Handle: `@cargurus`
- Category: [Commerce](https://fous.com/tools/category/commerce)
- Source website: https://cargurus.com
- Last verified: Sep 29, 2026

## Methods

### Get market value

Operation `get_market_value`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get the average used price, CarGurus price range and 12-month price history for a model year. Covers all trims; mileage- and ZIP-adjusted estimates and reliable listing counts are not shown on these pages.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `car` | string | yes | `"2022 Toyota Camry"` | Year, make and model, for example 2020 Honda Civic. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "car"
  ],
  "properties": {
    "car": {
      "type": "string",
      "description": "Year, make and model, for example 2020 Honda Civic.",
      "examples": [
        "2022 Toyota Camry",
        "2020 Honda Civic"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "car": "2022 Toyota Camry"
    },
    {
      "car": "2020 Honda Civic"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `car_name` | string | `"2022 Toyota Camry"` | Year, make and model. |
| `currency` | string | `"USD"` | Price currency (USD). |
| `page_link` | string | `"https://www.cargurus.com/research/price-trends/Toyota-Camry-d292"` | CarGurus price trends page link. |
| `number_of_listings` | integer or null |  | CarGurus listing count for the year and model; null when not published. |
| `monthly_average_prices` | array |  |  |
| `monthly_average_prices[].month` | string | `"2025-10"` | Month in YYYY-MM. |
| `monthly_average_prices[].price_usd` | number | `23643.53` | Average of sampled price points in the month, in USD. |
| `average_market_price_usd` | number | `23267` | Current average used asking price in USD. |
| `price_change_12_months_usd` | number or null | `-491.81` | Estimated USD change implied by the CarGurus year-over-year percentage; null if unavailable. |
| `typical_price_range_low_usd` | number or null | `22982` | Lower listed price range on the CarGurus year overview, in USD; null if not shown. |
| `typical_price_range_high_usd` | number or null | `23596` | Upper listed price range on the CarGurus year overview, in USD; null if not shown. |
| `price_change_12_months_percent` | number or null | `-2.07` | CarGurus year-over-year average price percentage. |

**Example input**

```json
{
  "car": "2022 Toyota Camry"
}
```

**Example output**

```json
{
  "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
}
```

### Search cars

Operation `search_cars`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Search new and used cars for sale near a US ZIP code, with prices, dealer details and CarGurus deal ratings. Results show used cars first, then new cars, each in CarGurus order. Deal ratings and market comparisons may be unavailable for new cars. Market difference is positive below market and negative above market.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `car` | string | yes | `"Toyota RAV4"` | Make and model to search, for example Toyota RAV4. |
| `max_year` | integer | no | `2024` | Latest model year, for example 2024. |
| `min_year` | integer | no | `2021` | Earliest model year, for example 2021. |
| `zip_code` | string | yes | `"02108"` | Five-digit US ZIP code, for example 02108. |
| `max_price` | number | no | `30000` | Highest listing price in US dollars, for example 30000. |
| `max_mileage` | integer | no | `60000` | Maximum vehicle mileage in miles, for example 60000. |
| `max_results` | integer | no | `8` | Maximum number of listings to return, for example 25. |
| `radius_miles` | integer | no | `20` | Maximum distance from the ZIP code in miles, for example 50. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "car",
    "zip_code"
  ],
  "properties": {
    "car": {
      "type": "string",
      "description": "Make and model to search, for example Toyota RAV4.",
      "examples": [
        "Toyota RAV4",
        "Honda Civic"
      ]
    },
    "max_year": {
      "type": "integer",
      "minimum": 1900,
      "description": "Latest model year, for example 2024.",
      "examples": [
        2024,
        1990
      ]
    },
    "min_year": {
      "type": "integer",
      "minimum": 1900,
      "description": "Earliest model year, for example 2021.",
      "examples": [
        2021,
        1990
      ]
    },
    "zip_code": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "Five-digit US ZIP code, for example 02108.",
      "examples": [
        "02108",
        "10001"
      ]
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "Highest listing price in US dollars, for example 30000.",
      "examples": [
        30000
      ]
    },
    "max_mileage": {
      "type": "integer",
      "minimum": 0,
      "description": "Maximum vehicle mileage in miles, for example 60000.",
      "examples": [
        60000
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of listings to return, for example 25.",
      "x-fous-developer": true,
      "examples": [
        8,
        6
      ]
    },
    "radius_miles": {
      "type": "integer",
      "default": 50,
      "minimum": 1,
      "description": "Maximum distance from the ZIP code in miles, for example 50.",
      "examples": [
        20
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "car": "Toyota RAV4",
      "zip_code": "02108"
    },
    {
      "car": "Honda Civic",
      "max_year": 2024,
      "min_year": 2021,
      "zip_code": "10001",
      "max_price": 30000,
      "max_mileage": 60000,
      "max_results": 8,
      "radius_miles": 20
    },
    {
      "car": "Toyota RAV4",
      "max_year": 1990,
      "min_year": 1990,
      "zip_code": "02108",
      "max_results": 6
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `listings` | array |  | New and used CarGurus car listings, used first and new second. |
| `listings[].vin` | string or null | `"2T3F1RFV2LW108974"` | Vehicle identification number. |
| `listings[].make` | string or null | `"Toyota"` | Vehicle make. |
| `listings[].trim` | string or null | `"LE AWD"` | Vehicle trim. |
| `listings[].year` | integer or null | `2020` | Model year. |
| `listings[].model` | string or null | `"RAV4"` | Vehicle model. |
| `listings[].condition` | string or null | `"Used"` | New or Used. |
| `listings[].price_usd` | number or null | `21524` | Advertised listing price in US dollars. |
| `listings[].photo_link` | string or null | `"https://static.cargurus.com/images/forsale/2026/08/22/18/38/2020_toyota_rav4-pic-5639693313224535045-1024x768.jpeg"` | Link to a vehicle photo. |
| `listings[].deal_rating` | string or null | `"Good Deal"` | CarGurus deal rating, when available. |
| `listings[].dealer_name` | string or null | `"McKay Chevrolet of Raynham"` | Name of the seller. |
| `listings[].listing_link` | string or null |  | Link to the CarGurus listing. |
| `listings[].mileage_miles` | number or null | `78054` | Odometer mileage in miles. |
| `listings[].days_on_market` | integer or null | `48` | Days the listing has been on the market. |
| `listings[].distance_miles` | number or null | `31.4` | Dealer distance from ZIP code in miles. |
| `listings[].amount_below_or_above_market_usd` | number or null | `1423` | US dollars below market if positive or above market if negative. |

**Example input**

```json
{
  "car": "Toyota RAV4",
  "zip_code": "02108"
}
```

**Example output**

```json
{
  "listings": [
    {
      "vin": "2T3F1RFV2LW108974",
      "make": "Toyota",
      "trim": "LE AWD",
      "year": 2020,
      "model": "RAV4",
      "condition": "Used",
      "price_usd": 21524,
      "photo_link": "https://static.cargurus.com/images/forsale/2026/08/22/18/38/2020_toyota_rav4-pic-5639693313224535045-1024x768.jpeg",
      "deal_rating": "Good Deal",
      "dealer_name": "McKay Chevrolet of Raynham",
      "listing_link": "https://www.cargurus.com/details/455779031?resultSetId=2a019d60-d839-496a-863a-6f95d5ec4f8e&searchUuid=ea2e192d-3094-4ae5-b144-7a7a2000f28a&sponsoredType=PRIORITY&srpVariation=DEFAULT_SEARCH&listingIn…",
      "mileage_miles": 78054,
      "days_on_market": 48,
      "distance_miles": 31.4,
      "amount_below_or_above_market_usd": 1423
    },
    {
      "vin": "2T3A1RFV1RW450600",
      "make": "Toyota",
      "trim": "XLE Premium AWD",
      "year": 2024,
      "model": "RAV4",
      "condition": "Used",
      "price_usd": 35972,
      "photo_link": "https://static.cargurus.com/images/forsale/2026/07/21/10/30/2024_toyota_rav4-pic-8352591056035893626-1024x768.jpeg",
      "deal_rating": "Good Deal",
      "dealer_name": "McGovern Ford of Beverly",
      "listing_link": "https://www.cargurus.com/details/451455940?resultSetId=2a019d60-d839-496a-863a-6f95d5ec4f8e&searchUuid=ea2e192d-3094-4ae5-b144-7a7a2000f28a&sponsoredType=FEATURED&srpVariation=DEFAULT_SEARCH&listingIn…",
      "mileage_miles": 10100,
      "days_on_market": 100,
      "distance_miles": 16.8,
      "amount_below_or_above_market_usd": 1857
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@cargurus",
  "visibility": "public",
  "operation": "get_market_value",
  "version": 1,
  "input": {
    "car": "2022 Toyota Camry"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@cargurus\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_market_value\",\n  \"version\": 1,\n  \"input\": {\n    \"car\": \"2022 Toyota Camry\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@cargurus",
  "visibility": "public",
  "operation": "get_market_value",
  "version": 1,
  "input": {
    "car": "2022 Toyota Camry"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/cargurus`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_market_value`: Get market value. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_cars`: Search cars. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-cargurus https://api.fous.com/mcp/tools/cargurus --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare local car listings by price, mileage, and distance.
- Find used cars matching a make, model, and budget.
- Review recent price trends for a vehicle model.
- Track how a model’s average used price changes over 12 months.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this CarGurus tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a CarGurus account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from cargurus.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What cars are for sale near a ZIP code?

Search cars returns new and used listings near a required US ZIP code for a specified make and model.

### What is the average used price for a model?

Get market value returns the current average used asking price for a specified year, make, and model.

### How has a model’s price changed over 12 months?

Get market value returns monthly average prices and the 12-month price change when available.

## Related

- [Cars.com API](https://fous.com/tools/cars-com.md): Cars.com finds car listings by make, model, and U.S. ZIP code, and provides dealerships’ latest customer reviews when available.
- [Autotrader API](https://fous.com/tools/autotrader.md): Search new, used and certified cars for sale across the United States.
- [Carfax API](https://fous.com/tools/carfax.md): Carfax provides used-car listings near a US ZIP code with free history highlights, plus open safety recalls reported by CARFAX for a VIN or US plate.
- [CarMax API](https://fous.com/tools/carmax.md): Search public CarMax used-car listings.
- [Carvana API](https://fous.com/tools/carvana.md): Search used vehicles for sale on Carvana.
- [mobile.de API](https://fous.com/tools/mobile-de.md): Search cars for sale on mobile.de.
- [Kelley Blue Book API](https://fous.com/tools/kelley-blue-book.md): Kelley Blue Book provides valuations and automotive research, including used-car value estimates and ranges, plus model reviews with ratings, pricing, fuel economy, pros and cons.
- [OfferUp API](https://fous.com/tools/offerup.md): Local marketplace for buying and selling items.
- [All Commerce tools](https://fous.com/tools/category/commerce)
