AutoZone API: Search parts for a vehicle
Finds AutoZone parts listed for a vehicle (year, make, model, optional engine), with prices, warranties and fit notes. Listings are filtered by year, make and model; engine fit often needs further confirmation.
Unofficial. Not affiliated with or endorsed by AutoZone.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Make, required
make Vehicle make, for example Toyota.
Toyota
- Part, required
part Part to find, for example brake pads.
brake pads
- Year, required
year Vehicle model year, for example 2018.
2018
Whole number.
- Model, required
model Vehicle model, for example Camry.
Camry
- Engine optional
engine Engine to use, for example 2.5L 4-cylinder. Defaults to the first listed engine.
Not set
- Max Results optional
max_results Maximum parts to return, for example 20.
20 (default)
Whole number from 1 to 50.
Input as JSON
{ "make": "Toyota", "part": "brake pads", "year": 2018, "model": "Camry"}Output
{ "parts": [ { "brand": "Duralast", "price": 36.99, "currency": "USD", "warranty": "Limited-Lifetime Warranty", "fit_notes": "Fit not confirmed: AutoZone asks for a more specific vehicle configuration.", "part_name": "Duralast Ceramic Brake Pads D2076", "image_link": "https://contentassets.autozone.com/product_image/USA/1684/CFHH/D2076/D2076-01.jpg" , "part_number": "D2076", "fits_vehicle": null, "product_link": "https://www.autozone.com/p/duralast-disc-brake-pad-set-d2076/1115997" , "store_availability": null }, { "brand": "Duralast", "price": 54.99, "currency": "USD", "warranty": "Limited-Lifetime Warranty", "fit_notes": "Fit not confirmed: AutoZone asks for a more specific vehicle configuration.", "part_name": "Duralast Ceramic Brake Pads D1212", "image_link": "https://contentassets.autozone.com/product_image/USA/1684/CFHH/D1212/D1212-01.jpg" , "part_number": "D1212", "fits_vehicle": null, "product_link": "https://www.autozone.com/p/duralast-disc-brake-pad-set-d1212/905934" , "store_availability": null }, { "brand": "Duralast", "price": 29.99, "currency": "USD", "warranty": "Limited-Lifetime Warranty", "fit_notes": "Fit not confirmed: AutoZone asks for a more specific vehicle configuration.", "part_name": "Duralast Ceramic Brake Pads D1879", "image_link": "https://contentassets.autozone.com/product_image/USA/1684/CFHH/D1879/D1879-01.jpg" , "part_number": "D1879", "fits_vehicle": null, "product_link": "https://www.autozone.com/p/duralast-disc-brake-pad-set-d1879/915984" , "store_availability": null } ], "vehicle": { "make": "Toyota", "year": 2018, "model": "Camry", "engine": "4 Cylinders 2.5L FULL HYBRID EV-GAS (FHEV)" }}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"autozone.com/search_parts","input":{"make":"Toyota","part":"brake pads","year":2018,"model":"Camry"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "autozone.com/search_parts" , "input": { "make": "Toyota", "part": "brake pads", "year": 2018, "model": "Camry" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "autozone.com/search_parts" , "input": { "make": "Toyota", "part": "brake pads", "year": 2018, "model": "Camry" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run autozone.com/search_parts# with {"make":"Toyota","part":"brake pads","year":2018,"model":"Camry"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "part", "year", "make", "model" ], "properties": { "make": { "type": "string", "description": "Vehicle make, for example Toyota." }, "part": { "type": "string", "description": "Part to find, for example brake pads." }, "year": { "type": "integer", "description": "Vehicle model year, for example 2018." }, "model": { "type": "string", "description": "Vehicle model, for example Camry." }, "engine": { "type": "string", "description": "Engine to use, for example 2.5L 4-cylinder. Defaults to the first listed engine." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum parts to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "vehicle", "parts" ], "properties": { "parts": { "type": "array", "items": { "type": "object", "required": [ "part_name", "brand", "part_number", "price", "currency", "warranty", "fits_vehicle", "fit_notes", "store_availability", "image_link", "product_link" ], "properties": { "brand": { "type": [ "string", "null" ] }, "price": { "type": [ "number", "null" ] }, "currency": { "type": "string" }, "warranty": { "type": [ "string", "null" ] }, "fit_notes": { "type": [ "string", "null" ] }, "part_name": { "type": [ "string", "null" ] }, "image_link": { "type": [ "string", "null" ] }, "part_number": { "type": [ "string", "null" ] }, "fits_vehicle": { "type": [ "boolean", "null" ] }, "product_link": { "type": [ "string", "null" ] }, "store_availability": { "type": [ "string", "null" ] } } } }, "vehicle": { "type": "object", "required": [ "year", "make", "model", "engine" ], "properties": { "make": { "type": "string" }, "year": { "type": "integer" }, "model": { "type": "string" }, "engine": { "type": "string" } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
autozone.com/search_parts- Returns
- vehicle; parts with name, brand, part number, price, warranty, fit status and notes, image and product links
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method autozone.com/search_parts with the inputs above.
Ask your agent
- Find brake pads for a 2018 Toyota Camry on AutoZone, with prices and warranty info
- What alternators fit a 2012 Honda Accord with the 3.5L V6? Show part numbers and brands.
- I need a new battery for my 2015 Ford F-150 5.0L V8 — list options with prices and whether they're confirmed to fit
- Show me up to 10 spark plug options for a 2009 Chevy Silverado 1500 from autozone.com
- Looking for front struts for a 2020 Subaru Outback 2.5L, include warranty and any fitment notes
See more
All AutoZone methodsFinds the AutoZone stores nearest a US ZIP code, city or street address, with contact details, opening hours, whether each is open now, distance and store page links.
autozone.com/search_storesFinds RockAuto parts for a vehicle (year, make, model, optional engine) and part category, sorted by listed price. Prices are in USD and exclude shipping and taxes. When no engine is given, uses the first engine in the catalogue.
rockauto.com/search_partsSearches Autotrader car listings near a US ZIP code by make and model, with condition, price, year and distance filters. Returns up to 100 listings in site order.
autotrader.com/search_carsSearches CARFAX used-car listings for a make and model near a US ZIP code, in CARFAX order, with listing details and free vehicle-history highlights. Paid full history reports are not included.
carfax.com/search_carsSearches CarMax used cars by make and model with optional ZIP, distance, year, price and mileage filters, keeping CarMax's order. Pages expose only the first 48 cars; distance is CarMax's distance from the selected local store, and larger limits or narrow distance filters may return fewer matches.
carmax.com/search_carsSearches Cars.com car listings for a make and model around a US ZIP code within a radius, optionally by condition (new, used or certified pre-owned) and maximum price, in Cars.com search order.
cars.com/search_carsSearches Carvana's used-car inventory by make and model, with optional price, year, mileage and ZIP filters, and returns each car's price, estimated monthly payment, mileage and delivery or pickup estimate for the ZIP.
carvana.com/search_carsSearches new and used cars for sale near a US ZIP code for a make and model, with prices, dealer details and CarGurus deal ratings. Used cars come first, then new cars, each in CarGurus order; market difference is positive below market and negative above.
cargurus.com/search_cars