一、接口概述
淘宝开放平台提供的 taobao.item.get 接口,用于获取单个商品的详细信息。通过此接口,开发者可以获取商品的基础信息、库存规格、营销信息等。
接口地址
- HTTPS GET:https://eco.taobao.com/router/rest
核心参数
参数名称 | 是否必填 | 类型 | 描述 |
---|---|---|---|
method | 是 | String | 固定值 taobao.item.get |
num_iid | 是 | Long | 商品 ID,从商品详情页 URL 中提取 |
fields | 是 | String | 指定返回字段,如 title,price,desc |
timestamp | 是 | String | 请求时间戳,格式 YYYY-MM-DD HH:MM:SS ,与平台时间偏差需 ≤5 分钟 |
app_key | 是 | String | 应用的 App Key |
sign_method | 是 | String | 签名方法,固定值 md5 |
v | 是 | String | API 版本,固定值 2.0 |
format | 是 | String | 返回数据格式,固定值 json |
sign | 是 | String | 请求签名,用于验证请求的合法性 |
二、签名生成
淘宝 API 采用 MD5 签名机制,确保请求安全。签名生成步骤如下:
- 参数排序:除 sign 外所有参数按字典序排序。
- 拼接字符串:参数名 + 参数值拼接,首尾加 App Secret。
- MD5 加密:对拼接字符串进行 32 位大写 MD5 加密。
Python 签名示例
import hashlib
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
三、调用示例
以下是一个完整的 Python 调用示例,展示如何使用 taobao.item.get 接口获取商品详情。
1. 准备工作
- 安装 requests 库,用于发送 HTTP 请求。bash复制pip install requests
2. 完整代码示例
import requests
import hashlib
import time
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
def get_item_details(app_key, app_secret, num_iid):
url = "https://eco.taobao.com/router/rest"
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
params = {
"method": "taobao.item.get",
"app_key": app_key,
"timestamp": timestamp,
"format": "json",
"v": "2.0",
"sign_method": "md5",
"num_iid": num_iid,
"fields": "num_iid,title,price,pic_url,desc,skus,stock,promotion_price,activity_tag,ai_tag"
}
params["sign"] = generate_sign(params, app_secret)
response = requests.get(url, params=params)
data = response.json()
if "item_get_response" in data:
return data["item_get_response"]["item"]
else:
print("Error:", data.get("error_response", {}).get("msg", "未知错误"))
return None
# 示例调用
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
num_iid = "652874751412"
item_info = get_item_details(app_key, app_secret, num_iid)
if item_info:
print("商品标题:", item_info["title"])
print("价格:", item_info["price"])
print("主图链接:", item_info["pic_url"])
print("SKU信息:", item_info.get("skus", []))
3. 响应示例
成功调用接口后,返回的 JSON 数据示例如下:
{
"item_get_response": {
"item": {
"num_iid": "652874751412",
"title": "示例商品",
"price": "99.00",
"pic_url": "https://example.com/image.jpg",
"desc": "商品详细描述...",
"skus": [
{
"sku_id": "123456789",
"price": "99.00",
"quantity": 100,
"properties": "颜色:红色;尺码:M"
}
],
"stock": 100,
"promotion_price": "89.00",
"activity_tag": "限时折扣",
"ai_tag": "网红爆款"
}
}
}
四、字段选择策略
2025 年,taobao.item.get 接口新增了 AI 智能标签等字段,合理选择 fields 参数可以提升效率。以下是一些核心字段及其适用场景:
字段类别 | 核心字段示例 | 适用场景 | 权限要求 |
---|---|---|---|
基础信息 | num_iid,title,price,pic_url | 商品列表展示 | 个人 / 企业账号 |
库存规格 | skus,stock,specs | 库存管理、规格展示 | 企业账号 |
营销信息 | promotion_price,activity_tag | 促销活动对接 | 企业账号 |
AI 智能字段 | ai_tag (如 "网红爆款") | 智能选品、趋势分析 | 企业账号 |
详情内容 | desc,desc_images | 商品详情页展示 | 企业账号 最佳实践:按业务场景精确指定字段,例如选品工具可使用 fields=num_iid,title,price,ai_tag,stock,避免请求无关字段浪费配额。 |
五、最佳实践与注意事项
1. 调用频率控制
- 免费版 API 有调用频率限制(通常为 500 次/天)。
- 商业版可申请更高调用配额。
2. 数据缓存策略
- 对不常变的数据(如商品标题、图片)进行本地缓存。
- 对价格、库存等实时性要求高的数据设置较短缓存时间。
3. 异常处理建议
- 网络异常重试机制。
- 接口限流处理。
- 错误日志记录。
4. 安全注意事项
- 妥善保管 App Secret。
- 使用 HTTPS 协议传输。
- 对用户输入的 item_id 进行合法性校验。
- 通过本文的介绍和代码示例,开发者可以快速掌握淘宝商品详情接口的调用方法,在实际项目中集成淘宝商品数据。根据业务需求,可以进一步扩展功能,如商品搜索、订单同步等。
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。