# Search Past 90 Days

> Full reference for the search_past_90_days tool — search expired and sold vehicle listings from the last 90 days in US and Canada for historical market analysis.

Search **expired and sold** car listings from the last 90 days in the US and Canada. This tool is designed for historical market analysis, pricing trends, and dealer inventory turnover — not for finding active listings.

> **IMPORTANT**: 
> This tool returns only expired/sold listings. For currently active inventory, use [`search_active_cars`](/docs/get-started/api/mcp/tools/search-active-cars).



## Overview

| Property | Value    |
|----------|----------|
| Tool name | `search_past_90_days` |
| Markets | US, Canada |
| Data | Expired/sold listings from last 90 days |
| Seller types | `dealer` only |
| Default rows | 5 (max 50) |
| API endpoint | `GET /v2/search/car/recents` |
| Billing | Higher rate than active search |




## Important Constraints



### Location Requirement

At least **one** location filter is required for every query:

- `city`, `state`, `zip`, `dealer_id`, `source`, or `latitude` + `longitude` + `radius`
- For geo queries, `radius` cannot exceed 100 miles



### VIN vs Listing ID

A single VIN can have multiple listing IDs — each price or mileage change creates a new listing record. When `expired=false`, results show listings for VINs that are still active in the market, but the specific listing record shown is the expired one. The current listing lives in the active search API.



### Analytics Limitation

Unlike active search, you **cannot** combine `facets`, `stats`, and `range_facets` in a single call. Run them as separate requests.



## Parameters

This tool shares most parameters with `search_active_cars`, plus these additional filters:



### Status Filters

| Parameter   | Type        | Description |
|-------------|-------------|-------------|
| `sold` | bool | Filter to confirmed sold listings only |
| `expired` | bool | Filter by expiry status (`true` for expired, `false` for listings with active VINs) |
| `owned` | bool | When used with `dealer_id`, returns listings actually owned by that dealer |




### Location Filters (at least one required)

| Parameter   | Type        | Description |
|-------------|-------------|-------------|
| `city` | string | City name |
| `state` | string | 2-letter state code |
| `zip` | string | ZIP code |
| `dealer_id` | string | Dealer ID |
| `source` | string | Listing source filter |
| `latitude` + `longitude` + `radius` | float, float, int | Geo search (radius max 100 miles) |


All vehicle specification, pricing, color, timing, and analytics parameters from `search_active_cars` are also supported.



## Use Cases



### Analyze sold vehicles in a market

```text
search_past_90_days(
  state="CA",
  make="Toyota",
  model="RAV4",
  sold=true,
  rows=20,
  sort_by="price",
  sort_order="desc"
)
```



### Days-on-market analysis for a dealer

```text
search_past_90_days(
  dealer_id="12345",
  stats="dom",
  rows=1
)
```



### Discover recently sold body types

```text
search_past_90_days(
  state="TX",
  facets="body_type|0|30",
  sold=true,
  rows=1
)
```



### Track recent sales for a specific model

```text
search_past_90_days(
  state="NY",
  make="BMW",
  model="X5",
  sold=true,
  sort_by="last_seen",
  sort_order="desc",
  rows=20
)
```



## See Also

- [Search Active Cars](/docs/get-started/api/mcp/tools/search-active-cars) — For live inventory
- [Sold Summary](/docs/get-started/api/mcp/tools/sold-summary) — For longer-term sold vehicle analytics (up to 5 years, Enterprise only)
- [Workflows & Use Cases](/docs/get-started/api/mcp/workflows) — Multi-tool analysis patterns
