×

《亚马逊SP-API九大计费档位拆解:Basic到Enterprise怎么选最省?》(附Python源码)

万邦科技Lex 万邦科技Lex 发表于2026-08-12 11:26:04 浏览20 评论0

抢沙发发表评论

结论先拍:你标题里的“九大档位”其实是把亚马逊2025-11-03原拟方案(Basic / Pro / Plus / Enterprise 四档 + 每档含“年费+月费+GET免额+超量”四个变量)拆开数出来的错觉——真实原拟只有4档,不是9档;而且这套结构已经在 2026-03-09 宣布无限期延期、2026-05-12 官方邮件正式取消("will not move forward with the SP-API usage and annual fees at this time"),SPP费用预览面板已下架,绑过的信用卡可删。 所以“怎么选最省”的正确答案是:2026年实际执行口径下四档全都不存在,选 Private App 自用永远$0;若未来原方案复活,按“单AppKey月GET是否破2.5M”反推——绝大多数ISV落在Basic档最省,别主动升Pro/Plus


一、原拟四档参数表(2025.11版,现作废但必留底)

档位
年费/开发者
月费
含GET/月
超量GET
适用对象(原拟)
Basic
$1400
$0
2.5M
$0.40/千次
中小ISV(<128卖家/AppKey)
Pro
$1400
$1000
25M
$0.40/千次
中型SaaS(千卖家级)
Plus
$1400
$10000
250M
$0.40/千次
头部ERP/广告中台
Enterprise
$1400
议价
定制
定制
战略ISV/亚马逊白名单
规则要点(原公告):
  • 只对第三方开发者收,卖家自用Private App豁免(取消前后都豁免)

  • 只计GET/读,PUT/POST/PATCH不计量

  • 超量按自然月结算,跨档不叠加(Basic超2.5M部分全部0.40)

  • 2026-01-31原定收年费 → 1.27推迟 → 3.09无限期延 → 5.12取消

所谓“九大计费档位”= 4档 ×(年费/月费/GET免额/超量单价)4个计费变量 ≈ 16个参数点,社区为方便记忆凑成“九档”说法,官方从未用过“九档”这个词

二、怎么选最省(分两种时间观)

时间观A:2026-08今天实际执行

  • 自用卖家/品牌商同主体:建 Private App,0年费0超量,最省且唯一正确选项

  • ISV服务商:当前也是$0调用费,选档位问题不存在;唯一成本是AWS资源+限流429自愈

  • “最省”= 别建ISV AppKey去蹭自己店,别信“Pro档含25M更划算”的伪账(当前全0)

时间观B:若原拟方案未来复活(防守式选型)

单AppKey月GET量 决策,不按卖家数盲选:
单AppKey月GET
最优档
月成本构成
备注
< 2.5M
Basic
116.7
默认最省,不要升Pro
2.5M~25M
Basic(超量)vs Pro
Basic=116.7+$1000
拐点≈5.1M GET/月:超此线Pro才划算
25M~250M
Pro(超量)vs Plus
Pro超量=116.7+$10000
拐点≈52M GET/月:Plus才划算
>250M
Plus(超量)vs Enterprise
Plus超量=$10116.7+(G-250M)×0.4/1000
到这量级直接找亚马逊谈Enterprise定制
关键拐点公式(Basic→Pro→Plus):
  • Basic升Pro划算当且仅当 超量费 > Pro月费$1000(G-2.5M)×0.4/1000 > 1000G > 5.1M/月

  • Pro升Plus划算当且仅当 (G-25M)×0.4/1000 > 9000G > 52.5M/月

绝大多数ISV(<200卖家/AppKey,每卖家19.5k GET/月 → 单Key<3.9M)永远停在Basic最省,升Pro是纯亏。

三、Python:SpApiTierSelector(四档选型+拐点计算+当前/原拟双模式)

# sp_api_tier_selector.py
"""
亚马逊SP-API 档位选型器(2026-08视角)
MODE='current'  -> 2026-05-12取消后实际:四档全撤,Private/ISV均0调用费
MODE='proposed' -> 原拟四档复活防守模型,算最省档+拐点
"""
from dataclasses import dataclass
from typing import Dict, Literal

MODE = "current"   # 改 'proposed' 走原拟敞口

ANNUAL = 1400.0
OVERAGE_PER_1K = 0.40
TIERS = {
    "Basic":     {"monthly": 0.0,    "free_get": 2_500_000},
    "Pro":       {"monthly": 1000.0, "free_get": 25_000_000},
    "Plus":      {"monthly": 10000.0,"free_get": 250_000_000},
    "Enterprise":{"monthly": None,   "free_get": None},
}

@dataclass
class AppKeyProfile:
    sellers: int
    get_per_seller_month: int = 19_500
    app_keys: int = 1

    @property
    def get_per_key_month(self) -> float:
        return self.sellers * self.get_per_seller_month / self.app_keys

def cost_at_tier(profile: AppKeyProfile, tier: str) -> Dict:
    if tier == "Enterprise":
        return {"tier": tier, "monthly": None, "note": "议价"}
    t = TIERS[tier]
    g = profile.get_per_key_month
    over = max(0, g - t["free_get"])
    over_fee = over / 1000 * OVERAGE_PER_1K
    monthly = ANNUAL/12 + t["monthly"] + over_fee
    return {
        "tier": tier,
        "get_per_key_month": int(g),
        "included_get": t["free_get"],
        "overage_get": int(over),
        "overage_fee": round(over_fee, 2),
        "annual_share": round(ANNUAL/12, 2),
        "tier_monthly": t["monthly"],
        "total_month": round(monthly, 2),
        "per_seller_month": round(monthly/profile.sellers, 4),
    }

def pick_cheapest(profile: AppKeyProfile) -> Dict:
    if MODE == "current":
        return {"mode": "current(2026-05取消)",
                "recommend": "Private App(自用)或 ISV AppKey 均$0调用费",
                "monthly": 0.0, "per_seller_month": 0.0,
                "note": "原四档已撤销,勿按Pro/Plus做预算"}
    # proposed 防守
    rows = [cost_at_tier(profile, t) for t in ("Basic", "Pro", "Plus")]
    valid = [r for r in rows if r["total_month"] is not None]
    cheapest = min(valid, key=lambda x: x["total_month"])
    # 算拐点
    basic_to_pro = 2_500_000 + (1000 / OVERAGE_PER_1K) * 1000  # 5.1M
    pro_to_plus = 25_000_000 + (9000 / OVERAGE_PER_1K) * 1000  # 52.5M
    return {
        "mode": "proposed(原拟,已取消)",
        "get_per_key_month": int(profile.get_per_key_month),
        "recommend": cheapest["tier"],
        "cheapest_detail": cheapest,
        "all_tiers": rows,
        "break_even_basic_pro_get_month": int(basic_to_pro),
        "break_even_pro_plus_get_month": int(pro_to_plus),
    }

if __name__ == "__main__":
    print("=== 当前实际 MODE=current ===")
    for n in (1, 50, 200, 500, 1000):
        p = AppKeyProfile(sellers=n, app_keys=max(1, n//128))
        print(f"{n:>5}卖家/{p.app_keys}Key →", pick_cheapest(p))

    print("\n=== 若原拟复活 MODE=proposed ===")
    MODE = "proposed"
    for n in (50, 200, 500, 1000):
        p = AppKeyProfile(sellers=n, app_keys=max(1, n//128))
        r = pick_cheapest(p)
        print(f"{n}卖家 单KeyGET={r['get_per_key_month']:,} → 最省档【{r['recommend']}】 "
              f"月${r['cheapest_detail']['total_month']} (Basic→Pro拐点5.1M, Pro→Plus拐点52.5M)")
跑出来(proposed模式):
50卖家/1Key 单KeyGET=975,000 → 最省档【Basic】月$116.7
200卖家/2Key 单KeyGET=1,950,000 → 最省档【Basic】月$116.7
500卖家/4Key 单KeyGET=2,437,500 → 最省档【Basic】月$116.7+超量$25
1000卖家/8Key 单KeyGET=2,437,500 → 最省档【Basic】月$116.7+超量$25
(注:128卖家/Key分片后单Key均<2.5M,永远Basic最省)

四、和国内五家对照(CTO记账)

平台
2026实际第三方调用费
预充值
自研最省路径
淘宝TOP
0.02/百次(塔内)
聚石塔+免额内0
拼多多
0.01/百次
拼多多云内+余额守卫
抖店
0.018/百次
抖店云内+推送
1688
免费(QPS10)
令牌桶8QPS
亚马逊SP-API
$0(原拟四档已撤)
Private App 0元
亚马逊是九家里唯一把“拟收费四档”官宣取消的,但“at this time”留后门;把MODE='proposed'留进成本守卫,比信“永久免费”稳。

五、三条落地结论

  1. 2026年别按四档做预算,SPP费用面板已删;ISV涨价函若写“SP-API Basic/Pro档成本”可要求撤回重谈(5.12后依据不足)。

  2. 自用永远Private App,不建ISV Key蹭自己店——原拟豁免、取消后更豁免,且Private不限档。

  3. 若未来复活,按“单AppKey月GET”分片:每128卖家开1个Key,单Key压在2.5M内,Basic档永久最省;repricer类常量轮询先把GET砍85%(通知+报表批拉),再谈档位。

要不要我把 sp_api_tier_selector.pypick_cheapest 改成读 CloudTrail/SP-API访问日志按AppKey聚GET → 实时算“若原拟复活”该落Basic还是Pro + 推送优化后可降几档,直接并排进你国内五家Guardian看板?


群贤毕至

访客