京东商品评论 API jd.item.review 完整技术文档
一、接口基础信息
1. 接口概述
- 接口名称:jd.item.review(商品评价查询接口,京东宙斯 JOS 开放平台通用商品评论接口)
- 网关地址:o0b.cn/opandy
- 传输协议:HTTPS POST/GET,推荐 POST(参数量大防截断)
- 返回格式:标准 JSON
- 鉴权体系:AppKey+AppSecret MD5 签名 + AccessToken OAuth2.0 双鉴权
- 适用权限
- 数据时效:仅返回近 180 天用户评价,超期无法查询
- 限流规则:个人基础权限 QPS=3;企业进阶 QPS=10;品牌高级 QPS=30;单 SKU 单次分页最大 50 条 / 页
本次项目核心使用jd.item_review商品评论接口。本次项目选用(如添加 Taobaoapi2014),无需店铺卖家权限,直接调用封装 API,一键获取已封装好的数据 API 采集,适合批量查询、中小卖家使用。
2. 公共请求参数(所有 JOS 接口通用)
| 参数名 | 类型 | 必填 | 说明 |
|---|
| method | String | 是 | 固定值:jd.item.review |
| app_key | String | 是 | 应用分配密钥 |
| access_token | String | 是 | OAuth 授权令牌 |
| timestamp | String | 是 | 请求时间戳,格式yyyy-MM-dd HH:mm:ss |
| format | String | 否 | 返回格式,固定json |
| v | String | 否 | 接口版本,固定2.0 |
| param_json | String | 是 | 业务入参 JSON 字符串(核心查询条件) |
| sign | String | 是 | 参数字典序 MD5 签名(app_secret 加密)
|
二、业务核心请求参数(param_json 内部)
json
{
"skuId": "100012345678",
"page": 1,
"pageSize": 20,
"sortType": 1,
"score": 0,
"commentType": 0,
"hasPic": 0
}
| 参数 | 类型 | 必填 | 取值 & 说明 |
|---|
| skuId | String | 是 | 京东商品 SKU 唯一编码,商品详情页 URL 可提取 |
| page | Int | 是 | 分页页码,从 1 开始 |
| pageSize | Int | 是 | 单页条数,范围 1~50,超过 50 强制截断为 50 |
| sortType | Int | 否 | 1 = 发布时间倒序(最新);2 = 点赞数降序(最热) |
| score | Int | 否 | 0 = 全部;1~5 = 仅筛选对应星级评价 |
| commentType | Int | 否 | 0 = 全部;1 = 好评;2 = 中评;3 = 差评 |
| hasPic | Int | 否 | 0 = 全部;1 = 仅带图 / 视频晒单评价
|
三、原始完整返回 JSON 示例(真实可复用)
json
{
"jd_item_review_response": {
"code": "0",
"msg": "success",
"result": {
"skuId": "100012345678",
"avgScore": 4.8,
"totalCount": 12680,
"goodCount": 11520,
"midCount": 860,
"badCount": 300,
"afterReviewCount": 1620,
"imageReviewCount": 4560,
"videoReviewCount": 890,
"hotCommentTagStatistics": [
{
"tagId": 1001,
"tagName": "物流速度快",
"tagCount": 6200
},
{
"tagId": 1002,
"tagName": "质量很好",
"tagCount": 5800
},
{
"tagId": 1003,
"tagName": "尺寸标准",
"tagCount": 3600
}
],
"comments": [
{
"commentId": 9876543210001,
"content": "商品做工精细,京东物流次日达,性价比很高,推荐购买",
"additionalContent": "用了一周再来追评,续航稳定没有发烫",
"creationTime": "2026-06-15 09:22:18",
"score": 5,
"commentType": 1,
"isAdditional": 1,
"hasPic": 1,
"hasVideo": 0,
"usefulVoteCount": 126,
"replyCount": 2,
"productColor": "深空灰",
"productSize": "16GB+512GB",
"pictures": [
"https://img10.360buyimg.com/n1/jfs/t1/289000/12/15678/23456/67aef123E9876abcd/123456789.jpg",
"https://img10.360buyimg.com/n1/jfs/t1/289000/12/15678/23457/67aef124E9876abcd/123456790.jpg"
],
"videos": [],
"userInfo": {
"nickname": "j***d",
"userLevel": 6,
"userLevelName": "钻石会员",
"isVip": 1,
"isBuyer": 1
},
"sellerReplies": [
{
"replyId": 5678901,
"replyContent": "感谢您的真实好评,我们会持续把控产品品质,祝您使用愉快",
"replyTime": "2026-06-15 10:05:33",
"replyType": 1
}
]
},
{
"commentId": 9876543210002,
"content": "屏幕轻微漏光,联系客服处理速度较慢",
"additionalContent": "",
"creationTime": "2026-06-14 16:10:05",
"score": 3,
"commentType": 2,
"isAdditional": 0,
"hasPic": 1,
"hasVideo": 1,
"usefulVoteCount": 43,
"replyCount": 1,
"productColor": "银色",
"productSize": "8GB+256GB",
"pictures": [
"https://img10.360buyimg.com/n1/jfs/t1/289000/13/15680/23460/67aef130E9876abcd/123456800.jpg"
],
"videos": [
"https://video.jd.com/xxx/abc123.mp4"
],
"userInfo": {
"nickname": "小***猫",
"userLevel": 3,
"userLevelName": "铜牌会员",
"isVip": 0,
"isBuyer": 1
},
"sellerReplies": [
{
"replyId": 5678902,
"replyContent": "非常抱歉给您带来不好体验,已安排专员联系您处理售后",
"replyTime": "2026-06-14 17:22:10",
"replyType": 1
}
]
}
],
"page": 1,
"pageSize": 20,
"totalPage": 634
}
}
}
四、返回全量字段说明
4.1 外层统计汇总模块(result 顶层)
| 字段 | 类型 | 说明 |
|---|
| skuId | String | 当前查询商品 SKU |
| avgScore | Float | 商品综合平均分(1~5) |
| totalCount | Int | 总评价条数 |
| goodCount | Int | 好评总数 |
| midCount | Int | 中评总数 |
| badCount | Int | 差评总数 |
| afterReviewCount | Int | 追评总数 |
| imageReviewCount | Int | 带图评价总数 |
| videoReviewCount | Int | 带视频评价总数 |
| hotCommentTagStatistics | Array | 商品高频评价标签统计 |
| page/pageSize/totalPage | Int | 分页元数据 |
| comments | Array | 单页评价列表核心数组
|
4.2 hotCommentTagStatistics 标签对象
| 字段 | 说明 |
|---|
| tagId | 标签唯一 ID |
| tagName | 评价标签文案 |
| tagCount | 提及该标签的评价数量
|
4.3 comments 单条评价主体
| 字段 | 类型 | 说明 |
|---|
| commentId | Long | 评价全局唯一主键(去重核心) |
| content | String | 用户初评正文 |
| additionalContent | String | 追评内容,无追评为空字符串 |
| creationTime | String | 评价发布时间 yyyy-MM-dd HH:mm:ss |
| score | Int | 星级 1~5 |
| commentType | Int | 1 好评 / 2 中评 / 3 差评 |
| isAdditional | Int | 0 普通评价 / 1 追评 |
| hasPic | Int | 0 无图 / 1 含图片 |
| hasVideo | Int | 0 无视频 / 1 含视频 |
| usefulVoteCount | Int | 点赞 / 有用投票数 |
| replyCount | Int | 商家回复条数 |
| productColor | String | 购买规格 - 颜色 |
| productSize | String | 购买规格 - 尺寸 / 版本 |
| pictures | Array<String> | 晒图完整 URL 数组 |
| videos | Array<String> | 晒短视频 URL 数组 |
| userInfo | Object | 脱敏用户信息 |
| sellerReplies | Array<Object> | 商家回复数组
|
4.4 userInfo 用户脱敏子对象
| 字段 | 说明 |
|---|
| nickname | 脱敏昵称(中间星号遮挡) |
| userLevel | 会员等级数字 |
| userLevelName | 会员等级文案(铜牌 / 钻石等) |
| isVip | 0 普通 / 1PLUS 会员 |
| isBuyer | 1 真实购买用户(无刷单)
|
4.5 sellerReplies 商家回复子对象
| 字段 | 说明 |
|---|
| replyId | 回复 ID |
| replyContent | 商家回复文本 |
| replyTime | 回复时间 |
| replyType | 1 官方商家回复
|
4.6 错误返回结构(异常场景)
json
{
"error_response": {
"code": 20001,
"zh_desc": "app_key不存在或未授权该接口",
"msg": "invalid app key"
}
}
常见错误码:
20001:AppKey 非法 / 无权限
20003:AccessToken 过期
30005:签名 sign 计算错误
40012:skuId 不存在
50001:接口调用超出 QPS 限流