CarMax API endpoint
Searches CarMax for used car listings, returning vehicle summaries (make, model, trim, year, mileage, colors, engine, fuel economy, pricing, store, images), available search facets with live counts, and the total matching count.
/carmax/searchSearches CarMax for used car listings, returning vehicle summaries (make, model, trim, year, mileage, colors, engine, exact horsepower/torque, fuel economy, pricing, store, images) plus the total matching count across all of CarMax for the applied filters, not just the returned page.
Query parameters:
make (optional) — CarMax make, e.g. honda, Toyota, BMW
(case-insensitive). See any search response's make field for known
values.model (optional) — CarMax model, e.g. civic (case-insensitive). Does
not require make to also be set.zip (optional) — 5-digit US ZIP code to bias results toward CarMax's
nearest store. Best-effort: an unresolvable zip is ignored rather than
rejected.sort (optional) — one of bestmatch, distance-asc, price-asc,
price-desc, mileage-asc, mileage-desc, year-desc, year-asc,
newarrival. Defaults to bestmatch.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. CarMax returns
48 results per page.Notable response behavior:
total_count reflects CarMax's full matching-result count for the applied
filters, not just len(vehicles).price_info.is_price_reduced and price_info.previous_price are set when
CarMax shows a recent price drop on the listing.engine_torque_lb_ft, engine_torque_rpm, horsepower, horsepower_rpm, cylinders, towing_capacity_lbs, passenger_count) and listing metadata (image_count, description, prior_uses), with full per-vehicle detail inline rather than just a summary.filters lists CarMax's own search facets for the applied filters, with
live counts/bounds — the same data CarMax's own filter UI is built from.
Each entry's type is either Value (a discrete list of options with
per-value counts, e.g. make, model, body type, exterior color, feature —
populates values) or Range (numeric bounds plus a count histogram,
e.g. price, year, mileage — populates range).| Field | Filled in, of 48 checked | Values in the sample |
|---|---|---|
| stock_number | 48 | 26,350,524 to 70,286,615, median 29,204,425 |
| vin | 48 | |
| year | 48 | 2,014 to 2,026, median 2,021 |
| make | 48 | Honda in all 48 |
| model | 48 | Civic in all 48 |
| trim | 48 | “Sport” and 8 other values |
| body | 48 | 4D Sedan (34), 4D Hatchback (10), 2D Coupe (4) |
| mileage | 48 | 5,891 to 124,114, median 36,427 |
| exterior_color | 48 | Gray (13), Blue (10), Black (9) and 3 more |
| interior_color | 47 | Black (33), Gray (7), Red (3) and 3 more |
| engine | 48 | 2.0L (31), 1.5L (15), 2.4L (1) and 1 more |
| transmission | 48 | |
| drive_train_type | 48 | Front Wheel Drive in all 48 |
| fuel | 48 | |
| efficiency | 48 | |
| price_info | 48 | |
| store | 48 | |
| hero_image_url | 48 | img2.carmax.com |
| features | 48 | median 19 entries |
| highlighted_features | 48 | median 6 entries |
| url | 48 | carmax.com |
| engine_torque_lb_ft | 48 | 129 to 310, median 138 |
| engine_torque_rpm | 48 | 1,700 to 4,400, median 4,000 |
| horsepower | 48 | 143 to 315, median 158 |
| horsepower_rpm | 48 | 5,500 to 7,000, median 6,500 |
| cylinders | 48 | 4 |
| passenger_count | 46 | 4 to 5, median 5 |
| image_count | 48 | 15 to 29, median 27 |
| description | 48 | “2022 Honda Civic Sport” and 27 other values |
| prior_uses | 14 | median 1 entry |
| is_new_arrival | 1 | true in 1 of 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| make | string | No | CarMax make, e.g. honda, Toyota, BMW (case-insensitive) | honda | |
| model | string | No | CarMax model, e.g. civic (case-insensitive). Does not require make | civic | |
| zip | string | No | 5-digit US ZIP code to bias results toward CarMax's nearest store | 90210 | |
| sort | string | No | bestmatch | Sort order: bestmatch, distance-asc, price-asc, price-desc, mileage-asc, mileage-desc, year-desc, year-asc, newarrival. Defaults to bestmatch | price-asc |
| min_year | integer | No | Minimum model year | 2020 | |
| max_year | integer | No | Maximum model year | 2024 | |
| min_price | integer | No | Minimum price in US dollars | 15000 | |
| max_price | integer | No | Maximum price in US dollars | 30000 | |
| max_mileage | integer | No | Maximum odometer mileage | 60000 | |
| page | integer | No | 1 | 1-indexed result page, defaults to 1. CarMax returns 48 results per page | 1 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/carmax/search?page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"total_count": 91136,
"page": 1,
"page_size": 48,
"vehicles": [
{
"stock_number": 28187774,
"vin": "1FMJK1K89REA27006",
"year": 2024,
"make": "Ford",
"model": "Expedition Max",
"trim": "Limited",
"body": "4D Sport Utility",
"mileage": 41406,
"exterior_color": "Black",
"interior_color": "Tan",
"engine": "3.5L",
"transmission": {
"type": "Automatic",
"display": "Automatic"
},
"drive_train_type": "Rear Wheel Drive",
"fuel": {
"type": "Gas"
},
"efficiency": {
"mpg_city": 17,
"mpg_highway": 23
},
"price_info": {
"price": 45998,
"is_price_reduced": true,
"previous_price": 46998
},
"store": {
"id": 7124,
"name": "Canoga Park"
},
"hero_image_url": "https://img2.carmax.com/assets/28187774/hero.jpg?width=400",
"highlighted_features": [
"Turbo Charged Engine",
"Leather Seats",
"Panoramic Sunroof"
],
"engine_torque_lb_ft": 480,
"engine_torque_rpm": 2250,
"horsepower": 400,
"horsepower_rpm": 5000,
"cylinders": 6,
"towing_capacity_lbs": 6300,
"passenger_count": 7,
"prior_uses": [
"Leased Vehicle",
"Rental"
],
"image_count": 31,
"description": "2024 Ford Expedition Max Limited",
"url": "https://www.carmax.com/car/28187774"
}
],
"filters": [
{
"name": "Make",
"display_name": "Make",
"type": "Value",
"values": [
{
"value": "Toyota",
"count": 12453
},
{
"value": "Ford",
"count": 9821
}
]
},
{
"name": "BasePrice",
"display_name": "Price range",
"type": "Range",
"range": {
"minimum": 8000,
"maximum": 138999,
"increment": 1000,
"histogram": [
{
"minimum": 8000,
"maximum": 8999,
"count": 4
},
{
"minimum": 9000,
"maximum": 9999,
"count": 36
}
]
}
}
],
"source_url": "https://mobileapps-afd-prod-endpoint-drgsgffchcfkbmg4.z01.azurefd.net/api/search"
}
}Request schema
No body schema
Response schema
#/definitions/carmax.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | carmax.SearchResponse | No | ||||
| data.filters | array | No | ||||
| data.filters[].display_name | string | No | Make | |||
| data.filters[].name | string | No | Make | |||
| data.filters[].range | carmax.FilterRange | No | ||||
| data.filters[].range.histogram | array | No | ||||
| data.filters[].range.histogram[].count | integer | No | 193 | |||
| data.filters[].range.histogram[].maximum | number | No | 20999 | |||
| data.filters[].range.histogram[].minimum | number | No | 20000 | |||
| data.filters[].range.increment | number | No | 1000 | |||
| data.filters[].range.maximum | number | No | 138999 | |||
| data.filters[].range.minimum | number | No | 8000 | |||
| data.filters[].type | string | No | Value | |||
| data.filters[].values | array | No | ||||
| data.filters[].values[].count | integer | No | 12453 | |||
| data.filters[].values[].selected | boolean | No | ||||
| data.filters[].values[].url_segment | string | No | toyota | |||
| data.filters[].values[].value | string | No | Toyota | |||
| data.page | integer | No | 1 | |||
| data.page_size | integer | No | 48 | |||
| data.source_url | string | No | ||||
| data.total_count | integer | No | 91136 | |||
| data.vehicles | array | No | ||||
| data.vehicles[].body | string | No | 4D Sport Utility | |||
| data.vehicles[].cylinders | integer | No | 6 | |||
| data.vehicles[].description | string | No | 2024 Ford Expedition Max Limited | |||
| data.vehicles[].drive_train_type | string | No | Rear Wheel Drive | |||
| data.vehicles[].efficiency | carmax.Efficiency | No | Efficiency record, 5 fields: battery_range_miles, is_mpg_equivalent, mpg_city, mpg_combined, mpg_highway. Described under CarMax vehicle listing detail API. | |||
| data.vehicles[].engine | string | No | 6-cyl, Turbo Gas, 3.5L | |||
| data.vehicles[].engine_torque_lb_ft | integer | No | 480 | The fields below are only populated on the mobile-API-backed search path -- exact engine/performance numbers and listing metadata the website scrape never carried. All omitempty and additive; existing consumers reading only the fields above see no change. | ||
| data.vehicles[].engine_torque_rpm | integer | No | 2250 | |||
| data.vehicles[].exterior_color | string | No | Black | |||
| data.vehicles[].features | array | No | ||||
| data.vehicles[].fuel | carmax.Fuel | No | ||||
| data.vehicles[].fuel.capacity_gallons | number | No | 28.3 | |||
| data.vehicles[].fuel.type | string | No | Gas | |||
| data.vehicles[].hero_image_url | string | No | ||||
| data.vehicles[].highlighted_features | array | No | ||||
| data.vehicles[].horsepower | integer | No | 400 | |||
| data.vehicles[].horsepower_rpm | integer | No | 5000 | |||
| data.vehicles[].image_count | integer | No | 31 | |||
| data.vehicles[].interior_color | string | No | Tan | |||
| data.vehicles[].is_new_arrival | boolean | No | ||||
| data.vehicles[].is_transferable | boolean | No | ||||
| data.vehicles[].make | string | No | Ford | |||
| data.vehicles[].mileage | integer | No | 41406 | |||
| data.vehicles[].model | string | No | Expedition Max | |||
| data.vehicles[].passenger_count | integer | No | 7 | |||
| data.vehicles[].price_info | carmax.PriceInfo | No | PriceInfo record, 5 fields: fees, fees_included_in_price, is_price_reduced, previous_price, price. Described under CarMax vehicle listing detail API. | |||
| data.vehicles[].prior_uses | array | No | Leased Vehicle,Rental | |||
| data.vehicles[].stock_number | integer | No | 28187774 | |||
| data.vehicles[].store | carmax.Store | No | Store record, 7 fields: city, distance_miles, id, latitude, longitude, name, state. Described under CarMax vehicle listing detail API. | |||
| data.vehicles[].towing_capacity_lbs | integer | No | 6300 | |||
| data.vehicles[].transmission | carmax.Transmission | No | ||||
| data.vehicles[].transmission.display | string | No | Automatic | |||
| data.vehicles[].transmission.type | string | No | Automatic | |||
| data.vehicles[].trim | string | No | Limited | |||
| data.vehicles[].url | string | No | https://www.carmax.com/car/28187774 | |||
| data.vehicles[].vin | string | No | 1FMJK1K89REA27006 | |||
| data.vehicles[].year | integer | No | 2024 | |||
| 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/carmax/search?page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"