homedepot.com APIhomedepot.com ↗
Access Home Depot product search, pricing, availability, fulfillment options, and store details via 5 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/b3317837-d71f-4e52-af50-9d93fb84f2eb/search_products?limit=5&query=drill&page_size=3' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword on Home Depot. Returns a list of products with identifiers, media, and pricing. Results are limited to the first page (up to 24 by default).
| 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 |
{
"type": "object",
"fields": {
"products": "array of product objects with itemId, identifiers, media, and pricing",
"searchReport": "object with totalProducts count and keyword"
},
"sample": {
"data": {
"products": [
{
"media": {
"images": [
{
"url": "https://images.thdstatic.com/productImages/8c8e6b8d-5ee9-4577-9eab-4eada4a40444/svn/dewalt-power-drills-dcd771c2-64_<SIZE>.jpg",
"sizes": [
"65",
"100",
"145",
"300",
"400",
"600",
"1000"
]
}
]
},
"itemId": "204279858",
"pricing": {
"value": 129,
"original": 179
},
"identifiers": {
"brandName": "DEWALT",
"modelNumber": "DCD771C2",
"canonicalUrl": "/p/DEWALT-20V-MAX-Cordless-1-2-in-Drill-Driver-2-20V-1-3Ah-Batteries-Charger-and-Bag-DCD771C2/204279858",
"productLabel": "20V MAX Cordless 1/2 in. Drill/Driver, (2) 20V 1.3Ah Batteries, Charger and Bag"
}
}
],
"searchReport": {
"keyword": "drill",
"totalProducts": 7377
}
},
"status": "success"
}
}About the homedepot.com API
The Home Depot API exposes 5 endpoints covering product search, detailed product data, store lookup, and fulfillment availability. Starting with search_products, you can query the Home Depot catalog by keyword and retrieve up to 24 results per call including item IDs, pricing, and media. Dedicated endpoints then let you drill into individual product details, check in-store and delivery availability, and locate stores by ZIP code or store ID.
Product Search and Details
The search_products endpoint accepts a query string (e.g. 'drill' or 'power tools') and an optional store_id for localized pricing. It returns an array of product objects — each with itemId, identifiers, media, and pricing — alongside a searchReport object containing totalProducts and the matched keyword. Results are capped at the first page (up to 24 items); the optional limit parameter trims that set client-side but does not paginate deeper.
For a specific item, get_product_details takes an item_id (the product's internet number, e.g. '204279858') and returns a richer payload: a details object with description and a highlights array, a pricing object including value, original, alternatePriceDisplay, and specialBuy flags, identifiers with canonicalUrl, brandName, modelNumber, and storeSkuNumber, and an availabilityType object indicating the fulfillment category. Passing store_id adjusts pricing to a specific location.
Availability and Fulfillment
get_product_availability accepts an item_id and optional store_id and returns structured fulfillment data: the availability object distinguishes between pickup and delivery options and lists their respective service configurations. The pricing object here includes both current value and original price, making it useful for change-detection workflows without re-fetching full product details.
Store Lookup
Two endpoints cover store data. find_stores resolves a 5-digit US ZIP code to the nearest Home Depot location, returning a localStore object with storeId, name, coordinates, phone, address, storeHours, and a services list. get_store_details takes a known store_id directly and returns the same structure, which is useful when you already have a store ID from a product or availability response and want to present full location information.
- Track price changes on specific Home Depot products using
get_product_detailspricing fields over time - Build a store locator feature by resolving user ZIP codes via
find_storesand displaying hours and services - Compare in-store pickup vs. delivery availability for a product across multiple stores using
get_product_availability - Aggregate product catalog data by keyword using
search_productsto analyze category coverage or SKU counts - Display localized pricing for regional e-commerce tools by passing
store_idtoget_product_details - Validate model numbers and canonical URLs for products by extracting
identifiersfromget_product_details - Surface special-buy flags and alternate price displays for deal-tracking applications using the
pricingresponse fields
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 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.
Does Home Depot have an official developer API?+
What does `get_product_availability` return beyond a simple in-stock flag?+
availability object that breaks down fulfillment into distinct types — pickup and delivery — each with their own service options. The response also includes current and original pricing, so you can detect discounts at the same time as checking stock status.Does `search_products` support pagination beyond the first page of results?+
searchReport field provides a totalProducts count so you can see how many results exist, but fetching subsequent pages is not currently supported. You can fork this API on Parse and revise it to add an offset or page parameter to cover additional result pages.Does the API return customer reviews or ratings for products?+
get_product_details endpoint covers descriptions, highlights, pricing, and availability type, but does not include review counts or star ratings. You can fork this API on Parse and revise it to add a reviews endpoint for that data.What is the `store_id` parameter and how do I get one?+
store_id is a numeric string identifier for a specific Home Depot location (e.g. '6932'). You can obtain it by calling find_stores with a ZIP code — the localStore.storeId field in that response can then be passed to search_products, get_product_details, or get_product_availability to return location-specific pricing and availability.