Home Depot & Lowe's Scraper - Price & Store Stock avatar

Home Depot & Lowe's Scraper - Price & Store Stock

Pricing

from $4.00 / 1,000 product with details

Go to Apify Store
Home Depot & Lowe's Scraper - Price & Store Stock

Home Depot & Lowe's Scraper - Price & Store Stock

Scrape Home Depot and Lowe's products by keyword, category URL, product URL or item ID: price, was-price, UPC, model, SKU, local store price, in-store stock quantity, aisle/bay, pickup/delivery, specs, images, ratings and optional reviews.

Pricing

from $4.00 / 1,000 product with details

Rating

0.0

(0)

Developer

Wrenfield Data

Wrenfield Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Categories

Share

Home Depot & Lowe's Scraper - Prices, Store Stock, Aisle & Reviews

Scrape Home Depot (homedepot.com) and Lowe's (lowes.com) products in one Actor by search keyword, category or search URL, product URL or item ID. Get the price, was-price, savings, local store price, in-store stock quantity, aisle and bay, pickup / delivery / ship-to-home availability, UPC, model number, SKU / item #, brand, specifications, description, images, category breadcrumb, rating and review count. You can also get customer reviews.

Use it to compare Home Depot and Lowe's prices, monitor prices and MAP compliance, check local inventory before a store run, track clearance, research products and assortment, or enrich a catalog with UPCs and specs.

  • ✅ Both big-box home-improvement retailers in one run: search a keyword on both sites, or mix Home Depot and Lowe's URLs and IDs. Every row has retailer and the same field names, so you can compare them directly.
  • ✅ Local store price and stock: enter a ZIP code (or a store number) to get the nearest store's price, in-store quantity, aisle and bay for every product.
  • ✅ Gets past bot protection: both sites use Akamai bot protection. The Actor opens a real browser only to earn a session, then reads the sites' own JSON data with that session. That is faster and cheaper than rendering every page.
  • ✅ Reviews: get up to thousands of reviews per product, sorted by relevance or newest (Home Depot also: oldest, most helpful, highest or lowest rating).
  • ✅ You only pay for results: retries, blocked requests, failed products and products that don't exist are free.

💸 $4 per 1,000 products with details (price, store stock, aisle, specs), $2 per 1,000 listing-only products and $0.50 per 1,000 reviews. Try it on Apify's free plan ($5 of monthly credit, no credit card).

Sample output

RetailerProductPriceRatingReviews
homedepot16 oz. Fiberglass Claw Hammer14.974.71609
homedepot16 oz. Steel Rip Claw Hammer24.974.69103
homedepot20 oz. Hammer47.794.67249

What data can you get?

Field groupFields
Identityretailer (homedepot / lowes), itemId, sku (Home Depot store SKU / Lowe's item #), modelNumber, upc, title, brand, url, image
Priceprice, wasPrice, savingsAmount, savingsPercent, unitPrice, currency; Home Depot also promotion, specialBuy, clearancePrice, clearancePercentOff, priceMessage; Lowe's also priceType, displayType
Local storestore (store ID, name, address, city, state, ZIP, phone), storeStockQuantity, aisle, bay, storeLimitedStock (Home Depot)
Availabilityavailability object: online, shipToHome, delivery, pickup, shipToStore / sameDayDelivery, inStore, onlineQuantity, buyable, discontinued, delivery dates; Home Depot also storeStatus (e.g. ACTIVE, CLEARANCE, DELETED = not carried at that store)
Ratingsrating, reviewCount
Catalogcategories (breadcrumb), specifications (group / name / value), description, highlights, bullets, images (all), badges, isBundle (Home Depot "sets")
Run infodetailsScraped, source (which keyword / URL / ID produced the row, page and position), scrapedAt
Reviews (type: review)reviewId, rating, reviewTitle, text, date, author, authorLocation, recommended, helpfulVotes, verifiedPurchase, incentivized, photos

How to use

  1. Add search keywords (e.g. cordless drill, ceiling fan) and choose whether to search Home Depot, Lowe's or both.
  2. And/or add URLs: homedepot.com category (/b/...N-5yc1v...), search (/s/...) or product (/p/...) pages; lowes.com category (/pl/...), search (/search?searchTerm=...) or product (/pd/...) pages.
  3. And/or add product IDs: hd:205594063 (Home Depot internet # / OMSID), lowes:1000379005 (Lowe's product ID from the URL) or lowes:921987 (Lowe's item #).
  4. Optional: enter a ZIP code for the nearest stores' price, stock and aisle, or a specific Home Depot / Lowe's store ID.
  5. Optional: turn on reviews.
  6. Set Max products and click Start. Download the results as JSON, CSV or Excel, or read them through the API.

Input example

{
"searchKeywords": ["cordless drill"],
"retailer": "both",
"startUrls": [
{"url": "https://www.homedepot.com/b/Tools-Hand-Tools-Hammers-Claw-Hammers/N-5yc1vZc98p"},
{"url": "https://www.lowes.com/pl/power-tools/4294607842"}
],
"productIds": ["hd:205594063", "lowes:1000379005", "https://www.lowes.com/pd/.../5013207487"],
"maxItems": 100,
"maxItemsPerQuery": 24,
"zipCode": "30339",
"includeDetails": true,
"includeReviews": true,
"maxReviewsPerProduct": 20,
"reviewsSort": "newest"
}
  • Both sites show 24 products per page. The Actor pages automatically. Home Depot allows about 700 products per search or category; split bigger categories into subcategories.
  • Include product details (on by default) fetches each product's full data (UPC, specs, description, all images, store stock, aisle). Turn it off for a faster, cheaper listing-only scrape with the fields shown in the search grid (title, price, rating, availability, store stock on Lowe's).

Output example

One Lowe's product row with a store (shortened):

{
"type": "product",
"retailer": "lowes",
"itemId": "5013207487",
"sku": "4913878",
"modelNumber": "KDD 2024A-03",
"upc": "195532000342",
"title": "Kobalt 24-volt 1/2-in Keyless Brushless Cordless Drill 1 -Batteries Included, and Charger Included",
"brand": "Kobalt",
"price": 99, "wasPrice": 159, "savingsAmount": 60, "savingsPercent": 37.7, "currency": "USD",
"rating": 4.5, "reviewCount": 615,
"availability": {"online": true, "shipToHome": true, "delivery": true, "pickup": true, "sameDayDelivery": true, "onlineQuantity": 802},
"storeStockQuantity": 13, "aisle": "65", "bay": "8",
"store": {"storeId": "1807", "name": "Sandy Springs Lowe's", "city": "Sandy Springs", "state": "GA", "zip": "30328"},
"categories": ["HARDLINES", "POWER EQUIPMENT", "HANDHELD POWER TOOLS", "KOBALT 24V POWER TOOLS"],
"specifications": [{"group": "General", "name": "Battery Voltage", "value": "24-volt"}],
"url": "https://www.lowes.com/pd/.../5013207487",
"detailsScraped": true,
"source": {"type": "search", "retailer": "lowes", "input": "cordless drill", "page": 1, "position": 1}
}

One Home Depot product row with a store (shortened):

{
"type": "product",
"retailer": "homedepot",
"itemId": "315048673",
"sku": "1004655426",
"modelNumber": "N-A16SHK",
"upc": "6940989322097",
"title": "16 oz. Steel Rip Claw Hammer",
"brand": "Husky",
"price": 24.97, "wasPrice": null, "currency": "USD",
"rating": 4.69, "reviewCount": 100,
"availability": {"online": true, "shipToHome": true, "delivery": true, "pickup": true, "inStore": true, "onlineQuantity": 43, "storeStatus": "ACTIVE"},
"storeStockQuantity": 10, "aisle": "14", "bay": "014",
"store": {"storeId": "121", "name": "Cumberland", "city": "Atlanta", "state": "GA", "zip": "30339"},
"categories": ["Tools", "Hand Tools", "Hammers", "Claw Hammers"],
"url": "https://www.homedepot.com/p/16-oz-Steel-Rip-Claw-Hammer-N-A16SHK/315048673"
}

One review row:

{"type": "review", "retailer": "lowes", "itemId": "5013915503", "reviewId": "272540226", "rating": 5, "reviewTitle": "Great tools", "text": "I am extremely happy with every Bosch tool I have purchased...", "date": "2026-10-02T22:09:01.000Z", "author": "Impressed", "recommended": true, "helpfulVotes": 0}

Each row has a type: product, review or error. Error rows tell you which input failed and why (for example "not found"); they are free. The dataset has the views Products, Store stock and Reviews. A run summary is saved to the key-value store as SUMMARY. It includes success rates per retailer, the stores your ZIP resolved to, and request statistics.

Local prices and stock (ZIP code or store ID)

Both retailers show store-specific prices and stock. If you set zipCode, the Actor finds the nearest Home Depot and the nearest Lowe's store to that ZIP and uses them for every product. homeDepotStoreId / lowesStoreId pick an exact store instead (you can find the store number on the retailer's store page). Each row's store object shows which store the price and stock refer to. Without a ZIP or store, you get the online (national) price, and store fields are empty.

Reliability - how it works

Home Depot and Lowe's both use Akamai Bot Manager. Plain HTTP scrapers and headless browsers get "Access Denied" pages or empty answers. This Actor:

  1. Earns a real session once, then reuses it. A real browser (Chrome for Home Depot, Firefox for Lowe's search pages) opens one page through a US residential IP, so the bot check passes and sets its cookies. Many fast API requests then reuse that session. Images, fonts and third-party scripts are blocked to keep traffic low.
  2. Reads the sites' own data. Home Depot data comes from the same GraphQL API the website uses. Lowe's data comes from its product JSON and the page state. There are no fragile HTML selectors.
  3. Picks the cheapest route that works. Lowe's product data is tried on datacenter IPs first and moves to residential IPs and browser sessions only when needed. Routes that keep failing are switched off for the rest of the run, and blocked requests are retried with a new IP and session.
  4. Isolates errors per item. A product that fails never stops the run. If a product's details can't be loaded, you still get its search-grid data (detailsScraped: false). Products that don't exist are reported as free error rows.

Measured on the Apify platform (October 2026) with default settings:

TestResultTime
Volume: keyword "ceiling fan" on both sites, ZIP 98101 (nearest store), full details100/100 products (50 Home Depot + 50 Lowe's), all with price, UPC and store stock137 s
Home Depot keyword + ZIP 30339 + 5 reviews per product20/20 products, 100 reviews, store stock on all 2032 s
Lowe's category URL + store 184520/20 products with store stock, aisle and bay118 s
Mixed product URLs and IDs (Home Depot and Lowe's) + a search URL + store 12110/10 existing products; 2 fake IDs correctly reported as not found113 s
Listing-only, keyword "paint roller" on both sites49/49 products74 s
Lowe's keyword + ZIP 30339 + 3 reviews per product9/9 products, 27 reviews114 s

Pricing

This Actor uses pay-per-event pricing, so you pay only for results. See the Pricing tab for the current prices of these events:

EventWhen it is charged
product-resultEach product with full details
listing-resultEach listing-only product (details turned off, or the rare product whose details could not be loaded)
review-resultEach review
actor-startOnce per run

Retries, blocked requests, failed products and products that don't exist are free. Proxy and compute costs are included. Set Maximum cost per run in the run options to cap your spend. The Actor stops cleanly at that limit and keeps everything it scraped so far. It also respects the maximum number of paid results you set.

Track the same products at Walmart and across Google Shopping sellers.

All of these are maintained by the same developer and export flat JSON, CSV or Excel, so you can feed one tool's dataset into the next.

FAQ

Is there an official Home Depot or Lowe's API? Not for the public. Home Depot and Lowe's have APIs for suppliers and partners only. This Actor gives you the data any shopper sees on homedepot.com and lowes.com as structured JSON, CSV or Excel. You can use it through the Apify API, schedules, webhooks and integrations.

How do I compare Home Depot and Lowe's prices for the same product? Search the same keyword on both retailers, then match rows by upc or modelNumber. Both fields are filled for most products when details are on.

How do I check if a product is in stock at my local store? Enter your ZIP code (or the store number). Every row then has storeStockQuantity, availability.pickup, and aisle / bay.

Can I monitor prices daily? Yes. Save your product IDs or category URLs as a task, schedule it, and compare price, wasPrice, storeStockQuantity and availability between runs.

Where do I find a product ID? It's the number at the end of the product URL. For example, homedepot.com/p/.../205594063 is hd:205594063, and lowes.com/pd/.../1000379005 is lowes:1000379005. You can also paste the full URL. Lowe's "Item #" numbers shown on the page (for example lowes:921987) work too.

Why are some prices empty? Some Home Depot bundles ("sets", isBundle: true) and products sold only in some regions don't have a single price. Products shown as "See price in cart" may also have no price. Store fields are empty when you don't set a ZIP or store.

Why is the run slower at the start? The first request to each site opens a browser session to pass the bot check. That takes 10-40 seconds. After that, products load in parallel.

Does it work for Home Depot Canada or Mexico? No. It supports homedepot.com and lowes.com (US) only.

Can I use it from Python, Make, Zapier, n8n or an AI agent? Yes. Call the Actor through the Apify API, the Python or JavaScript client, the Apify MCP server or any Apify integration, then read the dataset items.

Is scraping Home Depot and Lowe's legal? This Actor only collects public data that anyone can see without logging in. Review rows include the public nickname the reviewer chose. Both retailers' terms of use restrict automated access, and laws differ by country and use case. Make sure your use complies with them, and handle any personal data according to GDPR, CCPA and similar laws. If you're unsure, ask a lawyer.