Tmall Product Reviews
Collect public Tmall reviews for one product SPU and return the original review payload, publish times, and shop context
Overview
Public Tmall product reviews capture how buyers describe quality, after-sales experience, and the SKU they actually purchased. This Data App turns the public review area of one Tmall product SPU into a consistent set of records covering the original review payload, publish times, shop and category context, and collection timestamps.
The result is built for repeatable reputation analysis instead of scrolling a product page. Each review keeps its source wording inside Comment data and stays linked to the Product SPU, SKU, and shop, so praise and complaints can be compared across collection runs with the same fields.
Data notes
The data covers publicly visible Tmall product reviews for the supplied Product SPU at collection time, stopping at the review cutoff time. Each normal record is identified by its Comment ID, which removes duplicates across collected pages. Private, deleted, and non-public reviews are outside the coverage.
Comment data keeps the original review payload as source text, including buyer nicknames, ratings, photos, and body text when the source supplies them that way. Comment type, Parent ID, and SKU ID are source codes, not rewritten labels. Comment time, Published at, Collected at, Created at, and Updated at preserve the source timestamps without inferring a timezone. Source product SPU 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 review of the selected Tmall product.
| Comment ID | Business ID | Comment type | Published at | Collected at | SPU ID |
|---|---|---|---|---|---|
| 45a19df1788dadb35bc37062c6732310 | 1076118072642 | 1 | 2026-08-22T16:45:00 | 2026-10-13T12:42:52 | 1076118072642 |
| 7c21b0ae9d4f18c06a5e2b91c8d03417 | 1076118072642 | 1 | 2026-08-18T11:20:00 | 2026-10-13T12:42:52 | 1076118072642 |
Additional values include Comment data, Shop name, Brand name, Category path, and No data.
Use cases
- Read Comment data to locate quality complaints, then group by Comment type.
- Compare Published at with Collected at to see how recently the review was captured.
- Split records by SPU ID and Business ID when comparing more than one collected product.
- Use No data with Source product SPU to distinguish an empty listing from a failed collection.
Scope and boundaries
Each run accepts one Tmall product SPU, a review cutoff time, and a maximum of 1 to 2000 public reviews. Only publicly visible Tmall reviews are covered.
- Good for
- When you need public Tmall review payloads, publish times, and shop context for one product SPU
- When you need category, brand, and collection timestamps for Tmall reputation analysis
- Do not use for
- When you need reviews from a marketplace other than Tmall
- When you need real-time monitoring of newly posted reviews instead of one collection snapshot
- When you need private, deleted, or otherwise non-public reviews
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 SPU, the review cutoff time, and use No data to distinguish an empty listing from a failed job
- 2A partial success still returns the reviews that were completed; submit a new collection after failure or expiry
- 3If authentication fails, a task context does not match, or the job times out, check the credential in the execution environment and submit a new collection instead of reusing the old job
- 4When the submission outcome is unknown, avoid immediate repeated submissions that could create duplicate tasks
Input
Parameters required to call this App, generated from the input.schema in manifest.json.
- Product SPU
product_spuRequiredstringThe Tmall product SPU whose public reviews will be collected. Enter one identifier, 1 to 512 characters.Example1071060010572 - Maximum reviews to collect
comment_countRequiredstringThe maximum number of public reviews to collect, from 1 to 2000. The result will not exceed this number and may be lower if the product has fewer reviews before the cutoff time.Example1 - Review cutoff time
cutoff_timeRequiredstringUnix millisecond timestamp as a 10 to 13 digit string. Collection stops after reaching this comment time. This value is required.Example1791789622000
Output
Field structure of a single record, generated from the output.schema in manifest.json.
- Source API
apistringThe source API name carried on the review record - Business ID
biz_idstringThe business identifier linking the review record to the collected productExample1076118072642 - Brand ID
brand_idstringThe brand identifier associated with the reviewed product - Brand name
brand_namestringThe brand name associated with the reviewed product
Sample data
Generated from output.schema. Fields without a sample value use structural placeholders.
{
"api": "<api>",
"biz_id": "1076118072642",
"brand_id": "<brand_id>",
"brand_name": "<brand_name>",
"cat_id": "<cat_id>",
"cat_name": "<cat_name>",
"cat_path": "<cat_path>",
"comment_data": "{\"auctionSku\": \"净含量:60g[【专攻脂肪粒⭐轻度适用】]\", \"avatar\": \"https://gw.alicdn.com/imgextra/i3/O1CN01YXMxVW1ng5k8sZ6L3_!!6000000005118-0-tps-160-160.jpg_Q75.jpg_.webp\", \"commentTime\": null, \"comment_id\": null, \"comment_text\": null, \"comment_time\": null, \"content\": null, \"days\": null, \"displayUserNick\": \"t***0\", \"fullUserNick\": null, \"id\": \"45a19df1788dadb35bc37062c6732310\", \"likeCount\": \"1\", \"originCommentContent\": null, \"originCommentTime\": null, \"originCommentUser\": null, \"pics\": [\"//img.alicdn.com/imgextra/i3/4611686018427383849/O1CN01HJNU3xUTNeB2I0G4_!!4611686018427383849-0-rate.jpg_40x40.jpg\", \"//img.alicdn.com/imgextra/i2/4611686018427387741/O1CN01JubAws7NS4H2I0G4_!!4611686018427387741-0-rate.jpg_40x40.jpg\"], \"rate\": \"1\", \"rateContent\": \"眼下和眼皮上长了好几颗脂肪粒,化妆的时候卡粉卡得特别厉害,粉底一涂上去就1块1块的,用这个眼霜重点涂了颗粒的位置,每天早晚坚持,大概2周颗粒就小了,摸上去平了很多,化妆也顺畅了,第2盒半价果断又囤了2盒\", \"rateDate\": \"2026-08-22 16:45:00\", \"sku_id\": null, \"videoList\": []}",
"comment_id": "45a19df1788dadb35bc37062c6732310",
"comment_time": "2026-08-22T16:45:00",
"comment_type": "1",
"crawl_time": "2026-10-13T12:42:52",
"created_at": "{\"$numberLong\":\"1791866572389\"}",
"insert_timestamp": "<insert_timestamp>",
"no_data": false,
"old_comment_id": "2832491419252369",
"order_id": "<order_id>",
"origin_comment_id": "45a19df1788dadb35bc37062c6732310",
"origin_comment_self_id": "<origin_comment_self_id>",
"pid": "0",
"plat": "<plat>",
"product_title": "<product_title>",
"publish_time": "2026-08-22T16:45:00",
"seller_id": "<seller_id>",
"shop_id": "<shop_id>",
"shop_name": "<shop_name>",
"shop_type": "<shop_type>",
"sign_url": "<sign_url>",
"sku_id": "<sku_id>",
"source_product_spu": "1071060010572",
"spu_id": "1076118072642",
"updated_at": "{\"$numberLong\":\"1791866640634\"}"
}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/tmall-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 once per submitted run, regardless of how many records are returned.
Charged by the number of records successfully returned. Failed runs are not charged. Billed in units of 20 records; any partial unit is rounded up to 20 records.
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.