京东商品数据 API
按关键词搜索京东商品、获取单个商品的详情与准确价格,适用于比价、找供应商、选品等场景。无需自己维护采集程序,一个 HTTP 请求即可拿到结构化 JSON 数据。
| 接口 | 地址 | 价格 |
|---|---|---|
| 商品搜索 | GET /v1/jd/search | ¥0.40 / 次 |
| 商品详情 | GET /v1/jd/item-detail | ¥0.35 / 次 |
Base URL:
https://api.askhong.com · 所有接口返回 JSON(UTF-8) · 只有成功返回数据才扣费,失败不扣费快速开始
1. 向管理员获取你的 API Key(形如 jdk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx),并充值余额。
2. 发起一次搜索:
curl --max-time 120 -G 'https://api.askhong.com/v1/jd/search' \
--data-urlencode 'keyword=螺丝' \
--data-urlencode 'key=YOUR_API_KEY'
中文等非 ASCII 参数需要 URL 编码(如上用 --data-urlencode;Python requests / 浏览器 fetch 会自动编码)。
3. 从结果中取出商品编号 wareId,查询该商品的详情与准确价格:
curl --max-time 120 'https://api.askhong.com/v1/jd/item-detail?itemId=100188556171&key=YOUR_API_KEY'
搜索结果中的价格是列表展示价,可能含补贴、券后价或广告位价格,与商品详情页的价格可能不一致。比价时请以「商品详情」接口返回的
priceInfo.jdPrice 为准。你可以在 客户中心 用 API Key 登录,查看余额、每一次调用的扣费记录,以及在线充值。
鉴权
每个请求都需要携带 API Key,以下三种方式任选其一:
| 方式 | 示例 |
|---|---|
| 请求头(推荐) | X-API-Key: YOUR_API_KEY |
| Bearer Token | Authorization: Bearer YOUR_API_KEY |
| Query 参数 | ?key=YOUR_API_KEY |
请妥善保管 API Key,不要放在网页前端代码中。如果泄露,请联系管理员重置,旧 Key 会立即失效。
计费规则
- 按次计费,从账户余额中扣除:商品搜索 ¥0.40/次,商品详情 ¥0.35/次。
- 只有
code = 0(成功返回数据)才扣费。参数错误、采集失败、超时、限流等所有失败情况都不扣费。 - 每次成功调用的响应中会带上本次扣费
charge和剩余余额balance(单位:元)。 - 余额不足一次调用的价格时,请求会被拒绝(错误码
40201),请先充值。
返回格式与错误码
所有接口返回统一结构,请通过返回体中的 code 字段判断结果,code = 0 表示成功:
{
"code": 0, // 0 = 成功,其他见下表
"message": "success",
"data": { ... }, // 业务数据,失败时为 null
"requestId": "9f3c1a2b7e4d5c60", // 请求编号,排查问题时提供给我们
"charge": "0.40", // 本次扣费(元),仅成功时返回
"balance": "9.60" // 扣费后余额(元),仅成功时返回
}
| code | HTTP 状态 | 说明 | 处理建议 |
|---|---|---|---|
| 0 | 200 | 成功 | - |
| 40001 | 400 | 参数错误(缺少必填参数或格式不对) | 检查参数 |
| 40101 | 401 | 缺少 API Key | 按「鉴权」携带 Key |
| 40102 | 401 | API Key 无效 | 检查 Key 是否正确,是否已被重置 |
| 40201 | 402 | 余额不足 | 充值后重试 |
| 40301 | 403 | API Key 已停用 | 联系管理员 |
| 40302 | 403 | 该接口暂未开放 | 联系管理员 |
| 40401 | 404 | 接口不存在 | 检查请求路径 |
| 40402 | 404 | 商品不存在或已下架 | 检查 itemId |
| 42901 | 429 | 请求过于频繁 | 降低频率,稍后重试 |
| 50201 | 502 | 数据采集失败 | 直接重试即可,通常重试 1~2 次能成功 |
| 50202 | 502 | 数据源返回错误 | 稍后重试 |
| 50301 | 503 | 服务暂不可用 | 稍后重试,持续出现请联系管理员 |
| 50401 | 504 | 数据源超时 | 重试 |
| 50001 | 500 | 内部错误 | 联系管理员并提供 requestId |
以上所有非 0 的情况均不扣费。
限流与超时
- 默认每个 API Key 每分钟最多 30 次请求,超出返回
42901。如需更高频率请联系管理员。 - 数据实时采集,单次请求通常 2~15 秒返回,偶尔更久。请把客户端超时设置为 120 秒(至少 60 秒)。
- 服务端已对「采集失败」做了自动重试;若仍返回
50201,请稍后再次请求。
商品搜索
按关键词搜索京东商品(含广告位商品),支持类目筛选、分页、排序、价格区间和品牌筛选。用于发现商品和店铺、初步比较价格。
GEThttps://api.askhong.com/v1/jd/search¥0.40 / 次(成功才扣)
也支持 POST,参数以 JSON 或表单形式放在请求体中。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
keyword | string | 是 | 搜索关键词,例如 螺丝、iPhone 17。即使指定了类目也必须填写。 |
page | string | 否 | 页码,从 1 开始。每页约 10~30 条。 |
sort | string | 否 | 排序:0 综合 1 销量 2 价格从高到低 3 价格从低到高 6 评论数 |
priceInterval | string | 否 | 价格区间,格式 最低-最高,例如 0-100 |
brand | string | 否 | 品牌名称,例如 iPhone、固万基 |
cid | string | 否 | 京东类目 ID,用于按类目筛选(可从搜索结果的 catid 获得) |
cidLevel | string | 否 | 类目层级:1 一级 2 二级 3 三级 |
key | string | 见鉴权 | 你的 API Key(也可放在请求头) |
代码示例
curl --max-time 120 -G 'https://api.askhong.com/v1/jd/search' \
-H 'X-API-Key: YOUR_API_KEY' \
--data-urlencode 'keyword=螺丝' \
--data-urlencode 'sort=3' \
--data-urlencode 'priceInterval=0-100'
import requests
API_BASE = "https://api.askhong.com"
API_KEY = "YOUR_API_KEY"
resp = requests.get(
f"{API_BASE}/v1/jd/search",
params={"keyword": "螺丝", "sort": "3", "page": "1"},
headers={"X-API-Key": API_KEY},
timeout=120,
)
body = resp.json()
if body["code"] == 0:
for item in body["data"]["wareInfo"]:
print(item["wareId"], item["wname"], item["jdPrice"])
print("本次扣费", body["charge"], "剩余余额", body["balance"])
elif body["code"] == 50201:
print("采集失败,请重试(未扣费)")
else:
print("失败:", body["code"], body["message"])
const API_BASE = "https://api.askhong.com";
const API_KEY = "YOUR_API_KEY";
const url = new URL(API_BASE + "/v1/jd/search");
url.searchParams.set("keyword", "螺丝");
url.searchParams.set("sort", "3");
const resp = await fetch(url, {
headers: { "X-API-Key": API_KEY },
signal: AbortSignal.timeout(120000),
});
const body = await resp.json();
if (body.code === 0) {
for (const item of body.data.wareInfo) {
console.log(item.wareId, item.wname, item.jdPrice);
}
} else {
console.error(body.code, body.message);
}响应示例(节选)
{
"code": 0,
"message": "success",
"data": {
"wareCount": 811,
"curPage": "1",
"hasNextPage": true,
"wareInfo": [
{
"wareId": "100188556171",
"spuId": "100188556169",
"wname": "固万基(GUWANJI)螺丝组合套装 主机电脑固态硬盘电子数码小螺丝钉 台式电脑螺丝套装15种[1盒]",
"jdPrice": "¥11.5",
"toCPrice": "11.50",
"priceTag": "已补¥2.02",
"good": "99%好评",
"reviews": "2万+条评价",
"shopId": "1000450829",
"venderId": "1000450829",
"self": true,
"catid": "14132",
"imageurl": "https://m.360buyimg.com/mobilecms/s534x534_jfs/t1/432956/....jpg"
}
]
},
"requestId": "9f3c1a2b7e4d5c60",
"charge": "0.40",
"balance": "9.60"
}
主要字段说明
| 字段 | 说明 |
|---|---|
data.wareCount | 搜索结果总数 |
data.curPage / data.hasNextPage | 当前页码 / 是否还有下一页 |
data.wareInfo[] | 商品列表 |
wareId | 商品编号(SKU ID),用于调用「商品详情」接口的 itemId;商品链接为 https://item.jd.com/{wareId}.html |
spuId | 商品 SPU 编号(同款不同规格共用) |
wname | 商品标题 |
jdPrice | 列表展示价(带 ¥ 符号的字符串) |
toCPrice | 展示价的数字形式(字符串) |
priceTag | 价格标签,例如「京东价」「已补¥2.02」 |
good / reviews | 好评率 / 评价数量 |
shopId / venderId | 店铺 ID / 商家 ID |
shopName | 店铺名称(部分商品为空,可通过商品详情获取) |
self | 是否京东自营 |
catid | 三级类目 ID |
imageurl | 商品主图 |
adIconDescribe | 有值(如「广告商品」)表示该条是广告位 |
搜索结果包含广告位商品,同一商品可能出现多次。列表价不等于实际售价,请用「商品详情」获取准确价格。
商品详情
按商品编号获取单个京东商品的准确价格、店铺、品牌、规格型号、参数和图片等。
GEThttps://api.askhong.com/v1/jd/item-detail¥0.35 / 次(成功才扣)
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
itemId | string | 是 | 商品编号(纯数字),即搜索结果中的 wareId,或商品链接 item.jd.com/100188556171.html 中的数字 |
key | string | 见鉴权 | 你的 API Key(也可放在请求头) |
代码示例
curl --max-time 120 'https://api.askhong.com/v1/jd/item-detail?itemId=100188556171' \
-H 'X-API-Key: YOUR_API_KEY'
import requests
resp = requests.get(
"https://api.askhong.com/v1/jd/item-detail",
params={"itemId": "100188556171"},
headers={"X-API-Key": "YOUR_API_KEY"},
timeout=120,
)
body = resp.json()
if body["code"] == 0:
d = body["data"]
print("价格:", d["priceInfo"]["jdPrice"])
print("店铺:", d["shop_infos"]["shopName"])
print("品牌:", d["itemOnly"]["brandName"])
print("型号:", d["itemInfo"]["product"]["model"])
else:
print("失败:", body["code"], body["message"])
const resp = await fetch(
"https://api.askhong.com/v1/jd/item-detail?itemId=100188556171",
{ headers: { "X-API-Key": "YOUR_API_KEY" }, signal: AbortSignal.timeout(120000) }
);
const body = await resp.json();
if (body.code === 0) {
const d = body.data;
console.log(d.priceInfo.jdPrice, d.shop_infos.shopName, d.itemInfo.product.skuName);
} else {
console.error(body.code, body.message);
}响应示例(节选)
{
"code": 0,
"message": "success",
"data": {
"priceInfo": {
"skuId": 100188556171,
"jdPrice": 13.52,
"kaPrice": 11.42,
"productPrice": { "jdPrice": 13.52, "marketPrice": 23.65, "kaPrice": 11.42 }
},
"shop_infos": {
"shopId": 1000450829,
"shopName": "固万基(GUWANJI)京东自营旗舰店",
"venderId": 1000450829,
"url": "https://shop.m.jd.com/shop/home?shopld=1000450829"
},
"itemOnly": {
"skuId": "100188556171",
"brandName": "固万基(GUWANJI)",
"newColorSize": [
{ "skuId": "100188556181", "color": "螺丝套装B款18种[1盒]" },
{ "skuId": "100188556171", "color": "台式电脑螺丝套装15种[1盒]" }
]
},
"itemInfo": {
"product": {
"skuId": "100188556171",
"skuName": "固万基(GUWANJI)螺丝组合套装 主机电脑固态硬盘电子数码小螺丝钉 台式电脑螺丝套装15种[1盒]",
"brandName": "固万基(GUWANJI)",
"model": "螺丝组合套装",
"color": "台式电脑螺丝套装15种[1盒]",
"category": "14065,14130,14132",
"shopId": "1000450829"
}
},
"products_introduction": [
{ "groupName": "主体参数", "atts": [ { "attName": "类型", "vals": ["螺丝套装"] }, { "attName": "规格", "vals": ["15种"] } ] }
],
"img_list": ["http://img13.360buyimg.com/n12/jfs/t1/310140/....jpg"],
"description": "<style>...商品详情 HTML..."
},
"requestId": "4be0a7d2c9f13e85",
"charge": "0.35",
"balance": "9.25"
}
主要字段说明
| 字段 | 说明 |
|---|---|
priceInfo.jdPrice | 京东价(准确售价,数字,单位元),比价请用这个字段 |
priceInfo.kaPrice | 到手价/会员价等优惠价(如有) |
priceInfo.productPrice.marketPrice | 市场价/划线价 |
shop_infos.shopName / shopId / venderId | 店铺名称 / 店铺 ID / 商家 ID |
itemOnly.brandName | 品牌 |
itemOnly.newColorSize[] | 同款的其他规格(每项含 skuId 和规格名),可用这些 skuId 再次查询详情 |
itemInfo.product.skuName | 完整商品标题 |
itemInfo.product.model | 型号 |
itemInfo.product.color / size | 当前所选规格 |
itemInfo.product.category | 一/二/三级类目 ID |
products_introduction[] | 规格参数(分组,每组 atts 含参数名与参数值) |
img_list[] | 商品图片 |
description | 商品详情介绍(HTML) |
商品编号不存在、已下架或格式不对时,返回失败(不扣费)。
查询余额
查询当前 API Key 的剩余余额,免费。
GEThttps://api.askhong.com/v1/account/balance免费
curl 'https://api.askhong.com/v1/account/balance' -H 'X-API-Key: YOUR_API_KEY'
{ "code": 0, "message": "success", "data": { "name": "你的账户名", "balance": "9.25" }, "requestId": "..." }
如有问题,请联系管理员并提供请求返回的 requestId。