Autotrader API endpoint
Searches Autotrader for new and used car listings, returning vehicle summaries (make, model, trim, year, mileage, pricing, images) plus the total matching count.
/autotrader/searchSearches Autotrader for new and used car listings, returning vehicle summaries (make, model, trim, year, mileage, colors, transmission, fuel type, pricing, images) plus the total matching count across all of Autotrader, not just the returned page.
Query parameters:
query (optional) — free-text keyword search.zip (optional) — 5-digit US ZIP code to search around.radius (optional) — search radius in miles around zip.make (optional) — Autotrader make code, e.g. TOYOTA, HONDA, BMW.
See any search response's make.code field for known codes.model (optional) — Autotrader model code, e.g. CAMRY. Requires make.trim (optional) — Autotrader trim code. Requires make and model.condition (optional) — listing condition. Allowed values: new, used,
certified (manufacturer certified pre-owned), 3p_cert (third-party
certified).body_style (optional) — body style. Allowed values: convertible,
coupe, hatchback, sedan, suv, truck, van, wagon.seller_type (optional) — seller type. Allowed values: dealer,
private.min_year / max_year (optional) — model year range.min_price / max_price (optional) — price range in US dollars.max_mileage (optional) — maximum odometer mileage.page (optional) — 1-indexed result page. Defaults to 1. Autotrader
returns 24 results per page.Notable response behavior:
total_count reflects Autotrader's full matching-result count for the
applied filters, not just len(vehicles).condition, body_style, or seller_type value returns 400
before any upstream request is made.200 with "vehicles": []
and total_count: 0, not an error.pricing.no_price_label (e.g. "Contact Dealer For Price") is set
instead of a numeric price when the dealer requires direct contact for
pricing.stats reports price and model-year aggregates (min/average/max) across
the FULL matching result set for the applied filters, not just the
returned page — useful for market-research callers who want the shape of
the whole matching inventory. It is omitted when Autotrader's page does
not carry this aggregate for the request.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | No | Free-text keyword search | leather seats | |
| zip | string | No | 5-digit US ZIP code to search around | 90210 | |
| radius | integer | No | Search radius in miles around zip | 50 | |
| make | string | No | Autotrader make code, e.g. TOYOTA, HONDA, BMW | TOYOTA | |
| model | string | No | Autotrader model code, e.g. CAMRY. Requires make | CAMRY | |
| trim | string | No | Autotrader trim code. Requires make and model | LE | |
| condition | string | No | Listing condition. Allowed values: new, used, certified, 3p_cert Allowed values: new, used, certified, 3p_cert. | used | |
| body_style | string | No | Body style. Allowed values: convertible, coupe, hatchback, sedan, suv, truck, van, wagon Allowed values: convertible, coupe, hatchback, sedan, suv, truck, van, wagon. | suv | |
| seller_type | string | No | Seller type. Allowed values: dealer, private Allowed values: dealer, private. | dealer | |
| min_year | integer | No | Minimum model year | 2020 | |
| max_year | integer | No | Maximum model year | 2026 | |
| min_price | integer | No | Minimum price in US dollars | 10000 | |
| max_price | integer | No | Maximum price in US dollars | 40000 | |
| max_mileage | integer | No | Maximum odometer mileage | 60000 | |
| page | integer | No | 1 | 1-indexed result page, defaults to 1. Autotrader returns 24 results per page | 1 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/autotrader/search?query=coffee&condition=new&body_style=convertible&seller_type=dealer&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"total_count": 3392288,
"page": 1,
"page_size": 24,
"vehicles": [
{
"id": 754822172,
"vin": "5GAEVAKS4TJ113378",
"title": "New 2026 Buick Enclave Preferred w/ Power Package",
"year": 2026,
"make": {
"code": "BUICK",
"name": "Buick"
},
"model": {
"code": "ENCLAVE",
"name": "Enclave"
},
"trim": {
"code": "ENCLAVE|Preferred",
"name": "Preferred"
},
"body_styles": [
{
"code": "SUV",
"name": "Sport Utility"
}
],
"mileage": {
"label": "Mileage",
"value": "1,111"
},
"color": {
"exterior_color": "Ocean Blue Metallic",
"exterior_color_simple": "BLUE"
},
"transmission": {
"code": "AUT",
"name": "Automatic",
"description": "8-Speed Automatic"
},
"fuel_type": {
"code": "G",
"name": "Gasoline",
"group": "Gas"
},
"listing_type": "NEW",
"days_on_site": 252,
"pricing": {
"sale_price": 45235,
"msrp": 53055,
"display_price": 45235
},
"url": "https://www.autotrader.com/cars-for-sale/vehicle/754822172"
}
],
"stats": {
"derived_price": {
"max": 289995,
"average": 34521.5,
"min": 1500
},
"year": {
"max": 2026,
"average": 2018.3,
"min": 1960
},
"start_year": 1960,
"end_year": 2026,
"min_price": 1500,
"max_price": 289995
},
"source_url": "https://www.autotrader.com/cars-for-sale/all-cars"
}
}Request schema
No body schema
Response schema
#/definitions/autotrader.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | autotrader.SearchResponse | No | ||||
| data.page | integer | No | 1 | |||
| data.page_size | integer | No | 24 | |||
| data.source_url | string | No | ||||
| data.stats | autotrader.SearchStats | No | ||||
| data.stats.derived_price | autotrader.StatRange | No | ||||
| data.stats.derived_price.average | number | No | 34521.5 | |||
| data.stats.derived_price.max | number | No | 89995 | |||
| data.stats.derived_price.min | number | No | 1500 | |||
| data.stats.end_year | integer | No | 2026 | |||
| data.stats.max_price | number | No | 89995 | |||
| data.stats.min_price | number | No | 1500 | |||
| data.stats.start_year | integer | No | 1960 | |||
| data.stats.year | autotrader.StatRange | No | ||||
| data.stats.year.average | number | No | 34521.5 | |||
| data.stats.year.max | number | No | 89995 | |||
| data.stats.year.min | number | No | 1500 | |||
| data.total_count | integer | No | 3392288 | |||
| data.vehicles | array | No | Vehicle record, 63 fields: body_styles, color, days_on_site, drive_type, engine, fuel_type, id, images, is_hot, is_newly_listed, is_reduced_price, listing_type and 17 more. Described under Autotrader dealer profile API. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/autotrader/search?query=coffee&condition=new&body_style=convertible&seller_type=dealer&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"