Home Depot APIhomedepot.com ↗
Search Home Depot products, check in-store pickup availability, get pricing, and find store hours and services via a structured JSON API.
What is the Home Depot API?
The Home Depot API covers 6 endpoints for searching products, retrieving detailed item data, checking real-time in-store pickup availability, and locating stores. The search_products endpoint returns itemId, pricing, and pickup status for each result when a store_id is supplied, while get_product_availability breaks out quantity on hand, pickup status, and whether an item is discontinued or buyable.
curl -X GET 'https://api.parse.bot/scraper/b3317837-d71f-4e52-af50-9d93fb84f2eb/search_products?limit=5&query=drill&store_id=6932' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword on Home Depot. Returns a list of products with identifiers, media, pricing, and in-store pickup availability. When store_id is provided, each product includes pickup data (quantity available and status). Results are limited to the first page (up to 24 by default). Each product with a store_id triggers a separate fulfillment lookup, so response time scales with the number of returned products.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max products to return (applied client-side to trim results) |
| queryrequired | string | Search term (e.g. 'drill', 'hammer', 'power tools') |
| store_id | string | Store ID for local pricing and in-store pickup availability |
{
"type": "object",
"fields": {
"products": "array of product objects with itemId, identifiers, media, pricing, and pickup availability",
"searchReport": "object with totalProducts count and keyword"
},
"sample": {
"data": {
"products": [
{
"media": {
"images": [
{
"url": "https://images.thdstatic.com/productImages/4bc923ed-c482-4f8a-85d1-3b46eca358ea/svn/ryobi-power-drills-pcl201k1-64_<SIZE>.jpg",
"sizes": [
"65",
"100",
"145",
"300",
"400",
"600",
"1000"
]
}
]
},
"itemId": "326680222",
"pricing": {
"value": 49.97,
"original": 49.97
},
"identifiers": {
"brandName": "RYOBI",
"modelNumber": "PCL201K1",
"canonicalUrl": "/p/RYOBI-ONE-18V-Cordless-3-8-in-Drill-Driver-Kit-with-Compact-Battery-and-Charger-PCL201K1/326680222",
"productLabel": "ONE+ 18V Cordless 3/8 in. Drill/Driver Kit with Compact Battery and Charger"
}
}
],
"searchReport": {
"keyword": "drill",
"totalProducts": 4787
}
},
"status": "success"
}
}About the Home Depot API
Product Search and Top Sellers
The search_products endpoint accepts a query string and an optional store_id. When store_id is provided, each product in the products array includes pickup quantity and status alongside standard fields like itemId, media, and pricing. The searchReport object returns the matched keyword and totalProducts count. The get_top_sellers endpoint mirrors this structure but sorts results by Home Depot's sales rank, adding reviews, badges (including Best Seller status), categoryHierarchy, and bulk pricing fields to each product object.
Product Details and Availability
get_product_details accepts an item_id and returns a details object with description and a highlights array, a pricing object covering value, original, alternatePriceDisplay, and specialBuy, plus identifiers fields like brandName, modelNumber, storeSkuNumber, and canonicalUrl. The availabilityType field indicates the product's fulfillment category. For availability-focused queries, get_product_availability returns a focused payload: a pickup object with quantity, status (values such as Pickup, Limited Stock, or Out of Stock), and storeId, alongside an availability object with type, discontinued, and buyable booleans.
Store Lookup
Two endpoints handle store data. find_stores takes a 5-digit US zip_code and returns the nearest store's storeId, name, coordinates, phone, address, storeHours, and services. get_store_details accepts a store_id directly and returns the same localStore shape, making it straightforward to resolve a store ID obtained from a product search into full location and hours data.
The Home Depot API is a managed, monitored endpoint for homedepot.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when homedepot.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 homedepot.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?+
- Compare prices across Home Depot product categories by running multiple
search_productsqueries and collecting thepricing.valuefield from each result. - Check real-time in-store pickup inventory for a specific SKU using
get_product_availabilitywith astore_idto surfacepickup.quantityandpickup.status. - Build a store locator feature by passing user ZIP codes to
find_storesand displaying the returnedstoreHoursandservices. - Identify best-selling products in a category with
get_top_sellersand filter by thebadgesfield to find items flagged as Best Sellers. - Pull full product specs for price-tracking or catalog tools using
get_product_detailsto retrievemodelNumber,brandName, andhighlights. - Resolve a store ID to its address and hours using
get_store_detailsafter capturing astoreIdfrom a product search result.
| 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 Home Depot have an official developer API?+
What does `get_product_availability` return beyond a simple in-stock flag?+
pickup object with an integer quantity, a human-readable status string (such as 'Pickup', 'Limited Stock', or 'Out of Stock'), and the storeId checked. It also includes an availability object with discontinued and buyable boolean fields, so you can distinguish items that exist but are no longer orderable from those that are simply out of stock locally.Does search_products return results beyond the first page?+
search_products and get_top_sellers both return results from the first page only. The limit parameter trims the result set client-side but does not retrieve additional pages. Deep pagination across multiple result pages is not currently supported. You can fork this API on Parse and revise it to add offset or page parameters to retrieve additional pages.Are customer reviews accessible through these endpoints?+
get_top_sellers includes a reviews field per product with aggregate rating information. However, individual review text, reviewer profiles, and review-level metadata are not exposed by any endpoint. You can fork this API on Parse and revise it to add a dedicated reviews endpoint that returns per-review content.Does the API cover delivery availability in addition to in-store pickup?+
availabilityType field in get_product_details and get_product_availability indicates the product's general fulfillment category, but granular delivery windows, ship-to-home eligibility, and delivery ZIP coverage are not broken out as discrete fields. You can fork this API on Parse and revise it to surface delivery-specific fulfillment data.