Home Depot
Home Depot keyword search, product detail with per-store shelf counts, customer reviews, and a store locator that turns a ZIP code into localised pricing
Home Depot products, reviews and stores behind the same canonical commerce schema as Amazon, Walmart, Target and eBay. Two things make this platform unusual: product reports how many units are physically on the shelf at a given store, and stores turns a postcode into the store id that localises every price on the platform.
Base URL: /v1/home_depot/...
Products are keyed on the internet number, the numeric id at the end of a product URL. In homedepot.com/p/<name>/100333077 the item id is 100333077.
Prices and stock without a store_id are national catalogue figures, not what
a shopper standing in a store sees. Get a store id from
/v1/home_depot/stores, then set store_id on both sides of
a price comparison, or on neither.
Quickstart
Find products by keyword
search is the keyword-to-item-id resolver for the rest of the platform. It returns 24 products a page.
curl "https://www.socialcrawl.dev/v1/home_depot/search?query=paver" \
-H "x-api-key: YOUR_API_KEY"Read the product and its reviews
Full detail including per-store shelf counts, then the review text.
curl "https://www.socialcrawl.dev/v1/home_depot/product?item_id=100333077" \
-H "x-api-key: YOUR_API_KEY"
curl "https://www.socialcrawl.dev/v1/home_depot/reviews?item_id=100333077" \
-H "x-api-key: YOUR_API_KEY"Localise it to a store
Turn a ZIP into a store id, then pass that id back into search or product.
curl "https://www.socialcrawl.dev/v1/home_depot/stores?query=95032" \
-H "x-api-key: YOUR_API_KEY"
curl "https://www.socialcrawl.dev/v1/home_depot/search?query=paver&store_id=1009" \
-H "x-api-key: YOUR_API_KEY"All endpoints
4 endpoints available.
| Endpoint | Path | Credit Tier |
|---|---|---|
| Find Home Depot stores near a ZIP code | /v1/home_depot/stores | standard (1cr) |
| Get a Home Depot product by item id or URL | /v1/home_depot/product | advanced (5cr) |
| Get Home Depot product reviews | /v1/home_depot/reviews | advanced (5-9cr)metered |
| Search Home Depot products by keyword | /v1/home_depot/search | advanced (5cr) |
Search
GET /v1/home_depot/search takes query plus two optional parameters: page (1 to 30) and store_id. It returns 24 products a page with item id, title, brand, model number, current and original price, rating, review count, images, department and stock status, and a total that holds steady across pages.
It takes no sort or filter parameters. If you send sort_by, items_per_page, brand, min_price, max_price, in_stock or zipcode you get a 400 naming the parameter rather than a silently unfiltered page, because a filter that is quietly ignored is worse than an error: you cannot tell it happened. Filter and sort on the returned rows instead, which carry product.price.current, product.brand, product.rating and product.availability.
Product detail
GET /v1/home_depot/product takes item_id or the full product url, plus an optional store_id. Give it the URL and the item id is extracted for you.
The field nothing else in this API sells is product.ext.store_inventory: the actual unit count on the shelf at each nearby store. store_id changes the price, that stock figure and pickup availability.
Reviews
GET /v1/home_depot/reviews takes item_id and returns the ten most relevant reviews, each with the text, star rating, reviewer name, location, submission date, verified-purchaser flag, helpful-vote count and photos. total reports the full number of reviews on the product, so you can always see how many exist beyond the ten returned.
This is a single page. The upstream exposes no paging parameter, so there is no cursor to follow.
Find a store
GET /v1/home_depot/stores takes a five-digit US ZIP as query and returns the 20 nearest stores with store id, name, full address, phone, distance in miles and seven days of opening hours. Store data changes rarely, so it is 1 credit and heavily cached.
Platform notes
Stock counts are per store and go stale fast. The shelf figure is exactly as volatile as it sounds. Treat it as a point-in-time reading rather than something to cache.
Prices without a store_id are national. If you are comparing against a competitor's store-level price, set store_id on both sides or neither.
Search pages can repeat a row. Home Depot's own result ordering shifts slightly between pages, so consecutive pages occasionally re-serve a product. We de-duplicate across a paging session for you, and a page that de-duplicates to nothing is not charged.
US only. Prices are US dollars and there is no marketplace selector.
Category browsing is temporarily withdrawn. GET /v1/home_depot/category returns a free 503 while its data source is re-established. Use search with a descriptive keyword in the meantime, and see the changelog for its status.
Labels
/v1/home_depot/reviews labels each review by default, at no extra credit: sentiment (read from the words, never the stars, with rating_mismatch when the two clearly disagree) and issue (the main problem the review reports) on computed.labels. Send judgments=off for the page without them. See Labels for the field shapes and the labels you can add with label=, such as label=reports&reports=the battery drains quickly.
