Target Product Reviews
Give one Target product SKU, an expected review count, and a sort order to receive public reviews, ratings, reviewer details, and posted times
Overview
Public Target product reviews capture how shoppers describe quality, fit, defects, and whether they would buy again. This Data App turns the public review area of one Target product into a consistent set of records covering review titles, body text, star ratings, reviewer names, media links, product identifiers, and posted times.
The result is built for repeatable reputation analysis instead of scrolling a product page. Each review keeps its original wording and stays linked to the Target product SKU and product URL, so praise and complaints can be compared across products and collection runs with the same fields.
Data notes
The data covers publicly visible Target product reviews for the supplied product SKU at collection time, returned in the selected sort order. Each normal record is identified by its Comment ID, which removes duplicates across collected pages. Deleted, collapsed, and login-only reviews are outside the coverage.
Rating is the integer star score on the review. Posted at has no timezone offset; Posted at text keeps the source offset, often +08:00, and should not be treated as a confirmed shopper-local time. Product title, price, main image, and similar product facts may be empty on some reviews even when the review itself is valid. Image URLs and Video URLs are stored as source text, often a JSON list of links. Source item and No data retain the collection outcome when a product has no public review result.
What the results look like
Each normal record represents one publicly visible product review of the selected Target product.
| Review title | Review text | Rating | Reviewer name | Posted at | Source item |
|---|---|---|---|---|---|
| Not as good as my | Not as good as my first pair I had. Volume not as good. No low end. | 3 | DENNIS T. | 2026-09-15T02:19:10 | 94692133 |
| Great stuff | Works great for running and just wearing around the house if you want to listen to something. No complaints about mic quality so far either. | 5 | Michael L. | 2026-09-15T00:40:52 | 94692133 |
Additional values include Comment ID, Product URL, Image URLs, and No data.
Use cases
- Split reviews by Rating, then read Review title and Review text to locate low-score issues.
- Use Image URLs and Video URLs to find reviews that include media.
- Align reviews back to a product with Source item, SKU ID, and Product URL.
- Count reviews by Posted at or Posted at text to see how the mix of feedback changed over time.
Scope and boundaries
Each run accepts one Target product SKU and an expected review count. Results are returned and billed in complete batches of 6, so the actual count may be rounded up. Retrieval protection is 100 pages of 20 reviews. Only publicly visible Target product reviews are covered.
- Good for
- When you need public review titles, body text, and star ratings for one Target product SKU
- When you need reviewer names, review media, product identifiers, and posted times for reputation analysis
- Do not use for
- When you need reviews from more than one product in a single run — submit a separate run for each SKU
- When you need deleted, collapsed, or login-only Target reviews
- When you need a live stream of newly posted reviews — this app returns one collection snapshot
Failure handling
Failure and retry behavior declared by the developer. We recommend including it in your system prompt when integrating.
- 1If no reviews are returned, verify the product SKU and confirm that the reviews are publicly visible
- 2A partial success returns the reviews that were completed; the actual count may still differ from the expected value after batch rounding
- 3Retry later after rate limiting, temporary service unavailability, or a timeout
- 4If authentication fails, verify the API Key configured for the execution environment
- 5If the task context does not match or the task has expired, submit a new collection instead of retrying the same task
Input
Parameters required to call this App, generated from the input.schema in manifest.json.
- Target product SKU
skuRequiredstringThe Target product SKU whose public reviews should be collected. Enter one SKU of at most 512 characters, such as 94692133.Example94692133 - Expected review count
expected_countRequiredstringThe expected number of reviews to collect. Results are returned and billed in complete batches of 6, so the actual count may be rounded up, and fewer than 6 reviews still count as one batch. Larger values take longer and cost more.Example2 - Review sort order
order_typeRequiredstring(enum)How the collected reviews are ordered: 0 default, 4 newest, 9 most helpful, 11 highest rating, 12 lowest rating.Allowed valuesDefault0Newest4Most helpful9Highest rating11Lowest rating12Example4
Output
Field structure of a single record, generated from the output.schema in manifest.json.
- Comment ID
comment_idstringStable identifier of this Target product review; empty when the source does not provide one.Example90cc93b7-f1aa-4b7d-9431-097a04e7f234 - Comment params
comment_paramsstringExtra review parameters retained as source text; empty when the source does not provide them.Example{} - Review text
comment_textstringFull public review body in the original wording; empty when the source does not provide it.ExampleNot as good as my first pair I had. Volume not as good. No low end. - Review title
comment_titlestringPublic review title shown with the review; empty when the source does not provide it.ExampleNot as good as my
Sample data
Generated from output.schema. Fields without a sample value use structural placeholders.
{
"comment_id": "90cc93b7-f1aa-4b7d-9431-097a04e7f234",
"comment_params": "{}",
"comment_text": "Not as good as my first pair I had. Volume not as good. No low end.",
"comment_title": "Not as good as my",
"comment_type": "1",
"image_urls": "[]",
"is_recommended": false,
"item_main_pic_url": "<item_main_pic_url>",
"item_price_text": "<item_price_text>",
"item_sale_specs": "<item_sale_specs>",
"item_score_text": "<item_score_text>",
"item_title": "<item_title>",
"item_url": "https://www.target.com/p/-/A-94692133",
"origin_comment_id": "90cc93b7-f1aa-4b7d-9431-097a04e7f234",
"parent_comment_id": "0",
"platform_code": "target",
"publish_time": "2026-09-15T02:19:10",
"publish_time_text": "2026-09-15T02:19:10+08:00",
"rating_score": 3,
"reviewer_avatar_url": "<reviewer_avatar_url>",
"reviewer_id": "<reviewer_id>",
"reviewer_location": "<reviewer_location>",
"reviewer_name": "DENNIS T.",
"shop_id": "<shop_id>",
"shop_name": "<shop_name>",
"sku_id": "94692133",
"spu_id": "94692133",
"user_extra_info": "{}",
"verified_text": "<verified_text>",
"video_urls": "[]",
"task_item": "94692133",
"no_data": false
}Integration
This App can be integrated via MCP, API, SDK, or file export. All channels share the same capabilities and pricing. Every request authenticates with the Authorization: Bearer header using an API key (long-lived, created in the Data Hub Console); MCP clients can also sign in with OAuth, no key required. More options such as CLI and Skill are on the way. This App runs asynchronously and can be canceled midway: After you cancel, the run stops. Records already delivered are kept and billed.
With the MCP (Model Context Protocol), you can call this App directly from AI clients like Claude and Cursor. Pick your client and auth mode, then copy the config below.
Client config
Replace the value after Bearer with your long-lived API key. Works in any client, CI, or headless environment.
{
"mcpServers": {
"octoparse_datahub": {
"type": "http",
"url": "https://mcp-v2.octoparse.com?pin=super_ig/target-comment",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}Let AI set it up for you
Don't want to edit configs by hand? Copy the install prompt and paste it into any AI client. It will complete the setup its own way. (The prompt asks the AI to request your API key from you, so credentials never end up in chat history or shared configs.)
detail.access.mcp.composeHint
Pricing
Charged by the number of records successfully returned. Failed runs are not charged. Billed in units of 6 records; any partial unit is rounded up to 6 records.
Charged once per submitted run, regardless of how many records are returned.
Multiple billing events accumulate independently. See each item for details. Failed runs are not charged.
View creditsTry it now
Fill in the parameters and run. Results come from a real call.