×

🧾《淘宝API并非全免费!基础免费额度+增值收费分层全曝光》(附Python源码)

万邦科技Lex 万邦科技Lex 发表于2026-07-31 10:23:01 浏览25 评论0

抢沙发发表评论

结论先拍:淘宝TOP的API不是“全免费”,而是三层结构——免费API(有日额度上限)+ 基础收费API(超免额按量,塔内¥0.02/百次、塔外¥0.20/百次)+ 增值API(塔内¥0.06/百次、塔外禁止调用且需签增值协议)。中小自研ERP在日调用数万次以内通常落在免费额度里=0元;一旦超免额或碰CRM/数据罗盘,账单和权限墙会同时出现。


一、官方收费分层(2026现行《开放平台技术服务费规则》)

层级
代表接口
是否收费
收费标准(超免费额度后)
关键约束
免费API
taobao.item.getitems.onsale.getlogistics.trace.gettaobao.tbk.*(淘宝客)
✅ 免调用费
日调用额度(个人数百~数千/天,企业数万~百万/天,视应用等级)
超日额度触发限流或转入基础计费口径
基础收费API
trades.sold.gettrades.sold.increment.gettrade.fullinfo.getitems.inventory.getlogistics.online.send
💰 超免额按量
塔内¥0.02/百次/AppKey塔外¥0.20/百次/AppKey
按月实际调用量结算,无包月
增值API
crm.members.get(RFM/会员洞察)、数据罗盘、竞品行业大盘、营销权益类
💰 按量+签约
塔内¥0.06/百次/AppKey塔外❌禁止(未经平台允许不许调)
必须聚石塔内+签《增值接口协议》+购对应增值包
菜鸟物流接口
物流流转查询
💰 按量
塔内¥0.02/百次,塔外¥0.20/百次
同基础API档
物流异常-菜鸟
异常查询
💰 按量
塔内¥0.10/百次,塔外¥0.50/百次

DSS订单同步服务
推送至塔内RDS
💰 按订单量
¥0.12/百单(历史曾0.06,现执行0.12)
欠费按天逐级限流/停推
官方原文锚点:基础API塔内0.02/外0.2,增值API塔内0.06/外0.6且“增值API未经过平台允许禁止聚石塔外调用”

二、免费额度到底“免多少”

官方不对外承诺固定数字,但实际运行中:
  • 个人开发者:日免费调用约 数百~数千次,调订单类极易触线。

  • 企业自研(已实名+店铺授权):日免费额度常见 5万~100万次/AppKey,取决于应用等级、是否入塔、店铺体量。

  • 免费API(商品/淘宝客/物流轨迹):在免额内零费;淘宝客本身免调用费,成交后阿里妈妈抽佣。

  • 控制台路径:开放平台→统计分析→API调用量,能看到“当日已免额/已计费”水位。

误区:“淘宝API免费”= 只对了前半句。免费的是‘额度内基础读’,订单增量高频跑、会员RFM、罗盘洞察,全在计费或禁调区。

三、什么时候开始花钱(算账)

单店ERP做订单增量同步,假设日调 trades.sold.increment.get 1万次(5分钟一轮+明细补全):
  • 月调用 30万次

  • 企业免额按 8万/天 = 240万/月 → 30万 < 240万,0元

  • 若日调 10万次(大促或10店轮询)→ 月300万 > 240万免额 → 超60万次 × 0.02/百次(塔内) = ¥120/月

  • 同上若傻到塔外跑 → 60万次 × 0.20/百次 = ¥1200/月(10倍)

增值场景:自研CRM拉会员RFM,日调 crm.members.get 5000次(塔内必须)
  • 月15万次 × 0.06/百次 = ¥90/月 + 必须签增值包/冻资/入塔

  • 塔外调 → 直接 no permission / 非聚石塔调用,不是扣费是拦截


四、Python:免费/计费分层探测 + 用量预警

# top_fee_lens.py
"""
淘宝TOP API 收费分层自检
- 按接口名归类 免费 / 基础收费 / 增值
- 注入当日已用调用量 + 估计日免额 → 判断是否触计费线
- 捕获 limited-by / no permission 特征
"""
import hashlib, time, requests
from typing import Dict

# 接口分层表(按需补全)
FREE_APIS = {"taobao.item.get","taobao.items.onsale.get","taobao.logistics.trace.get",
             "taobao.tbk.dg.material.optional","taobao.tbk.item.info.get"}
BASE_APIS = {"taobao.trades.sold.get","taobao.trades.sold.increment.get",
             "taobao.trade.fullinfo.get","taobao.items.inventory.get",
             "taobao.logistics.online.send"}
VALUE_APIS = {"taobao.crm.members.get","taobao.crm.member.info.get",
              "taobao.data.roofd.*","taobao.ju.data.*"}  # 罗盘/竞品类按前缀匹配

def classify(method: str) -> str:
    if method in FREE_APIS: return "free"
    if method in BASE_APIS: return "base"
    if method in VALUE_APIS or method.startswith(("taobao.crm.", "taobao.data.")):
        return "value"
    return "base"  # 未知默认按基础谨慎处理

class TopFeeLens:
    IN_BASE = 0.02/100
    OUT_BASE = 0.20/100
    IN_VALUE = 0.06/100

    def __init__(self, app_key, app_secret, in_tower: bool,
                 est_free_daily: int = 80_000):
        self.ak = app_key; self.ask = app_secret
        self.in_tower = in_tower
        self.free_daily = est_free_daily
        self.today_base_calls = 0

    def _sign(self, p):
        f = sorted((k,v) for k,v in p.items() if k!="sign" and v is not None and str(v)!="")
        qs = "".join(f"{k}{v}" for k,v in f)
        return hashlib.md5(f"{self.ask}{qs}{self.ask}".encode()).hexdigest().upper()

    def pre_check(self, method: str):
        tier = classify(method)
        if tier == "free":
            return f"✅ {method} 属免费API,免额内0元(注意日总调用上限)"
        if tier == "value":
            if not self.in_tower:
                raise PermissionError(f"❌ {method} 增值API禁止塔外调用,必须聚石塔内+签增值协议")
            return f"💰 {method} 增值API 塔内¥0.06/百次,需签约增值包"
        # base
        if self.today_base_calls >= self.free_daily:
            unit = self.IN_BASE if self.in_tower else self.OUT_BASE
            return f"⚠️ 超免额,按量{unit*100:.3f}元/百次(塔{'内' if self.in_tower else '外'})"
        remain = self.free_daily - self.today_base_calls
        return f"✅ 基础API在免额内(剩{remain}次),0元"

    def call(self, method, biz, token=None, max_retry=3):
        tip = self.pre_check(method)
        print(tip)
        if tip.startswith("❌"):
            raise PermissionError(tip)
        params = {"method":method,"app_key":self.ak,
                  "timestamp":str(int(time.time()*1000)),"format":"json",
                  "v":"2.0","sign_method":"md5"}
        if token: params["access_token"]=token
        params.update(biz); params["sign"]=self._sign(params)
        for att in range(max_retry):
            r = requests.post("https://gw.api.taobao.com/router/rest", data=params, timeout=15)
            d = r.json()
            if "error_response" in d:
                err = d["error_response"]
                sub = err.get("sub_code","")
                msg = err.get("msg","")
                if "limited-by-app-access-count" in sub or "FLOW_CONTROL" in sub:
                    self.today_base_calls = self.free_daily + 1  # 标记已超免额
                    time.sleep(2**att); continue
                if "no permission" in msg and classify(method)=="value":
                    raise PermissionError("❌ 增值API无权限:未签增值协议/未入塔")
                raise Exception(f"{sub}: {msg}")
            self.today_base_calls += 1
            return d
        raise RuntimeError("retry exhausted")

if __name__ == "__main__":
    lens = TopFeeLens("AK", "AS", in_tower=True, est_free_daily=80_000)
    # 场景1:商品查询(免费)
    print(lens.pre_check("taobao.item.get"))
    # 场景2:订单增量(基础,免额内)
    print(lens.pre_check("taobao.trades.sold.increment.get"))
    # 场景3:CRM会员(增值,塔内)
    print(lens.pre_check("taobao.crm.members.get"))
    # 场景4:CRM会员(增值,塔外模拟)
    lens2 = TopFeeLens("AK","AS", in_tower=False)
    try:
        print(lens2.pre_check("taobao.crm.members.get"))
    except PermissionError as e:
        print(e)
跑出来逻辑:
  • item.get → ✅ 免费API

  • trades.sold.increment.get → ✅ 基础在免额内 / ⚠️ 超免额按量

  • crm.members.get 塔内 → 💰 增值0.06/百次

  • crm.members.get 塔外 → ❌ 禁止调用


五、避坑三条

  1. “淘宝客免费”但有限tbk.* 免调用费,但日调用上限按账号等级(初级~10万/高级~100万),且成交抽佣不是平台收你API费,是阿里妈妈收商家佣金,两码事。

  2. 免额不是“企业一律100万/天”:应用刚创建、无入塔、无店铺授权,免额可能只有几千;入塔+企业实名+自研标签才会放大到数十万级。

  3. 增值API的墙是“权限墙”不是“价格墙”:塔外调CRM不是贵10倍,是返回 no permission,必须先做三件事——入聚石塔、交MRD、签增值协议购包,否则¥0.06/百次这价都摸不到。

一句话收口:淘宝API的免费只覆盖“额度内的基础读”,订单高频同步超免额才按0.02/百次(塔内)计费,会员/罗盘类连计费入口都要先签协议入塔;做ERP时把“日调用量 vs 估计免额”做成启动自检,比事后看账单有用十倍。
要不要我把上面 TopFeeLens 改成读控制台导出的CSV调用日志 → 自动判定各AppKey是否触免额线 + 预估月度账单(塔内/塔外对照),直接嵌进中台调度器每天早上报一次?


群贤毕至

访客