亚马逊评论 API:按 ASIN 获取商品评论
亚马逊评论 API 能拿到什么
商品评论接口按页返回一个 ASIN 下的买家评论,除了正文,还带着区分不同类型评论所需的元数据。
items[] 里每一项是一条评论:
| 字段 | 含义 |
|---|---|
star、title、content | 星级、标题和评论正文 |
date | 评论日期,毫秒时间戳(文档示例 1772380800000) |
skus | 评论人买的是哪个变体,例如尺寸或颜色 |
likes | 点赞(「有帮助」)数 |
image、video、images、videos | 是否带图 / 视频,以及链接 |
verified | 是否实际购买评论 |
vine | 是否 Vine 特邀评论 |
free、experience | 是否免费获得、是否抢先体验评论 |
author、authorLabels | 评论人和评论人标签 |
完整字段见查评论接口文档。
先看看真实返回
以下是 2026-10-15 从线上接口真实采集的返回,不是实时查询。创建密钥后可以查询任意 ASIN 或关键词。
/v1/amazon/review200 OK{
"marketplace": "US",
"asin": "B08CK5Z5Q1",
"page": 1,
"size": 2,
"stars": [
1,
2
]
}{
"request_id": "3abbd602-e5d3-4372-900a-d7cc927f9a31",
"data": {
"total": 345,
"pages": 173,
"page": 1,
"size": 2,
"items": [
{
"author": "D…",
"title": "Do not buy this piece of crap collar",
"content": "I bought this collar 2 months ago It is falling apart. The stitches are coming apart. Do not buy this piece of crap collar. I wish I could give this collar a 50 below zero rating<br>",
"date": 1788710400000,
"star": 1,
"authorLabels": null,
"skus": [
"Size: Large (Pack of 1)",
"Color: Teal"
],
"likes": 0,
"verified": false,
"vine": false
},
{
"author": "A…",
"title": "D rings are now plastic - not metal! Very unhappy with this change.",
"content": "I have purchased this collar in the past and was satisfied, but am returning the two collars I just purchased because the product is not the same now. The Amazon description still says the D ring is made of metal, but the collars I received have plastic D rings which are not acceptable as I believe they are a safety hazard for my large dogs.<br>",
"date": 1787673600000,
"star": 1,
"authorLabels": [
"Verified Purchase"
],
"skus": [
"Size: Large (Pack of 1)",
"Color: Hotpink"
],
"likes": 0,
"verified": true,
"vine": false
}
]
}
}请求示例
curl --request POST \
--url https://ecommercedataapi.com/v1/amazon/review \
--header "Content-Type: application/json" \
--header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
--data '{
"marketplace": "US",
"asin": "B08CK5Z5Q1",
"page": 1,
"size": 20,
"stars": [1, 2, 3]
}'asin必填;marketplace可选 US、JP、UK、DE、FR、IT、ES、CA、IN、MX、BR、AU、AE。stars只返回指定星级。[1, 2, 3]只取差评和中评,分析通常从这里开始。- 用
page、size翻页,返回里带total和pages。
一次真实返回
下面是上面那个请求改成 "stars": [1, 2]、"size": 2 后的真实返回(已精简)。评论人姓名这里做了缩写,接口返回的是 Amazon 上显示的原样。
{
"request_id": "3abbd602-e5d3-4372-900a-d7cc927f9a31",
"data": {
"total": 345,
"pages": 173,
"page": 1,
"size": 2,
"items": [
{
"author": "A…",
"title": "D rings are now plastic - not metal! Very unhappy with this change.",
"content": "I have purchased this collar in the past and was satisfied, but am returning the two collars I just purchased because the product is not the same now. …<br>",
"date": 1787673600000,
"star": 1,
"authorLabels": ["Verified Purchase"],
"skus": ["Size: Large (Pack of 1)", "Color: Hotpink"],
"images": null,
"videos": null,
"likes": 0,
"image": false,
"video": false,
"verified": true,
"vine": false,
"free": false,
"experience": false
}
]
}
}有两点值得注意。第一,total 只统计符合 stars 条件的评论,所以这一次调用就告诉你:这个商品有 345 条一星和二星评论。第二,这条评论本身报告了一个产品变化(金属 D 环换成了塑料),任何评分或销量指标都看不出来。评论 API 要挖的就是这种信号。
把一个 ASIN 的差评全部拉下来
一页最多 20 条,page 最大到 100,所以单个星级筛选最多能拿到 2,000 条。要全部拉取,先从第一次返回里读 pages,然后循环:
import os
import requests
URL = "https://ecommercedataapi.com/v1/amazon/review"
HEADERS = {"X-API-Key": os.environ["ECOMMERCE_DATA_API_KEY"]}
def critical_reviews(asin, marketplace="US"):
page, pages = 1, 1
while page <= min(pages, 100):
body = {
"marketplace": marketplace,
"asin": asin,
"stars": [1, 2, 3],
"page": page,
"size": 20,
}
res = requests.post(URL, json=body, headers=HEADERS, timeout=30)
res.raise_for_status()
data = res.json()["data"]
yield from data["items"]
pages = data["pages"]
page += 1跑之前先算好调用量:每页一次调用,上面那 345 条评论要调 18 次。某个筛选条件下超过 2,000 条时,按星级拆开分别拉(先 [1],再 [2],再 [3])。
常见用法
- 找出该改什么。 拉取自己和主要竞品(谁在你的关键词下排名,可以用亚马逊搜索 API 查)的 1–3 星评论,把抱怨分成产品问题、Listing 问题和偶发问题。方法见亚马逊评论怎么分析。
- 按变体拆开看。 按
skus分组。差评集中在某个尺寸或颜色时,多半是那个 SKU 的问题,而不是整条产品线。 - 追踪评论历史。 每条评论连同
date一起存下来,按时间段比较,例如改款前后、换新版 Listing 前后。 - 按来源分开统计。 统计好评差评之前,把
verified、vine、free、experience分开。为什么不能混在一起算见亚马逊评论的四种来源,表格处理见导出评论做分析。
需要知道的边界
- 一个 ASIN 的评论只是「愿意写评论的买家」这个样本。样本小或有偏时,会放大少见的抱怨,所以数量要和
likes、日期一起看。 - 父体下的变体共享评论。把某条评论归到具体版本之前,先用商品详情接口核对。
- 评论是买家的看法,能指出问题,但不能证明原因,也不能作为产品宣称的依据。
content是 Amazon 页面上渲染的原文,可能带<br>这类 HTML 换行。统计字数或交给模型之前先去掉。- 空字段返回的是
null,不是空数组:评论没有图片、视频或标签时,images、videos、authorLabels都是null。 - 每次成功调用消耗 1 个计费单位。遇到
429按错误与限流处理。
获取亚马逊评论的其他途径
| 途径 | 能查任意 ASIN | 有评论原文 | 说明 |
|---|---|---|---|
| Selling Partner API(Customer Feedback) | 否 | 否 | 向获批开发者提供归纳后的评论话题,不是单条评论 |
| 联盟 API(Product Advertising API) | 否 | 否 | 提供用于生成商品链接的评分信息 |
| 自己抓取评论页 | 是 | 是 | 要自己维护解析、代理和验证码处理,页面一改版就失效 |
| 本站评论 API | 是 | 是 | 13 个站点统一的 JSON 格式,可按星级筛选 |
各个官方 API 在评论方面能返回什么,见通过 API 获取亚马逊评论;自建爬虫和购买数据的对比,见抓取亚马逊的隐性成本。
常见问题
Amazon 有官方的评论 API 吗? Amazon 的卖家 API 和广告 API 都不返回任意商品的评论正文。这个接口可以查询你传入的任何 ASIN 的评论,覆盖上面列出的站点。
能只拿差评吗?
可以,传 "stars": [1, 2] 或 [1, 2, 3]。
一次调用返回多少条?
最多 20 条。用 page 继续往后翻,最多到第 100 页。
会返回商品的平均星级和评论总数吗? 不会。这个接口返回的是单条评论。商品的平均星级和评分总数从商品详情获取。
能让 AI Agent 帮我分析评论吗? 可以。这个接口已通过远程 MCP 服务作为工具提供,Claude Code 或 Cursor 里的 Agent 可以在同一段对话里取评论并做总结。