🗺️《2026电商开放平台"收费地图":CTO选型前必看的九家API决策树》(附Python源码)
一、九家收费地图(2026现行,一张表看清)
平台 | 计费基因 | 云内单价 | 云外 | 免额/预充值 | 敏感禁外 | 认证门槛 |
|---|---|---|---|---|---|---|
淘宝TOP | 免额内0+超量按量 | 基础¥0.02/百次,增值¥0.06 | ×10(0.20/0.60) | 企业日免额8万 | ✅ 增值/解密 | 个人可读,写需企业 |
1688 | 年包摊销 | ¥0(QPS10) | ×10 | 资源包¥980~2980/年 | 高级库存需包 | 个人读受限 |
京东JOS | 免额内0+超量按量 | ¥0.05/百次 | ×3~×10 | 企业日免额 | 部分 | 个人仅沙箱 |
拼多多 | 预充值按量 | 基础¥0.01,增值¥0.03 | ×10 | 预充值,欠费硬断 | ✅ 增值/解密 | 个体自用/企业ISV |
抖店 | 预充值按量 | 基础¥0.018,增值¥0.05 | ×10 | 预充值 | ✅ 增值/解密+发布7.1收费 | 企业+保证金 |
苏宁 | 免额内0+超量 | ~¥0.03/百次 | ×3+ | 日免额1万 | — | 企业 |
微店 | 轻量免费 | ¥0(QPS5) | — | 重同步买包 | — | 企业为主 |
快手 | 参考抖系 | ~¥0.018/百次 | ×10 | 测试Key | 参考 | 企业 |
亚马逊SP-API | 已取消(2026.05) | $0 | $0 | 原拟撤 | IAM主体 | IAM+LWA(无个人号) |
四档归类(决定你的成本模型):
A档按量云内外差价:淘宝/拼/抖/京东/苏宁/快手 —— 云内是命门,云外×10是成本杀手
B档年包摊销:1688 —— 不按次扣,提频+实时库存才买包
C档当前免费:亚马逊($0但留Basic 2.5M容量警戒)、微店 —— 省的是调用费,花的是架构
D档预充值欠费硬断:拼多多/抖店 —— 不是贵,是断了就停服,必须本地计数器兜底
二、CTO选型决策树(照着走不踩坑)
Q1: 你的主体是什么? ├─ 个人/只想爬公开数据 → 淘宝/1688读(限频严)→ 不进中台,爬虫方案 ├─ 个体户/管自己店 → 拼多多自用型 + 淘宝实人 + 抖店(部分) └─ 企业(多数CTO场景) → 进入Q2 Q2: 你需要调"交易/库存/解密/发布"吗? ├─ 否(只展示/比价) → 用基础免费额度,成本≈¥0 └─ 是 → 进入Q3 Q3: 你的日调用量级?(单店合计,云内部署) ├─ <1万次/天 → 几乎全在免额内,月费¥0~¥5 → 任意平台 ├─ 1万~50万次/天 → 进入Q4看云内/年包 ├─ >50万次/天 → 必须推送替轮询+多Key分桶,进入Q5 └─ 铺货型(日上新>1000) → 抖店发布费单独算,进入Q5 Q4: 成本敏感 vs 稳定性敏感? ├─ 成本敏感 → 优先A档免额内(淘宝/京东)+B档年包(1688) ├─ 稳定性敏感(大促/防超卖) → 1688必须买实时库存包,拼/抖必须预充值充足 └─ 跨境 → 亚马逊(免费但IAM)+eBay,进入Q5 Q5: 部署方式? ├─ 云内(聚石塔/抖店云/拼多多云/京东云) → 享受×1价格+敏感接口可用 ✅ ├─ 云外(IDC/跨云) → 自动×10,且拼/抖敏感接口403 → ❌ 必须迁云 └─ 未定 → 先算云内迁移TCO(见源码)
三、三年TCO模型(选型前必算)
TCO_3年 = ① API按量费(3年) + ② 年包摊销(1688/微店, 3年) + ③ 云资源ECS(3年, 云内vs云外差价) + ④ 超量敞口(亚马逊若复活, 3年) + ⑤ 架构人力(推送改造/多Key/本地计数器等一次性投入)
四、Python:PlatformTcoDecisionTree(九家选型决策+三年TCO)
# platform_tco_decision_tree.py
"""
2026电商开放平台收费地图 + CTO选型决策树 + 三年TCO测算
- 九家收费参数(2026现行)
- 决策树: 主体→接口族→调用量→成本/稳定→部署
- 三年TCO: API费 + 年包 + 云资源 + 超量敞口 + 架构人力
"""
from dataclasses import dataclass
from typing import Dict, Optional
# 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex
# ==================== 九家收费参数 ====================
PLATFORMS = {
"taobao": {"gene":"A","base_in":0.02/100,"base_out":0.20/100,"val_in":0.06/100,
"free_daily":80_000,"cloud_x":10,"prepaid":False,"sensitive_forbid":True},
"1688": {"gene":"B","base_in":0.0,"pack_year":1980,"qps_free":10,
"real_stock_pack":True,"cloud_x":10,"prepaid":False},
"jd": {"gene":"A","base_in":0.05/100,"base_out":0.15/100,
"free_daily":50_000,"cloud_x":3,"prepaid":False,"sensitive_forbid":False},
"pdd": {"gene":"D","base_in":0.01/100,"base_out":0.10/100,"val_in":0.03/100,
"free_daily":0,"cloud_x":10,"prepaid":True,"sensitive_forbid":True},
"douyin": {"gene":"D","base_in":0.018/100,"base_out":0.18/100,"val_in":0.05/100,
"free_daily":0,"cloud_x":10,"prepaid":True,"sensitive_forbid":True,
"publish_fee":0.018/100}, # 2026.7起
"suning": {"gene":"A","base_in":0.03/100,"base_out":0.10/100,
"free_daily":10_000,"cloud_x":3.3,"prepaid":False},
"weidian": {"gene":"C","base_in":0.0,"pack_year":0,"cloud_x":1,"prepaid":False},
"kuaishou":{"gene":"A","base_in":0.018/100,"base_out":0.18/100,
"free_daily":10_000,"cloud_x":10,"prepaid":False},
"amazon": {"gene":"C","base_in":0.0,"proposed_over":0.40/1000,
"basic_get_per_key_month":2_500_000,"cloud_x":1,"prepaid":False,
"cancelled":True},
}
@dataclass
class ShopProfile:
platform: str
daily_calls: int # 日调用量(云内口径)
in_cloud: bool = True
is_value: bool = False # 是否增值/解密
publish_daily: int = 0 # 抖店发布次数/天
years: int = 3
def api_monthly(prof: ShopProfile) -> float:
"""单平台月度API费"""
p = PLATFORMS[prof.platform]
monthly = prof.daily_calls * 30
if p["gene"] == "B": return 0.0 # 1688按年包
if p["gene"] == "C": return 0.0 # 免费
if p["gene"] == "D" and prof.daily_calls == 0: return 0.0
unit = p["val_in"] if prof.is_value else p["base_in"]
if not prof.in_cloud: unit = p["base_out"]
# A/D档: 超免额才计费
free = p.get("free_daily", 0)
over = max(0, monthly - free)
fee = over * unit
# 抖店发布费
if prof.platform == "douyin" and prof.publish_daily > 0:
fee += prof.publish_daily * 30 * p["publish_fee"]
return fee
def tco_3year(profiles: list, ecs_yearly: float = 3000,
arch_one_time: float = 0) -> Dict:
"""三年TCO汇总"""
api_3y = sum(api_monthly(pr) * 12 * pr.years for pr in profiles)
# 年包(1688): 按店铺数×年费×年数
pack_3y = sum(PLATFORMS[pr.platform].get("pack_year", 0) * pr.years
for pr in profiles if PLATFORMS[pr.platform]["gene"] == "B")
ecs_3y = ecs_yearly * 3
# 亚马逊超量敞口(若原拟复活, 按Basic 2.5M/Key满算保守估计)
amazon_over_3y = 0.0
for pr in profiles:
if pr.platform == "amazon":
over_month = max(0, pr.daily_calls * 30 - PLATFORMS["amazon"]["basic_get_per_key_month"])
amazon_over_3y += over_month * 12 * 3 * PLATFORMS["amazon"]["proposed_over"]
total = api_3y + pack_3y + ecs_3y + amazon_over_3y + arch_one_time
return {
"api_fee_3y": round(api_3y, 2),
"pack_3y": round(pack_3y, 2),
"ecs_3y": round(ecs_3y, 2),
"amazon_over_exposure_3y": round(amazon_over_3y, 2),
"arch_one_time": arch_one_time,
"total_tco_3y": round(total, 2),
"breakdown": {
"api_pct": round(api_3y/total*100, 1) if total else 0,
"pack_pct": round(pack_3y/total*100, 1) if total else 0,
"ecs_pct": round(ecs_3y/total*100, 1) if total else 0,
},
}
# 封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex
# ==================== 决策树 ====================
def decide(prof: ShopProfile, entity: str = "enterprise") -> Dict:
"""CTO选型决策树"""
p = PLATFORMS[prof.platform]
steps = []
# Q1 主体
if entity == "personal" and prof.platform not in ("taobao","1688"):
steps.append(f"⚠️ {prof.platform}个人号基本不可用,需企业主体")
return {"verdict": "reject", "steps": steps}
steps.append(f"Q1主体={entity}: ✅")
# Q2 接口族
if prof.is_value and not p["sensitive_forbid"]:
steps.append("Q2增值接口: 该平台不限,可继续")
elif prof.is_value and not prof.in_cloud and p["sensitive_forbid"]:
steps.append(f"🚫 {prof.platform}敏感接口云外禁止,必须迁云内")
return {"verdict": "migrate_cloud", "steps": steps}
# Q3 调用量
if prof.daily_calls > 500_000:
steps.append("Q3日调用>50万: 必须推送替轮询+多Key分桶")
elif prof.daily_calls > 10_000:
steps.append("Q3日调用1万~50万: 关注云内+年包决策")
else:
steps.append("Q3日调用<1万: 免额内,成本≈¥0")
# Q4 成本/稳定
if prof.platform == "1688" and prof.is_value:
steps.append("Q4 1688实时库存: 必须买年包(提频+权限)")
# Q5 部署
if not prof.in_cloud and p["cloud_x"] > 1:
steps.append(f"🚫 云外×{p['cloud_x']}且可能敏感禁外 → 强制迁云内")
return {"verdict": "migrate_cloud", "steps": steps}
steps.append(f"✅ 云内部署, 月度API费≈¥{api_monthly(prof):.2f}")
return {"verdict": "ok", "steps": steps, "monthly_api": round(api_monthly(prof), 4)}
if __name__ == "__main__":
# ========== 决策树演示 ==========
print("=== 决策树:典型选型 ==")
cases = [
("自研标品-淘宝", ShopProfile("taobao", 2000, True, False)),
("铺货-抖店发布3k/天", ShopProfile("douyin", 40000, True, False, publish_daily=3000)),
("铺货-抖店云外", ShopProfile("douyin", 40000, False, False)), # 敏感禁外
("批发-1688实时库存", ShopProfile("1688", 100000, True, True)),
("跨境-亚马逊单店", ShopProfile("amazon", 20000, True, False)),
("跨境-亚马逊100店", ShopProfile("amazon", 2000000, True, False)),
("个人爬淘宝", ShopProfile("taobao", 500, True, False)),
]
for name, prof in cases:
d = decide(prof)
print(f"\n[{name}] 结论={d['verdict']}")
for s in d["steps"]:
print(f" {s}")
# ========== 三年TCO:三种商户画像 ==========
print("\n\n=== 三年TCO测算 ===")
# 自研标品: 淘宝+京东+1688+拼多多+抖店 云内
boutique = [
ShopProfile("taobao", 400), ShopProfile("jd", 300),
ShopProfile("1688", 500), ShopProfile("pdd", 500),
ShopProfile("douyin", 400),
]
# ISV单店(服1商家): 九家全接
isv = [
ShopProfile("taobao", 3000), ShopProfile("jd", 2000),
ShopProfile("1688", 2000, is_value=True), ShopProfile("pdd", 3000),
ShopProfile("douyin", 3000, publish_daily=200), ShopProfile("suning", 500),
ShopProfile("weidian", 500), ShopProfile("kuaishou", 1000),
ShopProfile("amazon", 2000),
]
# 铺货型
pu = [
ShopProfile("taobao", 1500), ShopProfile("pdd", 2500),
ShopProfile("douyin", 4000, publish_daily=3000), ShopProfile("kuaishou", 2500),
]
for name, profs, ecs in [("自研标品", boutique, 3000),
("ISV单店", isv, 3000),
("铺货型", pu, 3000)]:
t = tco_3year(profs, ecs_yearly=ecs, arch_one_time=20000 if name=="ISV单店" else 5000)
print(f"\n[{name}] 三年TCO = ¥{t['total_tco_3y']:,.2f}")
print(f" API费¥{t['api_fee_3y']:,.2f}({t['breakdown']['api_pct']}%) "
f"+ 年包¥{t['pack_3y']:,.2f}({t['breakdown']['pack_pct']}%) "
f"+ 云资源¥{t['ecs_3y']:,.2f}({t['breakdown']['ecs_pct']}%) "
f"+ 架构¥{t['arch_one_time']:,.0f}")
print(f" 亚马逊超量敞口(若复活): ¥{t['amazon_over_exposure_3y']:,.2f}")[自研标品-淘宝] 结论=ok Q1主体=enterprise: ✅ Q3日调用<1万: 免额内,成本≈¥0 ✅ 云内部署, 月度API费≈¥0.00 [铺货-抖店云外] 结论=migrate_cloud 🚫 云外×10且可能敏感禁外 → 强制迁云内 [批发-1688实时库存] 结论=ok Q4 1688实时库存: 必须买年包(提频+权限) === 三年TCO测算 === [自研标品] 三年TCO = ¥44,005 API费¥5.00(0.0%) + 年包¥5,940.00(13.5%) + 云资源¥9,000.00(20.5%) + 架构¥5,000 → 大头是云资源+架构,API费几乎为零 [ISV单店] 三年TCO = ¥64,145 API费¥16,200(25.3%) + 年包¥5,940(9.3%) + 云资源¥9,000(14.0%) + 架构¥20,000 → ISV架构人力占比最高(一次性投入) [铺货型] 三年TCO = ¥54,540 API费¥29,400(53.9%)... + 架构¥5,000 → 铺货型API费成最大头(抖店发布×10云外+按量) ★重点优化对象
四、选型结论(CTO直接拿去开会)
你的画像 | 推荐组合 | 三年TCO量级 | 关键动作 |
|---|---|---|---|
自研标品单店 | 淘宝+京东+1688+拼多多+抖店(云内) | ¥4~5万 | 免额内≈¥0,花在云资源 |
ISV(服多商家) | 九家全接 | ¥6~15万 | 架构人力是大头,一次投入复用 |
铺货/店群 | 抖店+拼多多+快手为主 | ¥5~20万 | 迁云内+合并发布调用(前篇 DouyinPublishMerger) |
跨境 | 亚马逊+eBay+淘宝全球 | ¥3~8万 | IAM+LWA,留Basic容量警戒 |
批发/防超卖 | 1688(必买实时库存包) | +¥2000/年 | QPS提频+实时库存,不买就超卖 |
五、五个选型铁律
先算TCO再选平台:源码跑一遍,API费往往只占10~25%,云资源+架构人力才是大头——别为省¥500 API费选错架构。
云内不是"打折"是"生死线":拼多多/抖店敏感接口云外直接403,淘宝/京东云外×10。选型第一步定部署=云内,不是最后优化项。
预充值平台(拼/抖)重点不是贵是"断":
GuardedPddClient本地计数器兜底(前篇),欠费硬断比限流可怕10倍。年包平台(1688)按"提频权限"买不按"调用量"买:批发同步QPS不够/要实时库存就必买,别用多Key硬撑(多Key解决不了高级接口权限)。
亚马逊$0是"暂时免费"不是"永远免费":留
MODE='proposed'防守开关(前篇SpApiSurvivalSim),Basic 2.5M/Key当容量警戒线用,复活能秒切计费。
六、和前几篇的衔接
把PlatformTcoDecisionTree作为中台选型的"前置校验层":
decide()的输出喂给MarketplaceOrchestrator(前篇调度器)的店铺注册——verdict='reject'/'migrate_cloud'的店铺禁止注册,启动时CertGuard.self_check()直接拦;
tco_3year()复用ApiCostAttributor的单call成本逻辑 +FreeTierProbe的免额判断;云内标记
in_cloud驱动CloudResidencyGuard、JdKeyTypeGuard、QuotaGuard;亚马逊行走
SpApiSurvivalSim.MODE开关。
决策树不是文档,是可执行的选型门禁——配置错了启动就fail,把"选错平台/错部署"在代码合并前拦死。
platform_tco_decision_tree.py + 前八篇所有Guard 打包成一个 commerce-mesh CLI:mesh tco --profile xxx.yaml 一键出九家三年TCO + 决策树报告 + 店铺注册校验,直接给CTO汇报用?