Home Depot Scraper - Product Prices, Discounts & Ratings
Pricing
from $5.00 / 1,000 results
Home Depot Scraper - Product Prices, Discounts & Ratings
Scrape Home Depot US products by keyword, search URL or item ID: title, brand, model number, price, original price, discount %, rating and review count. Store-localized pricing with automatic pagination. Export to JSON, CSV or Excel for price monitoring and retail research.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Security
Limited permissionsShare
Home Depot Scraper — Product Prices, Discounts, Ratings & Reviews
This Home Depot scraper extracts clean, structured product data from Home Depot — price, original/MRP price, discount %, savings, rating, review count, brand, model number, store SKU and image — straight from keyword searches, search URLs, product URLs or item IDs. No login, no coding. It turns Home Depot listings into analysis-ready rows for price monitoring, retail intelligence and catalog enrichment, with store-localized pricing and automatic pagination across the full result set. When you need to scrape Home Depot at scale without maintaining anti-bot workarounds yourself, this actor does it for you.
Export to JSON, CSV, Excel, or API.
🛠️ Built for price-monitoring teams, e-commerce and marketplace analysts, retail buyers and merchandisers, dropshippers and resellers, competitive-intelligence researchers, and developers feeding product catalogs into dashboards, databases and AI agents.
🔎 Why scrape Home Depot?
Home Depot is the largest home-improvement retailer in the United States, with a catalog spanning tools, hardware, appliances, building materials, lighting, lawn & garden, paint and more. Its product pages hold exactly the signals retail and pricing teams care about: the current price, the was/original price, the percentage off, star ratings and review counts, plus hard identifiers like item ID, brand, model number and store SKU. Because pricing is store-localized, the same SKU can show different numbers depending on the store, which makes a programmatic, store-aware snapshot far more useful than eyeballing the site.
Collecting this manually is slow and error-prone. Prices and promotions change constantly, search results run across many pages, and copy-pasting item IDs, prices and ratings into a spreadsheet does not scale past a handful of products. The site is also protected by Akamai anti-bot defenses, so a naive request is blocked with an HTTP 403. This Home Depot scraper handles the challenge-solving, fingerprinting, pagination and de-duplication for you, and returns one clean record per product.
Common reasons people scrape Home Depot:
- 📉 Price monitoring — track price drops, promotions and original-price changes on a known list of item IDs.
- 🧭 Competitor and assortment research — compare brands, price bands, ratings and which products rank for a search.
- 📚 Catalog enrichment — add identifiers, images, model numbers and live pricing to an existing product database.
- ⭐ Review and rating analysis — surface highly-rated vs. poorly-rated products and review volume by category.
- 🏷️ Promotion and discount tracking — capture
savingsandpercentageOfffor products currently on sale. - 📊 Retail dashboards and BI — feed structured Home Depot data into Sheets, Looker, Power BI or a warehouse.
- 🤖 AI, agents and automation — give LLM workflows current, structured product facts instead of scraped HTML.
✨ What this Home Depot scraper does
- ✅ Four ways to target products — search by keywords, paste Home Depot search URLs (
/s/…), paste product URLs (/p/…), or look up exact item IDs. All inputs are combined into one run. - ✅ Automatic pagination — the actor reads the first search page, extracts the search token (
navParam), then calls Home Depot's internalsearchModelGraphQL endpoint to page through the full result set (24 products per page), returning hundreds of de-duplicated products per search, capped only by yourmaxResults. A single keyword run in testing returned 400 unique products with zero duplicates. - ✅ Rich, flat product records — every item carries identity (
itemId,title,productUrl), brand data (brand,modelNumber,storeSkuNumber,productType), pricing (price,originalPrice,savings,percentageOff,currency), reputation (rating,reviewCount), media (imageUrl) and run context (storeId,query,sourceUrl,scrapedAt). - ✅ Store-localized pricing — pass a
storeIdand the actor sets the store cookie so prices and promotions reflect that local store. - ✅ Built-in filters — narrow keyword searches by
sortBy(best match, top sellers, price low→high, price high→low, top rated) and by apriceMin/priceMaxUSD range. - ✅ De-duplication — results from every keyword, URL and ID are merged and de-duplicated by Home Depot item ID, so you never get the same product twice.
- ✅ Reliable anti-block handling — Home Depot's Akamai protection (including its
sec-cptJavaScript challenge) is solved automatically via Apify's Unblocker proxy, with a mobile-Safari TLS fingerprint and automatic retries, so you don't maintain your own bypass. - ✅ Export anywhere — download as JSON, CSV, Excel, HTML, XML or RSS, or pull results through the Apify API.
🎯 Use cases
- 🛒 E-commerce & marketplace analysts benchmark Home Depot prices, discounts and ratings against other retailers.
- 💵 Pricing & revenue teams monitor competitor price changes and promotion depth on a fixed basket of item IDs.
- 🏬 Retail buyers & merchandisers study assortment, brand mix and price bands across a product category.
- 📦 Dropshippers & resellers source product identifiers, images, prices and model numbers for their own storefronts.
- 🔬 Market researchers quantify brand visibility, discount frequency and review-volume signal by keyword.
- 🧮 Data & BI engineers pipe structured Home Depot product snapshots into warehouses and reporting tools.
- 🤖 AI & automation builders feed current product facts to agents, chatbots and Make/Zapier workflows.
- 🏗️ Procurement & estimators pull live pricing on tools, materials and hardware for cost planning.
📥 Input
Configure the run in the Apify Console UI or pass a JSON input via the API. Provide at least one of keywords, startUrls or productIds (if you leave them all empty the actor defaults to a cordless drill search).
| Field | Type | Description |
|---|---|---|
keywords | array of strings | Search phrases to run on Home Depot (e.g. cordless drill, ceiling fan). Paginated automatically. |
startUrls | array | Home Depot search (/s/…) or product (/p/…) URLs. Scraped in addition to the keywords. |
productIds | array of strings | Home Depot item IDs (the number in a /p/…/NNNNNNNNN URL) to fetch directly. |
sortBy | string (enum) | Ordering for keyword searches: BEST_MATCH, TOP_SELLERS, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, TOP_RATED. Default BEST_MATCH. |
storeId | string | Home Depot store ID for localized pricing. Default 121. |
priceMin | integer | Keep only products at or above this USD price. |
priceMax | integer | Keep only products at or below this USD price. |
maxResults | integer | Maximum number of unique products to collect across all searches and URLs. Default 48. |
proxyConfiguration | object | Proxy settings. The actor routes blocked pages through Apify's Unblocker automatically; your selected country (default US) is honored. |
{"keywords": ["cordless drill", "impact driver"],"sortBy": "TOP_SELLERS","storeId": "121","priceMin": 50,"priceMax": 300,"maxResults": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyCountry": "US"}}
Monitor a fixed list of products by item ID:
{"productIds": ["343493170", "339545347"],"storeId": "121"}
📤 Output
Each product is pushed to the dataset as a clean, flat record. Fields are omitted when Home Depot does not publish them for a given product (for example, originalPrice, savings and percentageOff are present only when an item is on promotion). Below is a real record from a fresh run (a Milwaukee impact driver on sale):
{"itemId": "343493170","title": "M18 FUEL SURGE 18V Lithium-Ion Brushless Cordless 1/4 in. Hex Impact Driver w/ (2) 6.0Ah Battery & Charger","brand": "Milwaukee","modelNumber": "2761-20-48-59-1862S","storeSkuNumber": "1016118424","productType": "MERCHANDISE","productUrl": "https://www.homedepot.com/p/Milwaukee-M18-FUEL-SURGE-18V-Lithium-Ion-Brushless-Cordless-1-4-in-Hex-Impact-Driver-w-2-6-0Ah-Battery-Charger-2761-20-48-59-1862S/343493170","price": 299,"originalPrice": 548,"savings": 249,"percentageOff": 45,"currency": "USD","rating": 4.77,"reviewCount": 1462,"availability": "available","imageUrl": "https://images.thdstatic.com/productImages/dbb04672-5424-4fd0-89be-a71271a765f2/svn/milwaukee-impact-drivers-2761-20-48-59-1862s-64_600.jpg","storeId": "121","query": "cordless drill","sourceUrl": "https://www.homedepot.com/s/cordless%20drill","scrapedAt": "2026-11-02T01:18:11.907Z"}
| Field | Description |
|---|---|
itemId | Home Depot item ID — the unique identifier and the de-duplication key. |
title | Product name / label. |
brand | Brand name (present when available). |
modelNumber | Manufacturer model number (present when available). |
storeSkuNumber | Home Depot internal store SKU (present when available). |
productType | Product type classification (e.g. MERCHANDISE). |
productUrl | Absolute URL to the product page. |
price | Current price in USD (omitted for the few MAP/"see-price-in-cart" items). |
originalPrice | Was/original price — present only when it differs from the current price (i.e. on sale). |
savings | Dollar amount off — present when on promotion. |
percentageOff | Discount percentage — present when on promotion. |
currency | Currency code (USD) — present when a price is available. |
rating | Average star rating — present when the product has reviews. |
reviewCount | Number of reviews — present when the product has reviews. |
availability | Fulfillment/availability hint — present when Home Depot exposes it. |
imageUrl | Product image URL (upsized to a 600px variant where possible). |
storeId | Store ID used for localized pricing. |
query | The keyword that produced this result (for keyword searches). |
sourceUrl | The search or product URL this record came from. |
scrapedAt | ISO 8601 timestamp of the run. |
Field coverage (from a fresh 400-product run): itemId, title, productUrl, productType, imageUrl and rating 100%; brand, modelNumber, reviewCount 99%; storeSkuNumber 97%; price/currency 96%; promotion fields (originalPrice, savings, percentageOff) ~19% (on-sale items only). Low-percentage fields are genuinely data-dependent, not missing — Home Depot simply does not publish them for every product.
🔁 Pagination & scale
For each keyword or search URL, the actor loads page 1 of the Home Depot search through Apify's Unblocker (which solves the Akamai sec-cpt challenge), extracts the search token (navParam) and the first batch of products, then calls Home Depot's internal searchModel GraphQL endpoint to page through the rest — advancing the startIndex by 24 products per page over fresh residential sessions. It keeps paging until it reaches your maxResults, exhausts the search's totalProducts, or hits Home Depot's deep-paging limit, so a single broad keyword can return hundreds of de-duplicated products (a verification run returned 400 unique items, 0 duplicates). Product URLs and item IDs are fetched directly from the product page. Results from every input are merged and de-duplicated by itemId, and the overall run is capped by the maxResults input — set it higher for broader catalog coverage or combine several focused searches.
⚙️ How to use
- Open the actor in the Apify Console and click Try for free.
- Enter your targets — one or more keywords, and/or Home Depot search URLs, product URLs or item IDs.
- Tune the run — pick a
sortBy, astoreIdfor local pricing, an optionalpriceMin/priceMaxrange, and amaxResultslimit. - Click Start and watch the live status update as products are collected.
- Export the data as JSON, CSV, Excel, XML, HTML or RSS, or fetch it via the Apify API.
- Automate it — run on a schedule for recurring price snapshots, or connect the dataset to Make, Zapier, Google Sheets, a webhook or the Apify MCP server for AI agents.
Call it from the API
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('haketa/home-depot-product-scraper').call({keywords: ['cordless drill', 'impact driver'],maxResults: 100,storeId: '121',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
💡 Tips
- Use focused keywords such as
cordless drill,ceiling fanorbathroom vanityfor the most relevant results. - Keep the same
storeIdacross scheduled runs so price snapshots stay comparable over time. - Use exact item IDs (the number in a
/p/…/NNNNNNNNNURL) to monitor a known list of products precisely. - Combine several focused searches in one run for broader catalog coverage — results are de-duplicated for you.
- Set
sortBytoPRICE_LOW_TO_HIGHplus apriceMaxto capture the budget end of a category. - Start with a small
maxResults, confirm the fields you need, then raise the limit for a full pull.
❓ FAQ
Is scraping Home Depot legal?
This actor collects only publicly visible product information — no login or private data. You are responsible for how you use the data: respect Home Depot's Terms of Service and robots.txt, collect only public information, and comply with all applicable laws. This is an independent tool and is not affiliated with, endorsed by, or connected to The Home Depot.
Do I need a Home Depot account or login? No. The Home Depot scraper works entirely on publicly accessible pages and never requires an account.
How many products can I get, and how fast?
A single keyword search can return hundreds of de-duplicated products via automatic pagination — a fresh verification run collected 400 unique products for one keyword. The total per run is controlled by maxResults. Speed depends on how many products and keywords you request and on challenge-solving/proxy performance.
Do I need proxies, and why the Unblocker?
Proxies are configured for you. Home Depot's Akamai protection serves a JavaScript (sec-cpt) challenge on its search and product pages that a plain HTTP request cannot pass, so the actor routes those pages through Apify's Unblocker proxy, which solves the challenge and returns the real page. Pagination then uses standard US residential sessions. You can choose the proxy country in proxyConfiguration; US is the default.
Is there a Home Depot API? Home Depot does not offer a public product API for this data. This actor acts as your Home Depot API, returning structured JSON over Apify's API and SDKs.
Why is a price or some field sometimes missing?
Pricing, discounts and reviews depend on the store and the product's status. originalPrice, savings and percentageOff appear only for products on promotion; a handful of MAP/"see price in cart" items have no listed price. Missing values are omitted rather than invented.
Can I filter by price or sort the results?
Yes. Use priceMin/priceMax to keep products within a USD range, and sortBy to order keyword searches by best match, top sellers, price or rating.
How fresh is the data?
Every record is captured live at run time and stamped with scrapedAt. Schedule the actor to keep a continuously updated price and rating feed.
Which market is supported?
Home Depot US, with a storeId for store-localized pricing.
What export formats are available? JSON, CSV, Excel, HTML, XML and RSS — from the Apify Console or the API.
🔗 Related scrapers
- Woolworths Scraper — AU Prices, Specials & Unit Price
- OfferUp Scraper — US Marketplace Listings & Prices
- YallaMotor Scraper — GCC Used & New Cars Marketplace
- TradeIndia Scraper — B2B Suppliers, Prices, Email & Phone
- Made-in-China.com Scraper — Suppliers, Prices & MOQ
- IndiaMART Scraper — Suppliers, Exporters, Prices & GST
▶️ Ready to scrape Home Depot? Enter a keyword, set your result limit and click Start — structured product data in JSON, CSV, Excel or API in minutes.