Advance Auto Parts APIshop.advanceautoparts.com ↗
Search the Advance Auto Parts retail catalog by part term or number. Get pricing, availability, ratings, and store pickup data scoped to a vehicle and ZIP code.
What is the Advance Auto Parts API?
The Advance Auto Parts API exposes one endpoint — search_products — that queries the public retail catalog and returns up to 14 fields per product record, including title, brand, part number, regular and sale price in USD, product URL, image URL, star rating, and both ship-to-home and in-store pickup availability. Searches can be scoped to a specific vehicle by year, make, model, and engine, and store-level availability can be resolved to the nearest location by ZIP code.
curl -X GET 'https://api.parse.bot/scraper/7713f28e-da2e-4ad6-b220-6566b8f4e75c/search_products?make=Honda&year=2020&model=Accord+EX&query=brake+pads&zip_code=84601' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches the public retail catalog for a part term and returns one page of product records (title, brand, part number, regular and sale retail price in USD, product URL, image URL, rating, and availability). When year, make and model are all supplied the search is scoped to that vehicle and only exact-fit parts are returned; engine is required only when the site lists more than one engine for the model (the error message lists the choices), and a partial engine string such as '5.0L' is accepted when it identifies exactly one engine. Model names follow the site's own naming and include the trim (e.g. 'F-150 XLT'); an unknown model returns a 422 listing matching site model names. When zip_code is supplied, the retail store nearest that ZIP is located and each product carries store_availability (status such as InStock or NotAtStore, plus quantity) for that store; without zip_code store is null and store_availability is null on every product. ship_to_home_availability is always reported. Some search terms are answered by the site with a category landing page; in that case the category's products are returned and matched_category_id / category_name are set. Anonymous retail pricing only; no account pricing. Paginated by page (default 1) and limit (default 20, maximum 100, page size); total_results is the site's total for the query and has_more indicates whether a further page exists. Each call makes several requests (site bootstrap, vehicle lookup, search, availability, store lookup). A term with no matches returns an empty products array with total_results 0.
| Param | Type | Description |
|---|---|---|
| make | string | Vehicle make as named on the site, e.g. 'Honda'. Must be supplied together with year and model. |
| page | integer | 1-based page number over the result set. |
| year | string | 4-digit vehicle model year. Must be supplied together with make and model. |
| limit | integer | Number of products per page; values above 100 are clamped to 100. |
| model | string | Vehicle model including trim as named on the site, e.g. 'Accord EX'. Must be supplied together with year and make. |
| queryrequired | string | Part search term or part number, e.g. 'brake pads' or 'NAD1654'. |
| engine | string | Engine description or a distinguishing fragment of it (e.g. '5.0L'). Only needed when the site lists several engines for the vehicle; omitted when the model has a single engine. |
| zip_code | string | 5-digit US ZIP code. When present, in-store availability is reported for the nearest retail store. |
{
"type": "object",
"fields": {
"page": "page number returned",
"limit": "page size applied after clamping",
"query": "the search term as used",
"store": "nearest retail store for zip_code (store_id, name, address, city, state, zip, phone, distance_meters) or null",
"vehicle": "resolved vehicle (year, make, model, engine, vehicle_id) or null when no vehicle was supplied",
"has_more": "true when a further page exists",
"products": "array of product records",
"category_name": "name of the matched category, or null",
"total_results": "site total number of products for the query (and vehicle)",
"products[].brand": "manufacturer / brand name",
"products[].title": "product name",
"products[].on_sale": "boolean sale flag",
"matched_category_id": "site category id the term was redirected to, or null for a direct term match",
"products[].category": "top-level site category",
"products[].currency": "ISO currency code, USD",
"products[].image_url": "primary product image URL",
"products[].product_id": "site product identifier (string)",
"products[].sale_price": "current selling price (number, USD); equals regular_price when not on sale",
"products[].core_charge": "refundable core charge added at purchase (number, USD)",
"products[].part_number": "manufacturer part number / SKU",
"products[].product_url": "public product page URL",
"products[].regular_price": "regular retail price (number, USD)",
"products[].reviews_count": "number of reviews",
"products[].average_rating": "average review score (number)",
"products[].fitment_status": "'Exact Fit' when a vehicle was supplied; null without a vehicle",
"products[].store_availability": "object {status, quantity} at the located store, or null when zip_code was not supplied",
"products[].ship_to_home_eligible": "whether the product can be shipped",
"products[].store_pickup_eligible": "whether the product can be picked up in store",
"products[].ship_to_home_availability": "object {available, available_quantity} for home shipping"
},
"sample": {
"data": {
"page": 1,
"limit": 5,
"query": "brake pads",
"store": {
"zip": "62704",
"city": "Springfield",
"name": "Advance Auto Parts",
"phone": "+1 (555) 012-3456",
"state": "IL",
"address": "123 Main St",
"store_id": "4197",
"distance_meters": 899
},
"vehicle": {
"make": "Honda",
"year": "2020",
"model": "Accord EX",
"engine": "1.5L 1497CC L4 FI Turbo VIN: L15BE",
"vehicle_id": "2239800"
},
"has_more": true,
"products": [
{
"brand": "Carquest Standard",
"title": "Front Brake Pads: Ceramic, Long Life and Quiet - Front",
"on_sale": false,
"category": "Braking",
"currency": "USD",
"image_url": "https://shop.advanceautoparts.com/wcsstore/CVWEB/staticproductimage/219/full/11140404_wea_nad1654_pri_detl.jpg",
"product_id": "11140404",
"sale_price": 52.99,
"core_charge": 0,
"part_number": "NAD1654",
"product_url": "https://shop.advanceautoparts.com/p/carquest-standard-front-brake-pads-ceramic-long-life-and-quiet-front-nad1654/11140404-P",
"regular_price": 52.99,
"reviews_count": 23,
"average_rating": 4.4,
"fitment_status": "Exact Fit",
"store_availability": {
"status": "NotAtStore",
"quantity": 0
},
"ship_to_home_eligible": true,
"store_pickup_eligible": true,
"ship_to_home_availability": {
"available": true,
"available_quantity": 571
}
}
],
"category_name": "Brake Pads and Shoes",
"total_results": 18,
"matched_category_id": "81637"
},
"status": "success"
}
}About the Advance Auto Parts API
What the API Returns
The search_products endpoint accepts a query string — a part name like 'brake pads' or a part number like 'NAD1654' — and returns a paginated list of matching products from the Advance Auto Parts retail catalog. Each product record includes brand, title, part_number, regular_price, sale_price, product_url, image_url, rating, and availability flags. The response also surfaces total_results, has_more, page, and limit for pagination control. The limit parameter accepts values up to 100; anything higher is clamped to 100.
Vehicle Fitment Filtering
When year, make, and model are all provided together, the search is scoped to that specific vehicle. The engine parameter is optional and only needed when a vehicle has multiple engine configurations listed on the site (e.g. '5.0L'). The resolved vehicle context is returned in the vehicle field, which includes year, make, model, engine, and an internal vehicle_id. If no vehicle is supplied, the vehicle field returns null and the search runs against the full catalog.
Store Availability
Passing a zip_code triggers a nearest-store lookup. The store field in the response includes store_id, name, address, city, state, zip, phone, and distance_meters. In-store pickup availability is then reported at the product level alongside ship-to-home availability. Without a zip_code, the store field returns null and only ship-to-home availability is included in product records.
Pagination
Results are paged using the page (1-based) and limit parameters. The has_more boolean indicates whether additional pages exist for the current query and vehicle combination. The category_name field returns the matched category name from the site's taxonomy, or null if no specific category was matched.
The Advance Auto Parts API is a managed, monitored endpoint for shop.advanceautoparts.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when shop.advanceautoparts.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 shop.advanceautoparts.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?+
- Building a parts price comparison tool that tracks regular vs. sale price changes for specific part numbers over time
- Displaying fitment-verified parts in a vehicle maintenance app using year/make/model/engine filtering
- Checking in-store pickup availability at the nearest Advance Auto Parts location for a given ZIP code
- Aggregating brand and part number data to cross-reference against other retailer catalogs
- Surfacing product image URLs and ratings to populate a parts recommendation widget in an automotive app
- Monitoring total_results counts for specific part queries to gauge catalog depth for a given vehicle
- Automating part number lookups by querying known OEM part numbers directly against the retail catalog
| 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 Advance Auto Parts offer an official developer API?+
What does the vehicle filtering actually do to the results?+
year, make, and model together, the search_products endpoint scopes results to parts confirmed to fit that vehicle. The resolved vehicle context — including year, make, model, engine, and vehicle_id — is returned in the vehicle field. If you omit any of the three required vehicle parameters, the search runs against the full catalog and vehicle returns null.Does the API return customer review text or review counts?+
rating (star score), but individual review text and review counts are not returned by the search_products endpoint. You can fork this API on Parse and revise it to add an endpoint that fetches per-product review details.Is coverage limited to the US?+
zip_code parameter expects a 5-digit US ZIP code. No international store or pricing data is available through this endpoint.