Home Depot Scraper: Prices, Products, Stock & Special Buys avatar

Home Depot Scraper: Prices, Products, Stock & Special Buys

Pricing

from $4.00 / 1,000 products

Go to Apify Store
Home Depot Scraper: Prices, Products, Stock & Special Buys

Home Depot Scraper: Prices, Products, Stock & Special Buys

Get Home Depot products with the price at your store, was price, Special Buy and savings, stock count at that store, aisle and bay, delivery options, model, internet number, brand, rating and reviews. By search, category or product link and ZIP. About $0.005 per product. No login.

Pricing

from $4.00 / 1,000 products

Rating

0.0

(0)

Developer

mogged

mogged

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

For retail price analysts, contractors, brands and comparison services monitoring Home Depot products at specific US stores. Get current store prices, was prices, Special Buys, promotion dates, shelf stock, aisle and bay, model numbers, store SKUs and UPCs in one dataset.

About $0.005 per product at one store: 20 products cost about $0.10, or 1,000 cost about $5, plus Apify's small start charge. No Home Depot login, account cookies or retailer API key is needed.

What you get

DataWhat it means
Current price and regular priceThe advertised price requested for the selected store, plus the source's original or was price when supplied
Special Buys and savingsPromotion wording, sale and clearance flags, dollar savings and percentage savings
Promotion datesStart and end dates supplied by the product offer; the daily Special Buy list also carries its own dates
Stock at your storePickup inventory matched to the exact store number, including a shelf count when the source supplies one
Aisle and bayStore SKU shelf location, such as aisle 14 and bay 014
IdentifiersInternet item number, store SKU, manufacturer model, UPC and GTIN
Product informationTitle, brand, rating, review count, category and product/image links
FulfillmentPickup and delivery options, with their original service and location data
Run summaryProducts, resolved stores, deals, duplicate exclusions and free failures in the SUMMARY record

Start with a search or a known product list

  1. Enter searchTerms, product or category links in startUrls, or internet numbers in productIds.
  2. Enter US ZIP codes in locations, or exact store numbers in storeIds.
  3. Choose the maximum number of products, start the run and export the dataset as JSON, CSV or Excel.

The prefilled input searches for hammers near ZIP 30339 and delivers up to 20 products. The measured cloud prefill delivered 20 unique products with 20 Product charges. You can also monitor an existing item list without repeating discovery.

Search near a ZIP code

{
"searchTerms": ["hammer", "cordless drill"],
"locations": ["30339"],
"maxItemsPerSearch": 20,
"maxItems": 40
}

Monitor known internet item numbers

{
"productIds": ["317987598", "320326787"],
"storeIds": ["0121"],
"maxItems": 2
}

Compare the same item across stores

{
"productIds": ["317987598"],
"locations": ["30339", "10001", "90012", "60607", "77002"],
"maxItems": 5
}

One product at two stores is two rows; duplicates at the same store are free. Each ZIP selects the nearest store returned by Home Depot. ZIPs resolving to the same store are combined, with the requested ZIPs retained in requestedLocations. Explicit store IDs take precedence when both input fields are supplied. Store numbers are normalized to four digits: 121 becomes 0121.

Read a category or Special Buy list

{
"startUrls": [
"https://www.homedepot.com/b/Tools-Power-Tools/N-5yc1vZc298"
],
"locations": ["30339"],
"maxItemsPerSearch": 100,
"maxItems": 100,
"dealsOnly": true
}

Use https://www.homedepot.com/SpecialBuy/SpecialBuyOfTheDay to select the public daily Special Buy list. Normal category links contain /N- followed by the category and refinement code. Search links and full product links are also accepted.

Validation on 3 November 2026: 32 varied cloud inputs passed across five ZIPs. Large runs delivered 1,100 and 1,099 distinct products. Reboots and the one-product spending limit passed. Ten rows matched independent product-page identities and live selected-store price and stock data.

Input reference

InputPurpose
searchTermsArray of searches such as hammer, kitchen faucet or garden hose
startUrlsOptional public HTTPS Home Depot category, search, Special Buy or product links
productIdsOptional Home Depot internet item numbers; these are different from store SKUs and UPCs
locationsArray of five-digit US ZIP codes; a ZIP+4 is accepted and normalized
storeIdsOptional exact store numbers; these override ZIP selection
maxItemsPerSearchMaximum new rows from each search, category or deals source at each store; default 20, maximum 1,000
maxItemsGlobal product/store row limit across the whole run; default 20, maximum 10,000
dealsOnlyKeep rows with a lower price, clearance, Special Buy or another advertised promotion
includeDetailsAdd descriptions and specification groups when supplied; no extra product fee
proxyConfigurationOptional proxy selection; the default uses datacenter first and US residential after refusal

An empty location selection uses the public site's Cumberland reference store, 0121. Supply ZIPs or store IDs whenever location matters to your analysis. Invalid source values become free note rows. Invalid or retired store numbers are rejected instead of silently accepting a fallback store's price.

Output fields shared with the retail family

The core field names match the Safeway & Albertsons retail Actor. This makes daily price pipelines reusable across retailers. Filter recordType to PRODUCT for billable product observations; NOTE rows describe free exclusions or unavailable data.

FieldMeaning
verdictReadable product price and selected-store stock summary
retailer, country, currencyThe Home Depot, US and USD
storeId, storeNameVerified selected store, with a name when supplied
locationRequested ZIP; null for an exact store ID or the default store
productId, sku, gtinInternet number, store SKU and public GTIN or UPC
title, brand, sizeProduct identity; size remains null when a standard size is not supplied
price, regularPriceCurrent advertised price and the original or was price
onSaleA lower price, clearance or advertised promotional offer
promoText, promoTypeRetailer wording and promotion type
promoStart, promoEndSupplied promotion dates, normalized to ISO dates when possible
memberPrice, memberProgramNull when no public anonymous member price is supplied
unitPrice, unitOfMeasureAlternate unit price and unit, when supplied
inStock, stockLevelSelected-store pickup availability and quantity; unknown remains null
rating, reviewCountPublic product rating and review total
categoryBreadcrumb category path when supplied
url, imageUrlProduct page and primary image
scrapedAtTimestamp of this live product observation

Home Depot extras include itemId, storeSku, modelNumber, upc, aisle, bay, aisleBayDescription, stockQuantity, pickupAvailable, deliveryAvailable, fulfillmentOptions, bulkPrice, isDeal, isClearance, isSpecialBuy, savingsAmount, savingsPercent and the original promotion object. Daily Special Buy rows can also carry specialBuyStart, specialBuyEnd and specialBuyText.

storeAddress, requestedLocations, source fields and store-metadata observation fields support auditing. Only store metadata is cached for up to six hours. Product prices, promotions and inventory are requested again on every run.

Real product observation

A cloud observation on 3 November 2026 at Cumberland store 0121 returned the following RYOBI drill data. Prices, offers and stock can change after collection.

{
"recordType": "PRODUCT",
"retailer": "The Home Depot",
"country": "US",
"currency": "USD",
"storeId": "0121",
"storeName": "Cumberland",
"productId": "317987598",
"sku": "1006703281",
"gtin": "0033287200177",
"title": "ONE+ 18V Cordless 1/2 in. Drill/Driver Kit with (1) Compact Battery and Charger",
"brand": "RYOBI",
"modelNumber": "PCL206K1",
"upc": "033287200177",
"price": 59,
"regularPrice": 89,
"promoType": "DISCOUNT",
"promoStart": "2026-10-26",
"promoEnd": "2027-01-31",
"inStock": true,
"stockQuantity": 84,
"aisle": "11",
"bay": "EC1"
}

Monitor prices every day

Save a successful input as an Apify task, then create a schedule for that task. Use the same product IDs and store selection on subsequent runs to compare like with like. For broad catalog research, discover products through searches first, then save their productId values for a repeatable monitoring panel.

Pricing and spending limits

Delivered product/store rowsApproximate list-price charge
1$0.005
20$0.10
100$0.50
1,000$5.00

The Product price is $0.005 on the free tier, $0.00475 on Bronze, $0.0045 on Silver and $0.004 on Gold and higher configured tiers. The platform start charge is $0.00005 per GB, minimum one start event. Product details do not add another product fee.

Failed requests, unavailable products, unavailable store prices, duplicates and note rows have no Product charge. The Actor checks the buyer's spending limit before fetching another deliverable batch and before saving a paid row. It stops cleanly when there is no room for the next product. Set maxItems and an Apify maximum charge together when you need a predictable ceiling.

API and automation

Start a run with an Apify token stored in your environment:

curl --request POST \
'https://api.apify.com/v2/acts/moggedhq~home-depot-scraper/runs' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"productIds":["317987598"],"storeIds":["0121"],"maxItems":1}'

Read the returned run's default dataset and the SUMMARY record in its default key-value store. The output links provide an overview, promotion columns, full product data and a DEALS JSON export containing only deal rows. Large deal exports are split into linked parts.

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("moggedhq/home-depot-scraper").call(run_input={
"productIds": ["317987598", "320326787"],
"storeIds": ["0121"],
"maxItems": 2,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row.get("recordType") == "PRODUCT":
print(row["storeId"], row["productId"], row["price"])

Use schedules, webhooks, Make, n8n, Zapier or a spreadsheet integration to process completed runs. Always inspect SUMMARY.status, freeFailures, notes and the resolved store list before treating a missing row as a stockout. A free failure indicates unavailable evidence, not a confirmed zero inventory count.

Use with AI agents (MCP)

Connect an assistant to the Apify MCP server and request moggedhq/home-depot-scraper. Provide searches or item numbers, ZIPs or store IDs, and a product limit. Ask the assistant to retain store IDs, original promotion wording and dates in its answer.

Limits and interpretation

  • US homedepot.com only. Canadian and Mexican sites have different catalogs and are not substituted.
  • Home Depot limits normal listing pagination to about 744 products per search or category. Use narrower categories, several searches or known item lists for larger panels.
  • A Special Buy or Buy One Get One badge does not necessarily reduce the single-item price. Keep the original offer wording and purchase conditions.
  • Missing prices are excluded with a free note. Missing stock, member prices, dates or shelf locations remain null.
  • Shelf counts use the selected store's pickup inventory. Delivery and warehouse inventory remain separate in fulfillment data.
  • Optional descriptions and specifications may be unavailable even when a store price is readable.
  • Promotions, availability and checkout prices can change. An observation is not a reservation or a guarantee of a checkout offer.
  • Signed-out public access can be refused. The Actor retries with fresh sessions and reports exhausted requests without charging a Product fee.
  • Reboots resume from saved rows and page progress. Duplicate product delivery and duplicate Product charging are prevented by durable recovery.

FAQ

Does it verify my store? Yes. ZIP lookup resolves a current store, and explicit store IDs are verified. Retired or invalid IDs are reported free. This matters because a product request with an invalid store can otherwise fall back to a different store's price.

Why does a promotion have no end date? The retailer did not supply a date for that offer. Null means unknown. The Actor does not invent one from a badge or from another product's offer.

Why is stock null when delivery is available? Delivery inventory and the selected store's shelf inventory are different. A delivery option does not establish how many units are on the selected shelf.

Can the same input work with Safeway & Albertsons? The shared inputs and core product fields use the same names. Retailer-specific URLs, product IDs, stores and optional extras differ. Filter recordType to PRODUCT and use the common price and location fields in shared pipeline code.

This is an independent Home Depot price and inventory tool. It is not affiliated with or endorsed by the retailer.