💰 1688开放平台「免费」与「付费」接口全清单对比(附Python源码)
1688开放平台接口并非全部免费,但日常B2B对接(商品同步、采购订单、物流跟踪)涉及的API完全免费。只有高QPS资源包、实时库存锁定、跨境增值、数据洞察、消息推送属于付费/包年增值。下面给你权威分类清单 + 一个探测脚本判断你调的接口是否触及付费墙。
一、1688 API 费用分层速览
层级 | 代表接口 | 费用 | 触发条件 |
|---|---|---|---|
L1 基础免费 | 商品搜索/详情、订单查询/确认收货、物流轨迹 | ✅ 0元 | 任何实名企业应用默认可用,受QPS限制 |
L2 资源包(提频/进阶) | 同上接口提QPS(50/100/200)、高级库存快照 | 💰 包年(¥980~¥2980) | 免费QPS不够或需高级库存快照 |
L3 增值服务(真正收费) | 实时可售库存锁定、跨境洞察(HS/英文申报)、竞品数据、消息推送、ISV代发 | 💰 增值包/按量 | 未购买返回403 no permission |
✅ 中小企业在ERP中做商品主数据同步 + 自动建采购单 + 发货回写 = L1 零成本
二、免费 vs 付费接口全清单对比
✅ L1 免费接口(无需购买任何包)
功能域 | 接口名 | 说明 |
|---|---|---|
商品搜索 | alibaba.offer.search | 关键词/类目/价格区间搜索 |
商品详情 | alibaba.item.get | 含SKU、批发价、主图、详情HTML(需权限)、MOQ |
订单列表(买家) | alibaba.trade.buyer.list | 按状态查采购单 |
订单明细 | alibaba.trade.get | 单笔订单详情 |
发货物流查询 | alibaba.logistics.trade.ship | 运单号、物流公司 |
物流轨迹 | alibaba.logistics.trace.get | 签收状态+节点 |
确认收货 | alibaba.trade.confirmReceive | ERP入库后确认 |
类目查询 | alibaba.category.get | 叶子类目 |
💰 L2 资源包(付费提频/开进阶普通增值)
内容 | 说明 |
|---|---|
QPS提升 | 免费默认≈10/s搜索、20/s订单 → 包年可提50/100/200 |
高级库存快照 | sku_list[].amount_on_sale更精确(仍非锁定) |
多店铺授权 | 同应用绑定多1688买家账号 |
💰 L3 增值服务(需单独购买增值包)
功能域 | 接口/能力 | 未购现象 |
|---|---|---|
实时可售库存(锁定) | alibaba.product.stock.get(实时版) | 403 no permission |
跨境寻源增值 | 跨境商品字段(HS Code/EN Title/原产国)高级包 | 403 |
消息订阅推送 | 新订单/改价 Webhook(高级推送包) | 限免费版只能轮询 |
ISV代发/分单 | 增值代发API | 403 |
行业数据分析 | 供需指数/热搜词API | 403 |
三、Python:免费/付费接口探测脚本(判断你是否踩付费墙)
# ali1688_free_vs_paid_check.py
"""
探测脚本:
1. 调免费接口 alibaba.item.get → 期望成功
2. 调增值接口 alibaba.product.stock.get(实时库存) → 期望 403(未购)
若免费接口也403 → 检查 AppKey/Secret/OfferId
若增值接口返回数据 → 你已购增值包
"""
import hashlib
import time
import requests
import urllib.parse
from typing import Tuple, Optional
# 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex
class _ProbeClient:
def __init__(self, ak, as_, tk=None):
self.ak, self.as_, self.tk = ak, as_, tk
def _sign(self, p: dict) -> str:
f = sorted((k,v) for k,v in p.items()
if v is not None and str(v).strip()!='' and k!='sign')
s = ''.join(f"{k}{v}" for k,v in f)
return hashlib.md5(f"{self.as_}{s}{self.as_}".encode()).hexdigest().upper()
def _call(self, url, method, biz):
p = {"method":method,"app_key":self.ak,"timestamp":str(int(time.time()*1000)),
"format":"json","v":"2.0","sign_method":"md5"}
if self.tk: p["session"]=self.tk
p["param2" if "param2" in url or method=="alibaba.offer.search"
else "param"] = urllib.parse.quote_plus(str(biz).replace("'",'"'))
p["sign"]=self._sign(p)
r=requests.get(url,params=p,timeout=15)
r.raise_for_status()
d=r.json()
if "error_response" in d:
return None, (str(d["error_response"].get("code","")),
d["error_response"].get("msg",""))
k=[x for x in d if x!="error_response"][0]
return d[k], None
def check_free_paid(ak, as_, tk, offer_id="612345678901"):
c = _ProbeClient(ak, as_, tk)
gw = "https://gw.open.1688.com/openapi/http/2/1"
print("="*50)
print("🔎 1688 免费 vs 付费接口探测")
print("="*50)
# ── ① 免费 ──
print("\n① 测试 FREE → alibaba.item.get")
res, err = c._call(gw, "alibaba.item.get", {"item_id":offer_id, "fields":"item_id,title"})
if err:
print(f" ❌ 免费接口异常 [{err[0]}]: {err[1]}")
print(" → 确认 AppKey/AppSecret 正确且 offer_id 存在")
else:
title = res.get("alibaba_item_get_response",{}).get("item",{}).get("title","")
print(f" ✅ 免费接口正常!商品:{title[:20] if title else 'OK'}")
# ── ② 增值(实时库存) ──
print("\n② 测试 PAID → alibaba.product.stock.get (实时库存锁定)")
res, err = c._call(gw, "alibaba.product.stock.get", {"offer_id": offer_id})
if err:
cd,msg=err
if "403" in cd or "permission" in msg.lower():
print(f" ⚠️ 返回 403 — 这是正常的:**该接口属增值服务,未购买**")
print(" → 如需:登录 open.1688.com → 服务市场 → 购「实时库存/增值包」")
print(" → 免费替代:用 alibaba.item.get 返回的 sku_list[].amount_on_sale 作库存快照")
else:
print(f" ❓ 其他错误 [{cd}]: {msg}")
else:
print(" ✅ 增值包已开通!实时库存:", res)
print("\n📋 小结:")
print(" • 商品/订单/物流 = L1 免费,直接用于ERP对接 ✅")
print(" • QPS不足 → 买 L2 资源包(仍免费调用,仅提频+开高级快照)")
print(" • 实时库存锁定/跨境增值/推送 = L3 需购增值包 💰")
print("="*50)
# =================== 运行 ===================
if __name__=="__main__":
check_free_paid(
ak="YOUR_APP_KEY",
as_="YOUR_APP_SECRET",
tk="YOUR_ACCESS_TOKEN", # 商品可不传;订单类需传
offer_id="612345678901" # 替换真实商品ID测连通
)典型未购包输出:
② 测试 PAID → alibaba.product.stock.get (实时库存锁定) ⚠️ 返回 403 — 这是正常的:**该接口属增值服务,未购买** → 如需:登录 open.1688.com → 服务市场 → 购「实时库存/增值包」 → 免费替代:用 alibaba.item.get 返回的 sku_list[].amount_on_sale 作库存快照
四、什么时候才需要付费?
你的需求 | 建议 |
|---|---|
同步商品+创建采购单+查物流 | ✅ 不用买任何包(L1) |
商品同步频繁触QPS限制(>10/s搜索) | 买 L2 基础资源包 |
严格防超卖需实时库存锁定 | 买 L3 实时库存增值包 |
做跨境货源(HS Code/申报英文名)且免费字段不够 | 买 L3 跨境增值包 |
想收订单状态Webhook而非轮询 | 买 L3 消息推送包 |
五、一句话面试/方案总结
1688开放平台商品/订单/物流API调用免费(L1),QPS受限;实时库存锁定、跨境增值、数据推送、ISV代发属L3增值包需购买,未购调对应接口返回403。sku_list[].amount_on_sale可作免费库存快照参考,严格防超卖再考虑购包。
需要我补
alibaba.trade.create采购下单完整参数(含SKU ID/收货地址) 或 库存快照 vs 实时锁定两种防超卖方案对比 吗?