# Home Depot Reviews Scraper: Ratings & Review Data (`getascraper/homedepot-reviews-scraper`) Actor

Extract Home Depot product reviews: rating, review text, reviewer name, verified-purchase flag, timestamp, helpful votes, photos, and attribute sub-ratings. Optional watchlist mode alerts only on reviews new since the last tracked run.

- **URL**: https://apify.com/getascraper/homedepot-reviews-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.75 / 1,000 review records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Home Depot Reviews Scraper: Ratings, Text & Photos

<table width="100%" style="display:table;width:100%"><tr><td style="padding:20px 24px;background:#FFF5EC;border:1px solid #F4B183;border-radius:10px;vertical-align:top"><span style="font-size:20px;font-weight:800;color:#B14A00">Every rating, review, and photo on a Home Depot product, in one clean dataset.</span><br><span style="font-size:14px;color:#57534E">Pull star ratings, review text, verified-purchase status, helpful votes, and photos from any Home Depot product page, then keep watching it for new reviews on a schedule.</span></td></tr></table>

**Home Depot is one of the largest home-improvement retailers in the world**, and its product pages carry thousands of customer reviews per item. This Actor turns any Home Depot product link into structured rows you can sort, compare, and monitor over time, with pricing that does not tax a small or scheduled run.

<table width="100%" style="display:table;width:100%"><tr><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F4B183;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#B14A00">⭐ Full review data</span><br><span style="font-size:12px;color:#57534E">Rating, text, reviewer name, verified-purchase flag, and post date on every row.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F4B183;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#B14A00">📸 Photos & sub-ratings</span><br><span style="font-size:12px;color:#57534E">Customer photos and attribute scores like Quality, Value, and Ease of Use, when a review has them.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F4B183;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#B14A00">🔔 Ongoing monitoring</span><br><span style="font-size:12px;color:#57534E">Turn on watch mode and get only the reviews posted since your last run.</span></td><td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F4B183;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#B14A00">💵 Pay for what you use</span><br><span style="font-size:12px;color:#57534E">Usage-based pricing, no flat monthly fee, no charge for empty runs.</span></td></tr></table>

### 🔍 What does Home Depot Reviews Scraper do?

It extracts real customer reviews from any Home Depot product page: star rating, review title and text, reviewer name, whether Home Depot marked it a verified purchase, the post date, helpful-vote counts, customer photos, and attribute sub-ratings such as Quality, Value, Energy Efficiency, and Ease of Use whenever a review provides them.

**Coverage is honest, not inflated.** Many reviews are a star rating with no written text, and most never fill in the optional attribute sub-ratings. Those fields are left empty instead of filled with a guess, so what you get is exactly what Home Depot shows.

### 💡 Why use Home Depot Reviews Scraper?

**"I need to know how customers actually feel about our products."** Brand managers and sellers can pull every review for a product line and spot a quality problem or a rating slide before it shows up in sales.

**"I'm comparing tools and appliances across brands."** Market researchers can pull ratings and complaint patterns across competing products without opening a single page by hand.

**"I want to know if a tool holds up before I order twenty of them."** Contractors and pros can check verified-purchase reviews and real photos before committing to a bulk order.

### 🛠️ How to use Home Depot Reviews Scraper

<table width="100%" style="display:table;width:100%"><tr><td style="padding:16px 14px;width:33%;background:#FFF5EC;border:1px solid #F4B183;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#B14A00;letter-spacing:1px">STEP 1</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Paste your product links</span><br><span style="font-size:12px;color:#57534E">Or just run the defaults to try it.</span></td><td style="padding:16px 14px;width:33%;background:#FFF5EC;border:1px solid #F4B183;border-left:none;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#B14A00;letter-spacing:1px">STEP 2</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Run it once, or schedule it</span><br><span style="font-size:12px;color:#57534E">Turn on monitor mode to track new reviews over time.</span></td><td style="padding:16px 14px;width:33%;background:#FFF5EC;border:1px solid #F4B183;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#B14A00;letter-spacing:1px">STEP 3</span><br><span style="font-size:14px;font-weight:700;color:#1C1917">Get a clean dataset</span><br><span style="font-size:12px;color:#57534E">Rating, text, reviewer, photos, and more on every row.</span></td></tr></table>

1. Open the Actor and paste one or more Home Depot product page links, or run the defaults to see it work.
2. Choose how many reviews per product, the sort order, and whether to keep unverified reviews.
3. Click Start. Reviews land in the dataset, ready to view, filter, or export.
4. Optionally turn on monitor mode and add a schedule to get only the reviews posted since your last run.

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| Home Depot product URLs | array of URLs | Yes | The product pages to pull reviews from. |
| Max reviews per product | integer | No | Stop collecting reviews for a product once this many have been gathered. |
| Sort reviews by | enum | No | Newest, most helpful, highest rating, or lowest rating. |
| Verified purchases only | boolean | No | Only collect reviews Home Depot marked as a verified purchase. |
| Star rating filter | array | No | Only collect reviews with the star ratings you pick (e.g. only 1-star, or only 4 and 5-star). |
| Keyword search within reviews | string | No | Only collect reviews mentioning a word or phrase you choose, like "battery life" or "durability", so you can spot recurring complaints or praise fast. |
| Only reviews with photos | boolean | No | Keep only reviews that include a customer photo. |
| Minimum helpful votes | integer | No | Keep only reviews with at least this many "helpful" votes from other shoppers. |
| Monitor mode: only new reviews | boolean | No | Only output reviews posted since the last run for each product. |
| Monitor state name | string | No | Name for the saved state monitor mode uses to remember what it already saw. |
| Proxy configuration | object | No | Not needed for this Actor; available as a fallback if a run ever gets blocked. |

### 📤 Output

```json
{
  "reviewId": "306406709",
  "productUrl": "https://www.homedepot.com/p/RYOBI-ONE-18V-Cordless-3-8-in-Drill-Driver-Kit-with-Battery-and-Charger-PCL201K1/339545347",
  "modelNumber": "PCL201K1",
  "productName": "ONE+ 18V Cordless 1/2 in. Drill/Driver Kit with (1) Compact Battery and Charger",
  "rating": 5,
  "reviewTitle": null,
  "reviewText": "Great value kit, battery holds a charge for weeks.",
  "reviewerName": "HomeDepotCustomer",
  "verifiedPurchase": true,
  "reviewDate": "2026-09-06T17:03:47.000+00:00",
  "helpfulVotesPositive": 4,
  "helpfulVotesNegative": 0,
  "photos": ["https://photos-us.bazaarvoice.com/photo/2/cGhvdG86aG9tZWRlcG90/d7d25988-7334-5d3e-a3f4-6867e7037810"],
  "attributeRatings": { "Quality": 5, "Value": 5 },
  "totalProductReviewCount": 2309,
  "scrapedAt": "2026-09-08T03:32:11.343Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

#### Data table

| Field | Type | Description |
|---|---|---|
| `reviewId` | string | Home Depot's own identifier for the review. |
| `productUrl` / `modelNumber` / `productName` | string / string / string | The product the review was found on. |
| `rating` | number | Star rating from 1 to 5. |
| `reviewTitle` / `reviewText` | string / string | The review's headline and body, when the reviewer wrote one. |
| `reviewerName` | string | The name or handle the reviewer posted under. |
| `verifiedPurchase` | boolean | Whether Home Depot marked this a verified purchase. |
| `reviewDate` | string | When the review was posted. |
| `helpfulVotesPositive` / `helpfulVotesNegative` | number / number | How many shoppers found the review helpful or not. |
| `photos` | array | Links to any customer photos attached to the review. |
| `attributeRatings` | object | Sub-scores such as Quality, Value, or Ease of Use, only when the reviewer set them. |
| `totalProductReviewCount` | number | Total review count for the product at scrape time. |
| `changeType` | string | `NEW`, only present when monitor mode is on. |

### 💰 Pricing

This Actor uses Apify's pay-per-result pricing. You only pay for reviews actually returned, and an empty run costs nothing. There is no subscription.

### ⭐ Enjoying Home Depot Reviews Scraper?

<table width="100%" style="display:table;width:100%"><tr><td style="padding:20px 24px 14px;background:#FFF5EC;border:1px solid #F4B183;border-left:5px solid #B14A00;border-radius:10px 10px 0 0"><span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br><span style="font-size:17px;font-weight:800;color:#1C1917">Found the review data you needed? That's worth a rating.</span><br><span style="font-size:14px;color:#57534E">Your feedback tells us which fields and filters to add next.</span></td></tr><tr><td style="padding:0;background:#B14A00;border:1px solid #F4B183;border-top:none;border-radius:0 0 10px 10px;text-align:center"><a href="https://apify.com/getascraper/homedepot-reviews-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a></td></tr></table>

### 🧠 Tips

Give each watched product its own monitor state name if you track more than one, so new-review tracking for one product never mixes with another. Pair monitor mode with a daily or weekly schedule to build a running feed of new feedback without re-downloading every review each time.

### ❓ FAQ

#### Do I need a login or a proxy?

No. Review data is public on Home Depot's product pages, and this Actor is built to load them reliably without a login or a proxy, which keeps your runs fast and cheap.

#### Can I track new reviews on a product over time?

Yes. Turn on monitor mode and run this Actor on a schedule. It only returns reviews posted since your last run with the same monitor state name, so you get a running feed instead of the same reviews every time.

#### Why do some reviews have no text or attribute ratings?

Because many shoppers leave only a star rating, and the optional Quality, Value, and similar sub-ratings are filled in only when a reviewer chooses to set them. This Actor leaves those fields empty instead of guessing, so every value you get is real.

#### Can I filter to verified purchases only?

Yes. Turn on Verified purchases only in the input, and the Actor collects only reviews Home Depot itself marked as coming from a verified purchase.

#### Can I find reviews that mention a specific problem or feature?

Yes. Use the keyword search field to pull only reviews mentioning something specific, like "battery life" or "durability", and combine it with the star rating filter to, say, pull every 1-star review that mentions a particular complaint.

### 🔗 Other actors

- [Wildberries Reviews Scraper: Отзывы Вайлдберриз](https://apify.com/getascraper/wildberries-reviews-scraper) ↗ - extracts customer reviews and ratings from Wildberries product listings.
- [Ceneo Scraper Opinie: Ratings, Pros & Cons](https://apify.com/getascraper/ceneo-review-scraper) ↗ - pulls product opinions, ratings, and pros/cons from Ceneo.
- [Software Review Scraper: Capterra, TrustRadius & Trustpilot](https://apify.com/getascraper/software-review-scraper) ↗ - collects B2B software reviews across three major review platforms.
- [CarParts.com Scraper: Prices, Stock & Specs](https://apify.com/getascraper/carparts-com-scraper) ↗ - extracts live prices, stock status, and specs from another major US retail catalog.
- [2GIS Reviews Scraper: Отзывы 2ГИС](https://apify.com/getascraper/2gis-reviews-scraper) ↗ - extracts business reviews and ratings from 2GIS listings.

# Actor input Schema

## `productUrls` (type: `array`):

Paste one or more Home Depot product page URLs (the /p/... links) to fetch reviews for. A plain model number alone is not enough to locate a product, so a full product URL is required for each item.

## `maxReviewsPerProduct` (type: `integer`):

Stop fetching reviews for a product once this many have been collected. Kept low by default so a first run finishes quickly; raise it once you know how many reviews a product actually has.

## `sortBy` (type: `string`):

Order reviews are fetched in, matching Home Depot's own review sort control (confirmed live against the site's own review API). Newest surfaces new feedback first, which pairs naturally with monitor mode below.

## `verifiedPurchasesOnly` (type: `boolean`):

Only collect reviews Home Depot has flagged as a verified purchase, skipping unverified reviews entirely rather than just labeling them.

## `starRatingFilter` (type: `array`):

Only collect reviews with these star ratings, applied by Home Depot's own review API before results are sent back (confirmed live: requesting only 5-star reviews on a test product returned 823 results, all rated 5; requesting only 1-star returned 54, all rated 1). Leave empty to collect all star ratings.

## `keywordSearch` (type: `string`):

Only collect reviews whose text matches this keyword or phrase, searched by Home Depot's own review API itself (confirmed live: searching "battery" on a test product returned 267 matching reviews with visibly relevant text; a made-up word returned 0). Use this to find complaints or praise about a specific feature, such as "durability" or "battery life", instead of downloading every review and searching yourself. Leave blank to collect all reviews.

## `hasPhotosOnly` (type: `boolean`):

Only keep reviews that include customer photos. Home Depot's review API has no server-side way to ask for this, so this Actor still fetches reviews normally and then drops the ones without photos before they reach your dataset, meaning compute cost is based on how many reviews are fetched, not how many end up in your results.

## `minHelpfulVotes` (type: `integer`):

Only keep reviews with at least this many "helpful" (positive) votes from other shoppers. Home Depot's review API has no server-side way to ask for this either, so it is applied the same way as the photos filter above: reviews are fetched normally and then filtered down afterward. Leave at 0 to collect all reviews regardless of helpful votes.

## `monitorMode` (type: `boolean`):

When enabled, each product's last-seen review is remembered between runs in a named key-value store, and the run only outputs reviews posted after that point. Use this with Apify's Scheduler to get an ongoing feed of new reviews instead of re-collecting the same ones every time.

## `stateName` (type: `string`):

Name for the key-value store that remembers each product's last-seen review between runs. Only matters when monitor mode is on; use a different name per independent watchlist if you run this Actor on more than one schedule. The default (unnamed) key-value store resets every run, so monitor mode cannot use it.

## `proxyConfiguration` (type: `object`):

A real anti-detect browser session reached homedepot.com's search and product pages live with no proxy at all during this Actor's build, so the default is off, which is the cheapest and fastest option. Turn on a proxy only if a run reports the site blocking requests or showing region-restricted content.

## Actor input object example

```json
{
  "productUrls": [
    {
      "url": "https://www.homedepot.com/p/RYOBI-ONE-18V-Cordless-3-8-in-Drill-Driver-Kit-with-Battery-and-Charger-PCL201K1/339545347"
    }
  ],
  "maxReviewsPerProduct": 20,
  "sortBy": "newest",
  "verifiedPurchasesOnly": false,
  "starRatingFilter": [],
  "keywordSearch": "",
  "hasPhotosOnly": false,
  "minHelpfulVotes": 0,
  "monitorMode": false,
  "stateName": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `reviews` (type: `string`):

No description

## `monitorState` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "productUrls": [
        {
            "url": "https://www.homedepot.com/p/RYOBI-ONE-18V-Cordless-3-8-in-Drill-Driver-Kit-with-Battery-and-Charger-PCL201K1/339545347"
        }
    ],
    "maxReviewsPerProduct": 20,
    "sortBy": "newest",
    "verifiedPurchasesOnly": false,
    "starRatingFilter": [],
    "keywordSearch": "",
    "hasPhotosOnly": false,
    "minHelpfulVotes": 0,
    "monitorMode": false,
    "stateName": "default",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/homedepot-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "productUrls": [{ "url": "https://www.homedepot.com/p/RYOBI-ONE-18V-Cordless-3-8-in-Drill-Driver-Kit-with-Battery-and-Charger-PCL201K1/339545347" }],
    "maxReviewsPerProduct": 20,
    "sortBy": "newest",
    "verifiedPurchasesOnly": False,
    "starRatingFilter": [],
    "keywordSearch": "",
    "hasPhotosOnly": False,
    "minHelpfulVotes": 0,
    "monitorMode": False,
    "stateName": "default",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/homedepot-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "productUrls": [
    {
      "url": "https://www.homedepot.com/p/RYOBI-ONE-18V-Cordless-3-8-in-Drill-Driver-Kit-with-Battery-and-Charger-PCL201K1/339545347"
    }
  ],
  "maxReviewsPerProduct": 20,
  "sortBy": "newest",
  "verifiedPurchasesOnly": false,
  "starRatingFilter": [],
  "keywordSearch": "",
  "hasPhotosOnly": false,
  "minHelpfulVotes": 0,
  "monitorMode": false,
  "stateName": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call getascraper/homedepot-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/homedepot-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/m9anwc6lEEJjiYsAC/builds/Haor9c0L7jGuwcmvH/openapi.json
