# Target Reviews & Ratings Scraper (`apt_marble/target-reviews-ratings-scraper`) Actor

Scrape Target.com product reviews and ratings by link or TCIN. Text, stars, verified buyers, photos, helpful votes and brand replies. No login needed.

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

## Pricing

$1.00 / 1,000 review scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Target Reviews & Ratings Scraper

Collect customer reviews and star ratings from **Target.com** products. Paste product links or TCIN numbers and get a clean table of every review: rating, headline, full text, reviewer, verified purchase flag, helpful votes, photos, brand replies and dates, together with the product's overall rating.

No login, no cookies, no setup. Fast and simple.

### What you can do

- Monitor customer sentiment for your own products or competitors
- Find what buyers love and complain about before you stock or launch a product
- Build review datasets for sentiment analysis, product research and market studies
- Track ratings over time by running the Actor on a schedule

### Input

| Field | What it does |
| --- | --- |
| **Target product links or TCINs** | One or more product page links such as `https://www.target.com/p/apple-airpods-3rd-generation/-/A-85978609`, or the TCIN number (`85978609`). |
| **Maximum reviews per product** | How many reviews to collect per product (default 100). Pages are loaded automatically until the number is reached. |
| **Sort reviews by** | Most recent, Most helpful, Highest rating or Lowest rating. |
| **Star rating filter** | All ratings, or only 1, 2, 3, 4 or 5 star reviews. |

Example input:

```json
{
    "productUrls": ["https://www.target.com/p/apple-airpods-3rd-generation/-/A-85978609"],
    "maxReviewsPerProduct": 100,
    "sortBy": "most_recent",
    "starRating": "all"
}
```

### Output

One row per review. The first column is the product image, so the table reads like a catalogue.

| Field | Description |
| --- | --- |
| `productImage`, `productTitle`, `tcin`, `productUrl`, `brand` | The product being reviewed |
| `rating` | Stars given in the review (1 to 5) |
| `reviewTitle`, `reviewText` | What the reviewer wrote |
| `reviewerName` | Display name |
| `isVerifiedPurchase`, `isRecommended` | Verified buyer and recommendation flags |
| `helpfulVotes`, `unhelpfulVotes` | Community votes |
| `submittedAt`, `modifiedAt` | Dates |
| `reviewPhotos`, `reviewVideos` | Media attached to the review |
| `secondaryRatings` | Attribute ratings such as quality, value or fit, when the product has them |
| `brandResponses` | Replies from the brand |
| `badges`, `isIncentivized`, `isSyndicated`, `syndicationSource` | Review details |
| `productAverageRating`, `productRatingCount`, `productReviewCount` | The product's overall rating and totals |
| `reviewId`, `sortedBy`, `scrapedAt` | Reference fields |

Each run also saves a **product rating summary** (average rating, total ratings, star distribution, recommended percentage and number of reviews collected for every product) in the run's key-value store under `SUMMARY`.

Example row:

```json
{
    "productImage": "https://target.scene7.com/is/image/Target/GUEST_d1b8c229-751b-430b-a0fb-521d7777a784",
    "productTitle": "Apple AirPods Pro 3 Wireless Earbuds with Active Noise Cancellation",
    "tcin": "85978609",
    "brand": "Apple",
    "rating": 1,
    "reviewTitle": "complete fraud",
    "isVerifiedPurchase": true,
    "helpfulVotes": 22,
    "submittedAt": "2026-07-07T21:05:02.000+00:00",
    "productAverageRating": 3.93,
    "productRatingCount": 2213,
    "productReviewCount": 825
}
```

### Good to know

- Only written reviews are listed. Star-only ratings (no text) are counted in the product's rating totals and the summary, not as rows.
- For very popular products, a single listing is limited to the 2,500 newest or most helpful reviews. When you ask for more, the Actor automatically combines star ratings and sort orders to reach as many different reviews as possible.
- A wrong link, an unknown product or a product with no reviews never makes the run fail. The run finishes successfully with a clear message and an example of a working link.
- Review content is public data shown on Target.com. Use it in line with Target's terms and applicable laws.

### Pricing

You pay per review collected. Set the maximum review count and your own spending limit to stay in control.

# Actor input Schema

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

Target product page links (for example https://www.target.com/p/apple-airpods-3rd-generation/-/A-85978609) or TCIN product numbers (for example 85978609). One per line.

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

How many reviews to collect for each product. The scraper loads more pages automatically until this number is reached or the product has no more reviews.

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

Order of the reviews.

## `starRating` (type: `string`):

Only collect reviews with this star rating, or choose All.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.target.com/p/apple-airpods-3rd-generation/-/A-85978609",
    "85978609"
  ],
  "maxReviewsPerProduct": 100,
  "sortBy": "most_recent",
  "starRating": "all"
}
```

# Actor output Schema

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

No description

## `summary` (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": [
        "https://www.target.com/p/apple-airpods-3rd-generation/-/A-85978609"
    ],
    "maxReviewsPerProduct": 100,
    "sortBy": "most_recent",
    "starRating": "all"
};

// Run the Actor and wait for it to finish
const run = await client.actor("apt_marble/target-reviews-ratings-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": ["https://www.target.com/p/apple-airpods-3rd-generation/-/A-85978609"],
    "maxReviewsPerProduct": 100,
    "sortBy": "most_recent",
    "starRating": "all",
}

# Run the Actor and wait for it to finish
run = client.actor("apt_marble/target-reviews-ratings-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": [
    "https://www.target.com/p/apple-airpods-3rd-generation/-/A-85978609"
  ],
  "maxReviewsPerProduct": 100,
  "sortBy": "most_recent",
  "starRating": "all"
}' |
apify call apt_marble/target-reviews-ratings-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apt_marble/target-reviews-ratings-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/cIlXOR8Pb4Wfgd817/builds/2tqgvjWiSG4jLWJaa/openapi.json
