Discover/CarMax API
live

CarMax APIcarmax.com

Search CarMax used car inventory, retrieve vehicle specs and reviews, and look up store locations and hours via a structured REST API.

Endpoint health
verified 7d ago
search_cars
get_vehicle_details
get_stores
get_store_details
get_store_inventory
5/5 passing latest checkself-healing
Endpoints
5
Updated
21d ago

What is the CarMax API?

The CarMax API provides 5 endpoints covering used car inventory search, detailed vehicle data, and store information. Use search_cars to query listings by make, model, or body type with ZIP-based distance sorting, then call get_vehicle_details with a stock number to retrieve specs, feature lists, customer review summaries, and multiple image URLs for any specific vehicle.

Try it
Filter path for cars. Examples: /cars (all), /cars/toyota, /cars/toyota/camry, /cars/suv, /cars/sedan.
Number of results to skip for pagination.
Sort order for results.
Number of results to return per page (max 100).
5-digit US ZIP code for location-based results and shipping estimates.
api.parse.bot/scraper/ac3c0c60-727b-4ee5-bf80-9bab762f7082/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ac3c0c60-727b-4ee5-bf80-9bab762f7082/search_cars?uri=%2Fcars&skip=0&sort=bestmatch&take=3&zip_code=90001' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace carmax-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.carmax_api import CarMax, Sort, Vehicle, VehicleDetail, Store, Location

carmax = CarMax()

# Search for Toyota SUVs sorted by lowest price near Los Angeles
for vehicle in carmax.vehicles.search(uri="/cars/toyota", sort=Sort.PRICE_ASC, zip_code="90001"):
    print(vehicle.year, vehicle.make, vehicle.model, vehicle.base_price, vehicle.mileage)

    # Get full details for the first result
    detail = vehicle.details()
    print(detail.base.vin, detail.base.exterior_color)

    for spec_cat in detail.specs:
        print(spec_cat.display_name)
        for spec in spec_cat.specifications:
            print(spec.display_name, spec.display_value)

    print(detail.reviews.average, detail.reviews.top_pros)

    for img in detail.images.items:
        print(img.name, img.full_size_url)
    break

# List all CarMax stores
for store in carmax.stores.list():
    print(store.name, store.address_locality, store.address_region, store.latitude, store.longitude)

# Get a specific store location and browse its inventory
lax = carmax.location(id="7810")
for car in lax.inventory(zip_code="90301"):
    print(car.stock_number, car.make, car.model, car.base_price, car.engine_type)
All endpoints · 5 totalmissing one? ·

Search for used cars on CarMax with filters and pagination. The uri parameter filters by make, model, or body type (e.g. /cars/toyota, /cars/suv). Returns vehicle listings sorted by the chosen order. Paginated via skip/take offsets.

Input
ParamTypeDescription
uristringFilter path for cars. Examples: /cars (all), /cars/toyota, /cars/toyota/camry, /cars/suv, /cars/sedan.
skipintegerNumber of results to skip for pagination.
sortstringSort order for results.
takeintegerNumber of results to return per page (max 100).
zip_codestring5-digit US ZIP code for location-based results and shipping estimates.
Response
{
  "type": "object",
  "fields": {
    "items": "array of vehicle objects with stockNumber, make, model, year, basePrice, mileage, exteriorColor, storeId, distance, and more",
    "totalCount": "integer total number of matching vehicles"
  },
  "sample": {
    "data": {
      "items": [
        {
          "vin": "5TDKKRFH5FS065114",
          "body": "4D Sport Utility",
          "make": "Toyota",
          "trim": "XLE",
          "year": 2015,
          "model": "Highlander",
          "mileage": 118903,
          "mpgCity": 19,
          "storeId": 7810,
          "distance": 0,
          "basePrice": 18998,
          "storeName": "LAX",
          "driveTrain": "Front Wheel Drive",
          "engineSize": "3.5L",
          "engineType": "Gas",
          "horsepower": 270,
          "mpgHighway": 25,
          "stockNumber": 28679371,
          "transmission": "Automatic",
          "averageRating": 4.86,
          "exteriorColor": "Silver",
          "interiorColor": "Gray",
          "numberOfReviews": 22
        }
      ],
      "totalCount": 6289
    },
    "status": "success"
  }
}

About the CarMax API

Inventory Search and Vehicle Details

The search_cars endpoint accepts a uri path parameter that scopes results by make, model, or body type — for example /cars/toyota/camry or /cars/suv. Results are paginated using skip and take offsets (up to 100 per page) and can be sorted by available sort options. Each item in the items array includes stockNumber, make, model, year, basePrice, mileage, exteriorColor, storeId, and distance when a zip_code is provided. The totalCount field tells you how many vehicles match the query overall.

Once you have a stockNumber, get_vehicle_details returns a multi-section response: a base object with price, VIN, and color data; a specs array organized by category with human-readable displayName labels; a features array keyed by categoryName and featureName; an images object with a structured items array of image URLs; and a highlights array with titled description blocks. It also returns a reviews object containing a customerReviews array, an average rating, and aggregated topPros and topCons lists derived from buyer feedback for that make and model.

Store Locations and Local Inventory

get_stores returns the complete list of CarMax store locations in a single call — no pagination required. Each store object includes name, a structured address with addressLocality, addressRegion, and addressCountry, and a geo object with latitude and longitude. For deeper store data, get_store_details takes a store_id (available from vehicle search results via the storeId field) and returns phone numbers, full hours of operation, holiday hours, service hours, store attributes, capabilities, and a live isOpen boolean.

To pull inventory near a specific store, get_store_inventory takes the same store_id and optional zip_code, returning the same vehicle listing format as search_cars with totalCount and a paginated items array. This is useful for building store-specific inventory views or transfer-availability checks.

Reliability & maintenanceVerified

The CarMax API is a managed, monitored endpoint for carmax.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when carmax.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official carmax.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a used car price tracker that monitors basePrice changes for specific make/model combinations using search_cars.
  • Aggregate customer review topPros and topCons from get_vehicle_details to compare buyer sentiment across competing models.
  • Map all CarMax locations using the geo coordinates from get_stores for a dealer-finder feature.
  • Check real-time open/closed status and service hours for a specific store using get_store_details before routing a user.
  • List the full inventory available at a chosen store using get_store_inventory with a store_id and paginate through results.
  • Filter convertible or SUV inventory near a ZIP code by passing a body-type uri and zip_code to search_cars.
  • Pull VIN, mileage, and spec data from get_vehicle_details to pre-populate a vehicle history lookup or comparison tool.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does CarMax have an official public developer API?+
CarMax does not publish a public developer API or documented data feed. Access to structured inventory, vehicle, and store data is available through this Parse API.
What does get_vehicle_details return beyond basic price and mileage?+
It returns a specs array grouped by category, a features array with category and feature names, an images object with multiple image URLs, a highlights array with titled descriptions, and a reviews object that includes an average rating, a customerReviews array, and aggregated topPros and topCons lists for the make/model.
Can I filter search results by price range, mileage, or year?+
The search_cars endpoint currently accepts uri (for make, model, or body type), zip_code, sort, and pagination params. Dedicated filters for price range, mileage, or year are not exposed as direct parameters. You can fork this API on Parse and revise it to add those filter parameters.
Does the API return financing or monthly payment estimates?+
Not currently. The API covers vehicle pricing via basePrice, specs, features, and store data. Financing terms, monthly payment calculators, and credit-related fields are not part of the current response schema. You can fork it on Parse and revise to add the missing endpoint.
How does pagination work across the inventory endpoints?+
Both search_cars and get_store_inventory use skip and take integer offsets. take is capped at 100 per request. Use the totalCount field from the first response to calculate how many additional pages are needed.
Page content last updated . Spec covers 5 endpoints from carmax.com.
Related APIs in AutomotiveSee all →
cars.com API
Search for vehicles on Cars.com using filters like price, make, and model, then get detailed specifications and dealer inventory information for any listing you're interested in. Access comprehensive vehicle details including pricing, features, and dealer contact information all in one place.
carvana.com API
Search Carvana's used car inventory by make, model, price, fuel type, and more. Retrieve paginated listings with pricing, specs, and delivery details, or fetch comprehensive information for a specific vehicle by ID.
carsforsale.com API
Search vehicle listings and browse detailed car inventory by make, model, and trim to find the perfect vehicle on CarsForSale.com. Access comprehensive listing details including pricing, specifications, and availability all in one place.
edmunds.com API
Search new and used car inventory on Edmunds by make, model, year, condition, and location. Retrieve detailed specs, pricing, history, and dealer info by VIN, and browse all available car makes.
carfax.com API
carfax.com API
carsales.com API
Search for cars on Carsales and retrieve detailed listings with technical specifications, makes, and models. Filter and browse available vehicles by make to find exactly what you're looking for.
autotrader.com API
Search Autotrader.com vehicle listings and access detailed information like pricing, specifications, and VIN data with flexible filtering options. Browse all available vehicle makes and models to refine your search across thousands of listings.
cardekho.com API
Search and browse used and new car listings with detailed vehicle information, pricing, and specifications from CarDekho.com. View immersive 360-degree vehicle imagery to inspect cars from every angle before making a purchase decision.