The Home Depot logo

Online shops · Coming soon

Home Depot Scraper: Products, Prices and Store Stock

Get Home Depot products with price, previous price, discount and delivery dates. For your store you also get stock, aisle and bay. You can add reviews, questions and store locations.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

typeproduct
itemId317987598
titleONE+ 18V Cordless 1/2 in. Drill/Driver Kit with (1) Compact Battery…

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: cordless drill in Search terms. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Good for

  • You sell or resell products and want to watch Home Depot prices and clearance items.
  • You want to know which nearby store has a product, how many units it has and where the product is in the store.
  • You want reviews or customer questions for a list of products.
  • You want a list of Home Depot stores near a ZIP code, with phone and hours.
  • You run the same check every day and want only the products that changed.

Who uses it

Online sellers

Watch Home Depot prices and clearance items.

Local buyers

Find which nearby store has a product and where it sits.

Analysts

Compare one product across many stores.

Price

Prices will be shown after release.

Questions

Do I need a Home Depot account or API key?

No. The tool reads public pages of homedepot.com with no login.

Which Home Depot sites does it cover?

Only homedepot.com in the US. No Canada or Mexico.

Is the stock live?

It is what the site showed at the time in fetchedAt, for one store.

Which store does the price come from?

From storeId. If it is empty, the Actor uses the store nearest to zipCode. With no ZIP code, it uses store 121. Each row shows the store it used.

What does an empty run cost?

The start fee and one page-scan for each source check. A ZIP code with no stores costs only the start fee. See the Pricing section for real amounts.

How do I get stock for one product across stores?

Add the item ID to productUrls, your zipCode and a nearbyStores value. Read quantity, aisle and bay in storeAvailability.

Does the Actor return every product and every review?

It returns what the source shows, up to your limits. A very large listing can end early with stopReason: PAGE_LIMIT. A review can belong to a sibling variant, and reviewedItemId shows which one.

How fresh is the data?

The Actor reads the source during the run. fetchedAt shows the time. Prices and stock can change after that.

Is a null stock value the same as zero?

No. quantity: 0 means the store has none. null means the source did not say.

Details

Step by step on Apify
  1. Open the Input tab. Keep Search and category results in Data to collect (box 1 in the picture).
  2. Keep cordless drill in Search terms or type your own (box 2).
  3. Keep 10 in Maximum products for a first run (box 3).
  4. Click Start (box 4).
  5. Open the Output tab and choose the Products view. Check price and wasPrice (box 5).
  6. Click Export to get JSON, CSV or Excel (box 6).
Use cases
TaskInputYou getKey fieldsNext step
Watch prices and discountssearchQueries or categoryUrls, with onlyOnSale if you wantProductprice, wasPrice, percentOff, isClearanceGoogle Sheets or a price database
Check stock in your storesproductUrls, storeId, zipCode, nearbyStoresProductstoreAvailability, availability, deliveryStock alert in Slack
Report only what changedsearchQueries or productUrls, onlyChanges, monitorNameProductchange, price, storeAvailabilityDaily schedule and a webhook
Read customer opinionsmode: reviews or mode: questions, productUrlsReview, questionrating, text, question, answersSentiment or support analysis
Build a store listmode: stores, zipCodeStorestoreId, name, phone, hoursCRM or a map
Tips for better results
  • Start with 10 products and the Products view.
  • Add a store ID or ZIP code to get stock, aisle and bay.
  • Turn on change tracking and run daily to get only the products that changed.
Limits and good to know
  • Source: only homedepot.com in the US. No Canada or Mexico sites, no account data, no orders
  • Size: up to 5000 products in one run and 1000 values in each list. Up to 2000 reviews or questions per product
  • Stores: up to 30 rows in stores mode, 29 nearby stores and 50 extraStoreIds
  • Time: the default timeout is 300 seconds. Real runs took about 10 seconds for 10 products, 1 to 2.5 minutes for 500 products, and about 3.5 minutes for 2000 products. Two runs of 5000 products took about 10 and 14 minutes. At the slowest speed we saw, 5000 products would take about 17 minutes. Speed depends on the source. For a run over 1000 products, set the timeout to 900 seconds. For 5000 products, set 1500 seconds. Item IDs are slower: 100 IDs with details took about 3 minutes, so 1000 IDs would take about 30 minutes. For a long ID list, set a timeout of 1200 seconds and send up to 500 IDs per run. The timeout must be more than 40 seconds, because the Actor keeps 40 seconds to save its data
  • Deep listings: the Actor can stop before the end of a very large listing. It then saves what it has and sets stopReason: PAGE_LIMIT. A single run reads up to 20000 pages or 512 MB
  • Large pages: a source page over 4 MB is skipped. You get a free error row, and the rest of the run goes on
  • Slow source: if no page answers for 90 seconds, the run stops with stopReason: DEADLINE. Rows saved earlier stay

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "type": "product",
  "itemId": "317987598",
  "title": "ONE+ 18V Cordless 1/2 in. Drill/Driver Kit with (1) Compact Battery and Charger",
  "brand": "RYOBI",
  "model": "PCL206K1",
  "storeId": "121",
  "zipCode": null,
  "price": 59,
  "wasPrice": 89,
  "currency": "USD",
  "percentOff": 34,
  "isClearance": false,
  "clearancePrice": null,
  "rating": 4.6722,
  "reviewsCount": 4311,
  "availability": "in_stock",
  "onlineQuantity": 2245,
  "storeAvailability": [
    {
      "storeId": "121",
      "storeName": "Cumberland",
      "state": "GA",
      "price": 59,
      "quantity": 84,
      "inStock": true,
      "pickupAvailable": true,
      "aisle": "11",
      "bay": "EC1",
      "locationText": "Aisle 11 - Endcap"
    }
  ],
  "category": "Power Drills",
  "query": "cordless drill",
  "position": 3,
  "url": "https://www.homedepot.com/p/RYOBI-ONE-18V-Cordless-1-2-in-Drill-Driver-Kit-with-1-Compact-Battery-and-Charger-PCL206K1/317987598",
  "source": "homedepot.com"
}
Data fields (40)
FieldTypeMeaning
typestringRow kind: product, review, question, store or status.
itemIdstringHome Depot item ID.
titlestringProduct title or review title.
brandstringBrand name.
modelstringModel number.
storeSkustringStore SKU number.
upcstringUPC or GTIN barcode.
parentIdstringParent product ID that groups variants.
storeIdstringStore number used for this row.
zipCodestringZIP code from the input.
pricenumberCurrent price in the chosen store. Null when the source hides or omits it.
wasPricenumberPrevious price. Null when there is no discount.
currencystringPrice currency.
unitOfMeasurestringUnit the price applies to, for example each.
dollarOffnumberDiscount in dollars.
percentOffnumberDiscount in percent.
savingsCenterstringHome Depot savings label.
isSpecialBuybooleanTrue for a Special Buy.
isClearancebooleanTrue for a clearance product.
clearancePricenumberClearance price in the chosen store. Null when this store has none.
bulkPricenumberPrice per unit when buying in bulk.
bulkQuantitynumberQuantity needed for the bulk price.
unitPricenumberAlternate price per unit.
unitsPerCasenumberUnits in one case.
ratingnumberAverage rating, or the rating of this review.
reviewsCountnumberNumber of reviews.
reviewStatsobjectRating distribution and recommendation counts.
availabilitystringin_stock, limited_stock, out_of_stock, backordered or discontinued. Null when the source did not say.
discontinuedbooleanTrue when the product is discontinued.
backorderedbooleanTrue when the product is backordered.
onlineQuantitynumberUnits available for shipping.
storeAvailabilityarrayPrice, quantity, aisle and bay per store.
deliveryobjectDelivery availability, charge and dates.
imagesarrayImage links.
videosarrayVideo titles and links.
documentsarrayManuals and guides. Filled by product details.
descriptionstringProduct description. Filled by product details.
highlightsarrayShort product highlights.
specificationsarraySpecification groups, names and values. Filled by product details.
keyFeaturesarrayKey product features.
Input settings (25)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Data to collectmodestring"search"
Search termssearchQueriesarray["cordless drill"]
Category linkscategoryUrlsarray
Product links or item IDsproductUrlsarray
Store numberstoreIdstring
ZIP codezipCodestring
Nearby stores to comparenearbyStoresinteger0
Store radius in milesradiusMilesnumber
More stores to compareextraStoreIdsarray
Sort results bysortBystring"best_match"
Only products sold in this storeinStoreOnlybooleanfalse
Only products in stockonlyInStockbooleanfalse
Only products on saleonlyOnSalebooleanfalse
Only clearance productsonlyClearancebooleanfalse
Minimum priceminPricenumber
Maximum pricemaxPricenumber
Minimum discount percentminDiscountPercentnumber
Maximum productsmaxItemsinteger10
Maximum products per searchmaxItemsPerQueryinteger
Add full product detailsincludeDetailsbooleanfalse
Add customer reviewsincludeReviewsbooleanfalse
Maximum reviews per productmaxReviewsinteger20
Sort reviews byreviewsSortstring"newest"
Only these star ratingsreviewStarsarray
Only verified purchasesverifiedOnlybooleanfalse

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure