Export public Target product reviews to CSV, Excel, JSON, or the Apify API. Enter Target product URLs or TCIN item IDs to collect review text, star ratings, dates, recommendation signals, and product-level rating summaries.
No Target login or cookies are required.
Each dataset row is one review, with its product context attached. Use the data to investigate customer complaints, compare product feedback, or prepare a review dataset for analysis.
Before you start: maxReviews is a total limit across the run—not a limit per product. Sorting by lowest rating does not filter exclusively for one-star reviews. Optional fields can be null when Target does not supply them.
Try a small Target review export
Open the Actor, switch to JSON input, and start with one product and an explicit review limit:
{
"tcins": ["85978622"],
"maxReviews": 20,
"sortBy": "most_recent",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
Replace the TCIN with your product's item ID. You can find it in a Target product URL after A-. Product availability and review counts can change.
After the run, open the dataset and export your results as CSV, Excel, or JSON. For a partial or failed run, also inspect RUN_SUMMARY in key-value storage.
What one review looks like
This is an illustrative excerpt, not a fresh review or a live product-rating claim. The full field list appears below.
{
"tcin": "85978622",
"productUrl": "https://www.target.com/p/-/A-85978622",
"productTitle": "Example product",
"reviewId": "example-review-id",
"reviewTitle": "Comfortable for everyday use",
"reviewText": "The fit worked well for me.",
"rating": 4,
"submittedAt": "2026-07-01",
"verifiedPurchaser": null,
"averageRating": 4.3,
"reviewCount": 120,
"scrapedAt": "2026-08-31T09:00:00.000Z"
}
rating describes this review. averageRating and reviewCount describe the product's public summary; they are not calculated from the sample you export.
What can you do with Target review data?
- Investigate product complaints: request
lowest_rating, then group review text by recurring issues in your own analysis tool. - Monitor recent feedback: schedule runs with
most_recentand comparetcinplusreviewIdacross datasets to identify newly collected reviews. - Compare competing products: keep product IDs and product summary fields beside each review. For equal-sized samples, run each product separately with the same limit and sort.
- Prepare AI analysis: pass review text, ratings, and product IDs to your analysis workflow. The Actor exports data; it does not perform sentiment analysis or generate summaries itself.
Input settings
Provide at least one product URL or TCIN. If both are supplied, duplicate TCINs are combined.
| Setting / JSON key | Accepted input | What to know |
|---|---|---|
Target product URLs / startUrls |
Array of objects with url |
Public HTTPS Target product URLs containing A- followed by the 6–12 digit TCIN. |
Target item IDs / tcins |
Array of strings | TCINs only, for example ["85978622"]. Do not put product URLs here. |
Maximum reviews / maxReviews |
Integer, 1–10,000 | Total across all products. Set it explicitly in automated runs. The input form suggests 20. |
Review order / sortBy |
most_recent, highest_rating, lowest_rating |
Controls ordering, not an exact star-rating filter. Default: most_recent. |
Connection settings / proxyConfiguration |
Apify proxy configuration object | The input form defaults to residential Apify Proxy. The example above includes it explicitly. |
URL input works too:
{
"startUrls": [{"url": "https://www.target.com/p/-/A-85978622"}],
"maxReviews": 20,
"sortBy": "lowest_rating",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
Products are processed in sequence. An earlier product can use the entire review limit before later products are reached.
Tips, limitations, and partial results
- Public reviews only: no Target account credentials are required. This does not provide private customer records or purchase histories.
- Fewer results are possible: the requested limit is a ceiling, not a guarantee. Availability, Target access restrictions, and the run deadline can limit collection.
- Not a star filter: for one-star reviews, use
lowest_ratingand then filter exported rows whereratingequals1. This is not a guarantee of collecting every one-star review. - Check failed products:
RUN_SUMMARYcan identify skipped TCINs and failure reasons. A run with no extracted reviews is marked failed; previously saved data can still be useful after a partial interruption. - Continue carefully: when processing stops near the deadline,
PENDING_TCINSmay contain products to retry. Supply those IDs in a new run; retries can repeat reviews from a partially processed product. - Do not infer missing data: a
nullverified-purchaser flag does not prove an unverified purchase. A missing recommendation percentage does not mean zero recommendations.
Run through the Apify API
Install apify-client for Node.js or apify-client for Python, and set APIFY_TOKEN securely in your environment. These examples start a paid Actor run under your account's pricing.
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/target-reviews-scraper').call({
tcins: ['85978622'],
maxReviews: 20,
sortBy: 'most_recent',
proxyConfiguration: {
useApifyProxy: true,
apifyProxyGroups: ['RESIDENTIAL']
}
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/target-reviews-scraper').call(run_input={
'tcins': ['85978622'],
'maxReviews': 20,
'sortBy': 'most_recent',
'proxyConfiguration': {
'useApifyProxy': True,
'apifyProxyGroups': ['RESIDENTIAL']
}
})
print(client.dataset(run['defaultDatasetId']).list_items().items)
cURL
curl --fail-with-body -X POST \
'https://api.apify.com/v2/acts/fetch_cat~target-reviews-scraper/runs' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"tcins":["85978622"],"maxReviews":20,"sortBy":"most_recent","proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}'
The cURL request starts an asynchronous run and returns run metadata, not review rows. Wait for completion before reading its default dataset. For larger exports, paginate dataset retrieval. See the Actor API tab.
Use with AI agents through MCP
Use the official hosted Apify MCP server; this Actor does not run its own MCP server.
For Claude Code:
claude mcp add --transport http apify-target \
"https://mcp.apify.com?tools=fetch_cat/target-reviews-scraper"
For a client that accepts remote HTTP servers in mcpServers configuration:
{
"mcpServers": {
"apify-target": {
"url": "https://mcp.apify.com?tools=fetch_cat/target-reviews-scraper"
}
}
}
Authorize access to your Apify account when prompted. Client setup formats differ; use the official Apify MCP setup guide for your client.
The focused URL exposes this Actor. The general server at https://mcp.apify.com also provides Actor discovery tools. Connecting a tool is separate from having its page appear in an AI search answer.
Example prompts:
- "Collect up to 20 recent reviews for Target TCIN 85978622. Group complaints by theme and include the source review IDs."
- "Fetch up to 30 reviews sorted by lowest rating, then show only rows rated one star. Tell me if the sample is smaller than requested."
- "Compare these two saved datasets by TCIN and review ID. Separate newly collected reviews from reviews seen in both exports."
Support
Report failed runs, wrong output, or missing fields through the Issues tab. Include the run ID or run URL, input JSON with secrets removed, expected output, actual output, and one reproducible public product URL or TCIN. Add the relevant RUN_SUMMARY details if a product was skipped.
Privacy and data handling
This Actor runs with Apify limited permissions and only processes data needed for the documented run. It uses review lookup inputs and public review results to produce the output dataset and sends requests to public Target Reviews pages/endpoints; results are stored in Apify run storage for your account. FetchCat does not use your inputs or outputs for advertising, does not use them for model training, and does not retain them outside the Apify run except for transient support debugging when you explicitly share run details. You are responsible for using the Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs.