Home Depot Product Scraper
Pricing
from $0.75 / 1,000 results
Home Depot Product Scraper
Reads Home Depot product data by item ID or product URL: numeric price, was-price, brand, model number, unrounded star rating, review count and a derived availability status. Pass a store number and both the price and the stock come back for that store instead of the national default.
Pricing
from $0.75 / 1,000 results
Rating
0.0
(0)
Developer
String
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Home Depot Product Scraper — price, stock and ratings, per store
This Actor scrapes Home Depot product data by item ID or product URL and returns one row per item: a
numeric price, plus wasPrice, brand, modelNumber, rating, reviewCount and a derived
availability. Set the optional storeId and the Home Depot Product Scraper returns that store's
local price and stock instead of the national default.
No Home Depot account, API key or cookies are used — this reads what a logged-out visitor's own browser is served. One row per item, about 3.5 seconds per item at the measured median.
What it returns
| Field | Type | Notes |
|---|---|---|
itemId | string | Home Depot's item ID — stable, use it to join or de-duplicate |
title | string | The product label |
brand | string | The manufacturer name |
modelNumber | string | The manufacturer's model number |
price | number | 249, not "$249.00" |
priceText | string | The same price formatted, e.g. $249.00 |
wasPrice | number | The list price, and only while it is genuinely higher than price |
currency | string | USD |
rating | number | Average stars out of 5, unrounded — 4.8235, not 5 |
reviewCount | number | Exact review count |
availability | string | One of IN_STOCK, LIMITED_STOCK, OUT_OF_STOCK, BACKORDERED, AVAILABLE, UNAVAILABLE, DISCONTINUED |
imageUrl | string | The primary image at the largest size Home Depot offers |
sourceUrl | string | Home Depot's canonical product URL |
collectedAt | string | Collection timestamp on every row |
AVAILABLE is not a stock check. It means the item is buyable but Home Depot reported no
location inventory — which is what an online-only item returns, and what any item returns on a run
with no storeId. IN_STOCK and LIMITED_STOCK are only reported when a location actually says so.
Input
{"products": ["313588232", "314030291"],"storeId": "0121","maxItems": 1000}
| Field | Description |
|---|---|
products | Home Depot item IDs or full homedepot.com product URLs. Required, 1–300. |
storeId | Optional numeric store number. Returns that store's local price and stock. |
maxItems | Cap on dataset items. Default 1000. Free plans stop at 250 requests and 250 results — see below. |
concurrency | Items fetched in parallel. Default 2, maximum 5. |
A Home Depot item is addressed by the number at the end of its product URL —
in https://www.homedepot.com/p/<product-name>/313588232 the item is 313588232. The bare ID and
the full URL resolve to the same item and are fetched once, so a mixed list is never billed twice.
A URL on any other host is rejected before it costs a fetch and is reported under failures.
How it reads the page
Home Depot's storefront is a client-rendered shell, so its product page HTML carries no price and no
inventory to parse. The Home Depot Product Scraper calls the same federation-gateway GraphQL
endpoint the site itself calls, requesting only the fields in the dataset above. That is why price,
wasPrice, rating and reviewCount come back as numbers rather than display strings, and why one
item costs a single small response instead of a half-megabyte page.
Use cases
- Price monitoring across a catalogue of Home Depot SKUs
- Local price and stock comparison for the same item across store numbers
- Availability checks before sourcing or fulfilment
- Enriching a building-products feed with brand, model number and ratings
- Feeding a competitive-pricing dashboard on a schedule
Frequently asked questions
Do I need a Home Depot account or API key to scrape Home Depot prices? No. The Home Depot Product Scraper uses no account, no cookies and no API key.
What is a Home Depot item ID? The number at the end of a homedepot.com/p/… product URL, for
example 313588232. Pass it bare or pass the whole product URL — both work.
Can I get the price and stock for one specific store? Yes. Set storeId to the numeric store
number and both price and availability are resolved for that store. Without it, you get the
national price and no location inventory.
Is the rating rounded? No. rating is Home Depot's own unrounded average, e.g. 4.8235, and
reviewCount is the exact total.
How many rows does one item produce? One. The Home Depot Product Scraper makes one request per item and emits one row from it.
What happens to an item ID that does not exist? That target is recorded under failures in the
run's SUMMARY key, with Home Depot's own error message where it gives one, and the rest of the
batch still returns.
Limitations
Product data on homedepot.com (US) only. This Actor does not return review text, specification
tables, variants or collections, shipping quotes, or a store locator, and it does not search or crawl
categories — you supply the items. Values reflect what Home Depot returned at collection time,
stamped in collectedAt.
Free plan limit
Runs started from an Apify free plan stop at 250 requests and 250 results, and the run
reports that it reached the limit. Any paid plan runs the full input and maxItems you set.
The limit exists because this Actor fetches through our own infrastructure, which Apify does not cover for free-plan runs. It binds on requests as well as results so that a large input list cannot spend those fetches for rows the run will not return.