Home Depot API endpoint
Returns one page of a Home Depot category or brand browse page's product grid: products with title, image, model, current/original price, and rating/review count, plus the category's total result count and the refinement facets the page offers. path is the segment of a /b/ URL after "/b/", e.g. "Tools-Power-Tools-Drills-Impact-Drivers/N-5yc1vZc29x"; a full https://www.homedepot.com/b/... URL or a "/b/..." path is also accepted. sort selects the result ordering and is one of best_match, top_sellers, top_rated, price_low_to_high, price_high_to_low, most_popular, delivery_date; omit it to keep the site's default ordering. page is a 1-indexed page number (default 1, maximum 42), 24 products per page. Each returned facet's path is directly usable as this endpoint's own path parameter to drill down. An unrecognized or blocked path returns an upstream error rather than an empty result.
/homedepot/categoryQuery parameters:
path (required) — the segment of a /b/ URL after /b/, e.g. Tools-Power-Tools-Drills-Impact-Drivers/N-5yc1vZc29x. A full https://www.homedepot.com/b/... URL or a /b/... path is also accepted; only the part after /b/ is used.sort (optional) — result ordering. One of best_match, top_sellers, top_rated, price_low_to_high, price_high_to_low, most_popular, delivery_date. Omit it to keep Home Depot's own default ordering. Any other value is rejected with a 400.page (optional) — 1-indexed page number, default 1, maximum 42. Each page carries up to 12 products.Notable response behavior:
sort and page are optional and additive. With both omitted the request and response are identical to what this endpoint returned before they existed, so existing callers are unaffected.total is the category's total result count across all pages; count is how many products this response carries; page echoes the page returned.facets are the refinement links the browse page offers, e.g. Cordless or 18v under Impact Drivers. Each facet's path is directly usable as this endpoint's own path parameter, so a caller drills down by passing a facet's path back in. Facets are omitted when the page offers none.price is the current price; original_price is present only when the product is on sale. Products Home Depot prices only in the cart have no price.rating is rounded to one decimal, as the listing shows it; rating and review_count are omitted for products that show no rating.path that is a keyword-refined browse such as Ntt-/Ntk-, the NCNI-5 search-context marker, or the AJAX/overlay fragments is rejected with a 400. Facets pointing at such URLs are likewise never returned./api/v1/homedepot/search.path, or a page whose product grid could not be read, returns a 503 upstream error rather than an empty or partial result.| Field | Filled in, of 12 checked | Values in the sample |
|---|---|---|
| id | 12 | |
| title | 12 | “Atomic 20V Max Lithium-Ion Brushless Cordless Compact 1/4 i…” and 11 other values |
| url | 12 | homedepot.com |
| image | 12 | images.thdstatic.com |
| model | 12 | “DCF809D1” and 11 other values |
| price | 12 | 99 to 319, median 199 |
| rating | 12 | 4.7 to 4.8, median 4.7 |
| review_count | 12 | 145 to 2,444, median 1,360 |
| original_price | 1 | 169 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| path | string | Yes | Home Depot category/brand browse path, e.g. \ | Tools-Power-Tools-Drills-Impact-Drivers/N-5yc1vZc29x | |
| sort | string | No | Result ordering. One of: best_match, top_sellers, top_rated, price_low_to_high, price_high_to_low, most_popular, delivery_date. Omit for the site's default ordering Allowed values: best_match, top_sellers, top_rated, price_low_to_high, price_high_to_low, most_popular, delivery_date. | top_sellers | |
| page | integer | No | 1-indexed page number, default 1, maximum 42 (12 products per page) | 1 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/homedepot/category?path=Tools-Power-Tools-Drills-Impact-Drivers%2FN-5yc1vZc29x&sort=best_match&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"path": "Tools-Power-Tools-Drills-Impact-Drivers/N-5yc1vZc29x",
"sort": "top_sellers",
"page": 1,
"title": "IMPACT DRIVERS",
"total": 1962,
"count": 1,
"products": [
{
"id": "320326875",
"title": "M18 FUEL 18V Lithium-Ion Brushless Cordless 1/4 in. Hex Impact Driver (Tool-Only)",
"url": "https://www.homedepot.com/p/Milwaukee-M18-FUEL-18V-Lithium-Ion-Brushless-Cordless-1-4-in-Hex-Impact-Driver-Tool-Only-2953-20/320326875",
"image": "https://images.thdstatic.com/productImages/fa7d2462-8481-4bd3-8010-384a85aa902f/svn/milwaukee-impact-drivers-2953-20-64_600.jpg",
"model": "2953-20",
"price": 179,
"rating": 4.7,
"review_count": 1542
}
],
"facets": [
{
"name": "Cordless",
"path": "Cordless/N-5yc1vZc29xZ1z140i3",
"url": "https://www.homedepot.com/b/Cordless/N-5yc1vZc29xZ1z140i3"
}
],
"source_url": "https://www.homedepot.com/b/Tools-Power-Tools-Drills-Impact-Drivers/N-5yc1vZc29x?sortby=topsellers&sortorder=desc",
"fetched_at": "2026-09-05T00:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/homedepot.categoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | homedepot.CategoryResponse | No | ||||
| data.count | integer | No | ||||
| data.facets | array | No | Facets are the refinement links this browse page offers. Each facet's path is directly usable as this endpoint's own path parameter. | |||
| data.facets[].name | string | No | Cordless | |||
| data.facets[].path | string | No | Cordless/N-5yc1vZc29xZ1z140i3 | |||
| data.facets[].url | string | No | ||||
| data.fetched_at | string | No | ||||
| data.page | integer | No | 1 | Page is the 1-indexed page this response carries. | ||
| data.path | string | No | ||||
| data.products | array | No | CategoryProduct record, 9 fields: id, image, model, original_price, price, rating, review_count, title, url. Described under Home Depot keyword search API. | |||
| data.sort | string | No | top_sellers | Sort echoes the requested sort value, or "" when the upstream default ordering was used. | ||
| data.source_url | string | No | ||||
| data.title | string | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/homedepot/category?path=Tools-Power-Tools-Drills-Impact-Drivers%2FN-5yc1vZc29x&sort=best_match&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"