Home Depot Scraper: Prices, Products, Stock & Special Buys
Pricing
from $4.00 / 1,000 products
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
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
| Data | What it means |
|---|---|
| Current price and regular price | The advertised price requested for the selected store, plus the source's original or was price when supplied |
| Special Buys and savings | Promotion wording, sale and clearance flags, dollar savings and percentage savings |
| Promotion dates | Start and end dates supplied by the product offer; the daily Special Buy list also carries its own dates |
| Stock at your store | Pickup inventory matched to the exact store number, including a shelf count when the source supplies one |
| Aisle and bay | Store SKU shelf location, such as aisle 14 and bay 014 |
| Identifiers | Internet item number, store SKU, manufacturer model, UPC and GTIN |
| Product information | Title, brand, rating, review count, category and product/image links |
| Fulfillment | Pickup and delivery options, with their original service and location data |
| Run summary | Products, resolved stores, deals, duplicate exclusions and free failures in the SUMMARY record |
Start with a search or a known product list
- Enter
searchTerms, product or category links instartUrls, or internet numbers inproductIds. - Enter US ZIP codes in
locations, or exact store numbers instoreIds. - 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
| Input | Purpose |
|---|---|
searchTerms | Array of searches such as hammer, kitchen faucet or garden hose |
startUrls | Optional public HTTPS Home Depot category, search, Special Buy or product links |
productIds | Optional Home Depot internet item numbers; these are different from store SKUs and UPCs |
locations | Array of five-digit US ZIP codes; a ZIP+4 is accepted and normalized |
storeIds | Optional exact store numbers; these override ZIP selection |
maxItemsPerSearch | Maximum new rows from each search, category or deals source at each store; default 20, maximum 1,000 |
maxItems | Global product/store row limit across the whole run; default 20, maximum 10,000 |
dealsOnly | Keep rows with a lower price, clearance, Special Buy or another advertised promotion |
includeDetails | Add descriptions and specification groups when supplied; no extra product fee |
proxyConfiguration | Optional 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.
| Field | Meaning |
|---|---|
verdict | Readable product price and selected-store stock summary |
retailer, country, currency | The Home Depot, US and USD |
storeId, storeName | Verified selected store, with a name when supplied |
location | Requested ZIP; null for an exact store ID or the default store |
productId, sku, gtin | Internet number, store SKU and public GTIN or UPC |
title, brand, size | Product identity; size remains null when a standard size is not supplied |
price, regularPrice | Current advertised price and the original or was price |
onSale | A lower price, clearance or advertised promotional offer |
promoText, promoType | Retailer wording and promotion type |
promoStart, promoEnd | Supplied promotion dates, normalized to ISO dates when possible |
memberPrice, memberProgram | Null when no public anonymous member price is supplied |
unitPrice, unitOfMeasure | Alternate unit price and unit, when supplied |
inStock, stockLevel | Selected-store pickup availability and quantity; unknown remains null |
rating, reviewCount | Public product rating and review total |
category | Breadcrumb category path when supplied |
url, imageUrl | Product page and primary image |
scrapedAt | Timestamp 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 rows | Approximate 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 osfrom apify_client import ApifyClientclient = 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.