1688 item_get API 一键获取商品信息实战指南

核心结论‌

通过 1688 开放平台的 item_get 接口,可‌一键获取商品全量信息‌(标题、价格、SKU、库存、批发价梯度、详情图等),需完成‌企业认证 + 应用创建 + 权限申请‌,使用 ‌HMAC-MD5 签名机制‌ 构建安全请求,支持 Python/Java 等语言调用,‌个人账号权限受限,企业账号可调用 5000 次/日‌。

一、接入前置条件(必做)‌

表格

步骤 操作说明 注意事项

  1. 账号类型‌ 必须使用‌企业开发者账号‌ 个人账号无法申请商品详情接口权限,审核直接驳回

  2. 实名认证‌ 使用‌企业支付宝‌完成营业执照认证 个人支付宝绑定将导致认证失败

  3. 创建应用‌ 登录 1688 开放平台 → 应用管理 → 创建应用 选择"自用型"应用,避免复杂 OAuth2 流程

  4. 获取凭证‌ 获取 app_key(公开)和 app_secret(保密) app_secret 严禁硬编码、禁止上传至 GitHub,建议使用环境变量存储

  5. 申请接口权限‌ 在应用详情页 → 接口权限 → 搜索并申请 item_get 申请理由必须写真实业务场景(如"ERP 同步库存"),禁止写"爬虫""数据采集"

✅ ‌关键提示‌:权限审核周期为 1--3 个工作日,建议提前申请。

二、接口核心参数与请求结构‌

表格

参数名 类型 必填 说明

method String 是 固定值:1688.item_get

app_key String 是 应用创建后获取的 App Key

timestamp String 是 格式:YYYY-MM-DD HH:MM:SS,与服务器时间误差 ≤10 分钟

v String 是 API 版本,固定为 2.0

sign_method String 是 固定为 md5

format String 是 返回格式,固定为 json

num_iid Long 是 1688 商品 ID(非链接,非 SKU)

sign String 是 ‌签名结果‌(见下文生成规则)

请求地址‌:

https://gw.api.1688.com/openapi/param2/1/1688.item_get/2.0

请求方式‌:推荐 ‌POST‌(避免 GET 参数截断)

三、签名生成算法(核心难点)‌

签名是调用失败的最常见原因。‌必须严格按以下步骤生成‌:

筛选参数‌:剔除 sign 和空值参数

排序‌:将剩余参数按 ‌参数名 ASCII 码升序‌ 排列(区分大小写)

拼接‌:格式为 key1=value1key2=value2...(无 &、无空格)

加盐‌:在拼接字符串‌前后‌拼接 app_secret

计算‌:对结果执行 ‌MD5‌ 哈希,转为‌大写十六进制字符串‌

Python 签名生成示例‌:

python

import hashlib

import time

def generate_sign(params, app_secret):

1. 筛选非空参数,排除 sign

filtered = {k: v for k, v in params.items() if v is not None and k != 'sign'}

2. 按 key 升序排序

sorted_keys = sorted(filtered.keys())

3. 拼接 key=value

param_str = ''.join(f"{k}{filteredk}" for k in sorted_keys)

4. 加盐:app_secret + param_str + app_secret

sign_str = app_secret + param_str + app_secret

5. MD5 + 大写十六进制

sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()

return sign

使用示例

params = {

'method': '1688.item_get',

'app_key': 'your_app_key',

'timestamp': time.strftime('%Y-%m-%d %H:%M:%S'),

'v': '2.0',

'sign_method': 'md5',

'format': 'json',

'num_iid': 610947572360

}

sign = generate_sign(params, 'your_app_secret')

params'sign' = sign

⚠️ ‌常见错误‌:

参数未排序(如 a=1&b=2 未转为 a1b2)

拼接时加了 & 或空格

app_secret 泄露或错误

时间戳超时(建议使用 NTP 同步时间)

四、返回数据结构(JSON 示例)‌

json

{

"item": {

"title": "【工厂直供】不锈钢保温杯 500ml 批发价低至8元",

"price": "8.00",

"price_range": "8.00-12.00",

"min_order_quantity": 100,

"stock": 5000,

"sku_list": [

{

"sku_id": "123456",

"spec": "颜色:蓝色,容量:500ml",

"price": "8.50",

"stock": 2000

}

],

"main_image": "https://img16.1688.com/xxx.jpg",

"detail_images": "https://img16.1688.com/xxx1.jpg", "...",

"seller": {

"shop_name": "XX五金批发厂",

"seller_id": "123456789"

},

"promotion": {

"discount": "满1000件享7折",

"freight": "包邮"

}

}

}

关键字段说明‌:

price_range:批发价区间(非单一价格)

min_order_quantity:最小起订量(MOQ)

sku_list:多规格库存与价格

detail_images:商品详情页图片列表

五、实战建议与避坑指南‌

调用频率限制‌:

个人账号:100 次/日

企业账号:5000 次/日(可申请升级至 50 次/秒)

超限将被临时封禁 24 小时

数据延迟‌:

cache=yes(默认)会返回缓存数据,如需实时库存,设为 cache=no

错误排查‌:

返回 {}:权限未开通或 num_iid 无效

返回 {"error_response":{"code":10001,"msg":"Invalid sign"}}:签名错误

返回 {"error_response":{"code":10002,"msg":"Insufficient permissions"}}:未申请接口权限

推荐工具‌:

使用 ‌Postman‌ 或 ‌Apifox‌ 测试接口,快速验证参数与签名逻辑

六、推荐学习资源(富媒体辅助)‌

相关推荐
梦想三三12 小时前
LangChain模型调用与多轮对话完整实战
阿里云·langchain·大模型·api
shawxlee14 小时前
vue3+axios挑战最简洁实用的配置封装+接口调用:请求拦截器、响应拦截器、通用请求方法(单个请求/并发请求/下载文件)、统一接口管理
前端·经验分享·vue·接口·axios·api
承渊政道3 天前
从模型接入到官网落地:我用蓝耘元生代和WorkBuddy完成了一次AI开发实践
api·网站开发·评估·蓝耘元生代·workbuddy·glm-5.2·模型接入
5G微创业4 天前
Python / Node.js 调用短视频去水印 API 完整示例(含 SDK)
python·node.js·音视频·api·sdk·短视频
用户7783366132114 天前
serpbase + GraphQL wrapper 实战:让 SERP 数据走 GraphQL schema
数据库·api
星核0penstarry5 天前
Coding Plan vs 运营商Token Plan:先选对赛道,再谈性价比
大模型·api
用户7783366132115 天前
4 种 SERP 监控告警方式对比:Slack / Email / Webhook / SMS
api
dogstarhuang7 天前
从 0 到 1 搭建可收费的 API 开放平台(实战)
java·架构·api
林小果17 天前
用 Codex 做一个 API 地址诊断器:Claude Code、Codex、Gemini CLI 的 /v1 排错实战
api·ai编程·codex·claude code·gemini cli·base url·linkagi