The Home Depot
The Home Depot Canada price in Canadian dollars at a store you choose, the earlier price, and stock in the store and online, by item number, about 25 million item numbers per credit. Search with rating and review count.
The Home Depot Canada price in Canadian dollars at a store you choose, the earlier price, and stock in the store and online, by item number, about 25 million item numbers per credit. Search with rating and review count.
At a glance
Property | Value |
|---|---|
|
|
Item id | The 10 digits at the end of a Home Depot Canada product link, |
Marketplaces | Live: |
Tier |
|
Ids per call | 400, all priced at the same store. |
Store |
|
Typical call | 1–5 s for 400 ids |
Search |
|
Prices and stock are those of one store
Home Depot prices and stock per store. Every call is priced at one store, named in the response (store, and homedepot.store on each result): the one you send as store or postal_code, or the default. A store number that does not exist, or a postal code with no store near it, leaves every id unavailable with store null (only the small store check is charged); it is never a not_found.
A lookup has no title, rating or image
The item-number lookup returns price, earlier price, stock, aisle, bay and model. Title, brand, rating, review count, image and link come from search, whose result ids go straight into this endpoint.
Example
- cURL
- Python
- Node.js
curl -X POST "https://api.scrapelyserp.com/v1/products" \
-H "Authorization: Bearer $SCRAPELY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "homedepot",
"marketplace": "ca",
"ids": [
"1001686659",
"https://www.homedepot.ca/product/dewalt-20v-max-atomic-lithium-ion-cordless-brushless-compact-1-2-inch-drill-driver-kit-with-2-0ah-battery-charger-bag/1001769719"
],
"postal_code": "M5V 2T6"
}'import os
import requests
HEADERS = {"Authorization": f"Bearer {os.environ['SCRAPELY_API_KEY']}"}
r = requests.post(
"https://api.scrapelyserp.com/v1/products",
headers=HEADERS,
json={
"platform": "homedepot",
"marketplace": "ca",
"ids": [
"1001686659",
"https://www.homedepot.ca/product/dewalt-20v-max-atomic-lithium-ion-cordless-brushless-compact-1-2-inch-drill-driver-kit-with-2-0ah-battery-charger-bag/1001769719",
],
"postal_code": "M5V 2T6",
},
timeout=30,
)
r.raise_for_status()
data = r.json()
for p in data["results"]:
print(p["id"], p["status"], (p.get("price") or {}).get("amount"), p["homedepot"]["stockAtStore"]["quantity"])const res = await fetch('https://api.scrapelyserp.com/v1/products', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SCRAPELY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
platform: 'homedepot',
marketplace: 'ca',
ids: [
'1001686659',
'https://www.homedepot.ca/product/dewalt-20v-max-atomic-lithium-ion-cordless-brushless-compact-1-2-inch-drill-driver-kit-with-2-0ah-battery-charger-bag/1001769719',
],
postal_code: 'M5V 2T6',
}),
signal: AbortSignal.timeout(30_000),
});
if (!res.ok) throw new Error((await res.json()).error.code);
const data = await res.json();
for (const p of data.results) console.log(p.id, p.status, p.price?.amount, p.homedepot?.stockAtStore.quantity);Full reference → POST /v1/products
Home Depot fields
Besides the common fields, each result carries a homedepot object.
Field | Description |
|---|---|
| The price in Canadian dollars at the store. |
| The earlier (strike-through) price of a marked-down product and Home Depot's percentage off. |
|
|
|
|
| Where the product sits in the store, and the model number. |
| The store that was priced: |
Not given | Title, brand, rating, review count, image and link (use search), and delivery promises. |
Search
Search results carry title, brand, rating and review count (Home Depot's own; null for a product with no reviews), image and link. A keyword Home Depot cannot match is not an empty list: it answers with one loosely matching product, total_results 1. The list is empty only when total_results is 0.
Statuses on Home Depot
partial: Home Depot has the item number but shows no price at this store. Try another store.not_found: Home Depot has no such item number.unavailable: no usable answer after retries, or the store could not be found. Ask again, or check the store.