AutoZone APIautozone.com ↗
Search AutoZone's retail parts catalog by keyword and vehicle. Get SKU-level pricing, core charges, and in-store/ship-to-home availability by ZIP code.
What is the AutoZone API?
The AutoZone API exposes 1 endpoint — search_products — that queries AutoZone's retail parts catalog and returns up to 48 SKUs per page with retail price, core charge, total price, and store-level availability. Results can be scoped to a specific vehicle by year, make, model, and engine, and tied to a real store by ZIP code so that in-store pickup and ship-to-home status reflect actual local inventory.
curl -X GET 'https://api.parse.bot/scraper/2948b2ef-117b-439b-80ad-cded23a4ba5c/search_products?make=Toyota&year=2019&model=Camry&query=brake+pads&engine=4+Cylinders+2.5L+GAS&zip_code=90210' \ -H 'X-API-Key: $PARSE_API_KEY'
Keyword search of AutoZone's public retail catalog. Returns one page of product records (grain: one row per SKU) with retail pricing and availability for a single store. The store is the nearest AutoZone to zip_code when given; otherwise the site's own default store is used and store is null while store_id still reports which store the prices and stock apply to. To scope results to a vehicle, supply year, make and model together (supplying only one or two of them is rejected as invalid input); make/model/engine are matched case-insensitively against the names AutoZone lists for that year, and an unrecognized make, model or engine returns a not-found error whose message lists the engines the site offers for that vehicle. engine is optional: when omitted it is applied automatically only if the vehicle has a single engine option; otherwise the vehicle is filtered at year/make/model level and vehicle_fit may report NEEDS_MORE_INFO instead of FITS. Pagination: limit is the page size (1-48, larger values are clamped to 48) and page is the 1-based page number; total_results is AutoZone's count of matching SKUs and has_more is true when later pages exist. Prices are the store's public retail prices in USD (retail_price, total_price, core_price refund-able core charge when present); no commercial-account pricing is ever requested, and sale/'was' prices are not available from this source. currency is null and price fields are null for a SKU the store returns no price row for. pickup_available/pickup_quantity (in-store pickup at store_id) and ship_to_home_available/ship_to_home_quantity are null when the site reports no such fulfillment option for that SKU. Nonsense keywords are not empty: the site answers with a fuzzy fallback set, so products may be non-empty with corrected_term set or unrelated matches. Cost: one call performs roughly 5 upstream requests without a vehicle and up to 9 with one.
| Param | Type | Description |
|---|---|---|
| make | string | Vehicle make name as AutoZone lists it (case-insensitive). Must be supplied together with year and model. |
| page | integer | 1-based page number over the search results. |
| year | string | 4-digit vehicle model year. Must be supplied together with make and model; omitted = no vehicle filter. |
| limit | integer | Page size: number of products per page, 1-48 (values above 48 are clamped to 48). |
| model | string | Vehicle model name as AutoZone lists it for that make and year (case-insensitive). Must be supplied together with year and make. |
| queryrequired | string | Part keyword or part number to search for (e.g. brake pads). |
| engine | string | Engine option name exactly as AutoZone lists it for the vehicle (case-insensitive), one shape being '4 Cylinders 2.5L GAS'. Only meaningful with year/make/model. Omitted = applied automatically when the vehicle has exactly one engine option, otherwise the vehicle is searched without an engine. |
| zip_code | string | 5-digit US ZIP code, leading zeros preserved; the nearest AutoZone store to it supplies pricing and availability. A ZIP with no store within 150 miles returns a not-found error. Omitted = the site's default store. |
{
"type": "object",
"fields": {
"page": "page number returned",
"query": "the search keyword as submitted (trimmed)",
"store": "object {store_id, address, city, state, zip, phone} for the store resolved from zip_code; null when zip_code was omitted",
"vehicle": "object {year, make, make_id, model, model_id, engine} for the resolved vehicle; null when no vehicle was given; engine null when none was applied",
"has_more": "true when page * per_page is below total_results",
"per_page": "effective page size after clamping",
"products": "array of product objects: sku, name, brand, sub_brand, part_number, retail_price, total_price, core_price (numbers in USD or null), currency ('USD' or null), product_url, image_url, category, location (fitment position such as Front/Rear), vehicle_fit (FITS / NEEDS_MORE_INFO / NEEDS_BASE_VEHICLE), attributes (object of key attribute name -> value), pickup_available, pickup_quantity, ship_to_home_available, ship_to_home_quantity (nullable)",
"store_id": "AutoZone store number whose prices and stock are reported",
"total_results": "AutoZone's total count of matching SKUs",
"corrected_term": "spelling correction AutoZone applied to the keyword, or null"
},
"sample": {
"data": {
"page": 1,
"query": "brake pads",
"store": {
"zip": "90035",
"city": "Los Angeles",
"phone": "+1 (555) 012-3456",
"state": "CA",
"address": "6141 W Pico Blvd",
"store_id": "5433"
},
"vehicle": {
"make": "Toyota",
"year": 2019,
"model": "Camry",
"engine": "4 Cylinders 2.5L GAS",
"make_id": 76,
"model_id": 1011
},
"has_more": true,
"per_page": 2,
"products": [
{
"sku": "1115997",
"name": "Duralast Ceramic Brake Pads D2076",
"brand": "Duralast",
"category": "Brake Pads",
"currency": "USD",
"location": "Front",
"image_url": "https://contentassets.autozone.com/product_image/USA/1684/CFHH/D2076/D2076-01.jpg",
"sub_brand": "Duralast",
"attributes": {
"Type": "Disc Brake Pad Set",
"Pad Type": "Ceramic",
"Mounting Hardware Included": "No"
},
"core_price": null,
"part_number": "D2076",
"product_url": "https://www.autozone.com/p/duralast-disc-brake-pad-set-d2076/1115997",
"total_price": 43.99,
"vehicle_fit": "NEEDS_MORE_INFO",
"retail_price": 43.99,
"pickup_quantity": 1,
"pickup_available": true,
"ship_to_home_quantity": 8,
"ship_to_home_available": true
},
{
"sku": "916273",
"name": "Duralast Ceramic Brake Pads D1805",
"brand": "Duralast",
"category": "Brake Pads",
"currency": "USD",
"location": "Rear",
"image_url": "https://contentassets.autozone.com/product_image/USA/1684/CFHH/D1805/D1805-01.jpg",
"sub_brand": "Duralast",
"attributes": {
"Type": "Disc Brake Pad Set",
"Pad Type": "Ceramic",
"Mounting Hardware Included": "No"
},
"core_price": null,
"part_number": "D1805",
"product_url": "https://www.autozone.com/p/duralast-disc-brake-pad-set-d1805/916273",
"total_price": 32.99,
"vehicle_fit": "NEEDS_MORE_INFO",
"retail_price": 32.99,
"pickup_quantity": 1,
"pickup_available": true,
"ship_to_home_quantity": 2,
"ship_to_home_available": true
}
],
"store_id": "5433",
"total_results": 48,
"corrected_term": null
},
"status": "success"
}
}About the AutoZone API
What the API Returns
The search_products endpoint accepts a required query string (part keyword or part number) and returns an array of product objects. Each product includes sku, name, brand, sub_brand, part_number, retail_price, total_price, and core_price (all in USD or null). The response also surfaces total_results, per_page, has_more for pagination, and a corrected_term field when AutoZone applies a spelling correction to the input keyword.
Vehicle and Store Filtering
Passing year, make, and model together narrows results to parts that fit the specified vehicle. The optional engine parameter refines this further when a model has multiple engine variants. The resolved vehicle is echoed back in the vehicle object (including make_id and model_id). Separately, supplying a zip_code routes pricing and availability through the nearest AutoZone location; the resolved store's address, city, state, and phone number are returned in the store object alongside its store_id.
Pagination
The page parameter is 1-based and works with limit (1–48; values above 48 are clamped). Use has_more to detect whether additional pages exist rather than computing from total_results alone, since AutoZone's count can include results that don't materialize on later pages.
The AutoZone API is a managed, monitored endpoint for autozone.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when autozone.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 autozone.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a vehicle-specific parts finder that shows local pickup availability by ZIP code using
year,make,model, andzip_code. - Track retail price changes for specific part numbers across AutoZone by polling
search_productswith a part number as thequery. - Compare
core_priceandretail_priceacross brake, battery, and alternator categories to surface total cost of ownership. - Populate an automotive repair cost estimator with real OEM-compatible part prices from
total_pricefields. - Identify which brands (
brand,sub_brand) AutoZone stocks for a given part category scoped to a specific engine variant. - Verify in-store availability for a parts run by resolving a store via
zip_codebefore dispatching a field technician.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does AutoZone have an official developer API?+
What does the `store` object actually contain, and when is it null?+
zip_code, the response includes a store object with store_id, address, city, state, zip, and phone for the nearest AutoZone location. Pricing and availability in that response reflect that specific store. If zip_code is omitted, store is null and AutoZone's default store is used instead — its identity is not exposed in that case.Can I retrieve product reviews or ratings through this API?+
search_products. Customer reviews and star ratings are not included in the response fields. You can fork this API on Parse and revise it to add a reviews endpoint.Are there limits on how many results I can retrieve per request?+
limit parameter accepts values from 1 to 48; anything above 48 is clamped to 48. Use the page parameter to paginate through additional results, and check has_more to determine whether another page exists. total_results reflects AutoZone's reported count but may not always match the number of pages that are actually retrievable.Does the API cover AutoZone stores outside the United States?+
zip_code parameter accepts 5-digit US ZIP codes only, so store-level availability is scoped to US locations. AutoZone operates stores in Mexico and Brazil, but those markets are not currently covered. You can fork this API on Parse and revise it to target non-US AutoZone storefronts.