《淘宝客API(taobao.tbk.*)获取商品列表与佣金信息实战附源码》

简介: 本文详解淘宝客API(taobao.tbk.*)实战:无需店铺授权,仅需备案应用、绑定PID,调用`taobao.tbk.dg.material.optional`等接口实现关键词搜爆款、获取券后价/佣金率/月销量,并附Python封装客户端与佣金计算逻辑,含避坑指南与完整可运行示例。(239字)

🤝 淘宝客API(taobao.tbk.*)获取商品列表与佣金信息实战(附Python源码)

淘宝客(TbK/Taobao Ke / 鹊桥)API 是阿里妈妈开放平台接口,用来按关键词搜爆款、获取佣金比例、生成推广链接、查订单。与个人店铺API不同——它不需要卖家店铺授权,但需要备案淘宝客应用 + 绑定阿里妈妈PID。

一、前置条件(必看)

  1. 注册阿里妈妈 + 创建淘宝客应用
    进入 https://open.taobao.com → 创建「网站/App/微信淘宝客应用」
  2. 绑定推广位 PID
    阿里妈妈后台 → 推广管理 → 获取 mm_xxx_xxxxxx(格式 mm站点ID广告位ID推广ID)
  3. 申请接口权限:taobao.tbk.dg.material.optional(物料搜索)、taobao.tbk.item.info.get(商品详情)、taobao.tbk.dg.coupon.get(券)
  4. AppKey / AppSecret 同淘宝TOP开放平台

⚠️ 淘宝客接口不传 session(AccessToken),用 AppKey + Sign 即可。

二、核心接口速览

接口 用途

taobao.tbk.dg.material.optional 首选 关键词/类目搜商品(含券后价、佣金率、券面额)

taobao.tbk.item.info.get 按 num_iid 查商品详情(补充字段)

taobao.tbk.dg.coupon.get 查商品可用优惠券

taobao.tbk.dg.generate.shorten.tpwd 生成长链/短链/淘口令

taobao.tbk.dg.newuser.order.get 订单明细(结算后)

三、Python:淘宝客商品搜索 + 佣金解析

top_tbk_client.py

"""
淘宝客(Taobao Ke) API Client
依赖: top_api_client.TaobaoTopClient (签名/调用复用TOP网关)
"""
import time
from typing import Dict, List
from top_api_client import TaobaoTopClient

封装好API供应商demo url=https://console.open.onebound.cn/console/?i=Lex

class TbkClient(TaobaoTopClient):
"""
淘宝客接口继承TOP标准Client(网关/签名完全一致)
区别:淘宝客接口一般不需要 session
"""

# ────────────────────────────────────────────────
# ① 物料搜索(推荐接口)
# ────────────────────────────────────────────────
def search_material(self,
                    keyword: str,
                    adzone_id: int,
                    page_no: int = 1,
                    page_size: int = 20,
                    sort: str = "total_sales_des") -> Dict:
    """
    adzone_id: 推广位ID(取 PID 最后一段,如 mm_123_456_789 → adzone_id=789)
    sort: 
      total_sales_des  销量↓
      price_asc / price_des
      commission_rate_des  佣金比率↓
    """
    biz = {
        "adzone_id": adzone_id,
        "q": keyword,
        "page_no": page_no,
        "page_size": min(page_size, 100),
        "sort": sort,
        "has_coupon": "true",       # 只返回有券商品(可选)
        "need_free_shipment": "true",
        "need_prepay": "true"
    }
    return self.call(
        "taobao.tbk.dg.material.optional",
        biz_params=biz,
        session=None      # ← 淘宝客不需session
    )

# ────────────────────────────────────────────────
# ② 按 num_iid 查商品详情(含佣金)
# ────────────────────────────────────────────────
def get_item_info(self, num_iids: List[str], platform=2) -> Dict:
    """
    num_iids: 最多40个ID,逗号分隔字符串也可
    platform: 1=PC 2=无线
    """
    biz = {
        "num_iids": ",".join(num_iids),
        "platform": platform
    }
    return self.call(
        "taobao.tbk.item.info.get",
        biz_params=biz
    )

# ────────────────────────────────────────────────
# ③ 解析搜索结果 → 扁平化列表
# ────────────────────────────────────────────────
def parse_results(self, material_resp: Dict) -> List[Dict]:
    """
    返回平铺商品列表含关键字段:
      num_iid, title, pict_url, zk_final_price,
      coupon_amount, coupon_start_fee,
      commission_rate (万分之), commission_money,
      volume(月销), shop_title, category_id
    """
    root = material_resp.get("tbk_dg_material_optional_response", {})
    items = root.get("result_list", {}).get("map_data", []) or []
    parsed = []
    for it in items:
        final_price = float(it.get("zk_final_price", 0) or 0)
        coupon = float(it.get("coupon_amount", 0) or 0)
        commission_rate = int(it.get("commission_rate", 0) or 0)  # 万分之
        sold_price = final_price - coupon
        # 估算佣金金额 = 券后价 × 佣金率/10000
        est_commission = round(sold_price * commission_rate / 10000, 2)

        parsed.append({
            "num_iid": str(it.get("num_iid")),
            "title": it.get("title"),
            "pic_url": it.get("pict_url"),
            "original_price": final_price + coupon,
            "final_price": final_price,
            "coupon_amount": coupon,
            "coupon_start_fee": float(it.get("coupon_start_fee", 0) or 0),
            "commission_rate_wan": commission_rate,
            "est_commission": est_commission,
            "volume": it.get("volume"),       # 月销量
            "shop_title": it.get("shop_title"),
            "category_id": it.get("category_id"),
            "item_url": it.get("item_url"),
            "coupon_click_url": it.get("coupon_click_url")
        })
    return parsed

=========================================================

使用示例

=========================================================

if name == "main":

# PID 示例: mm_12345678_87654321_100001  → adzone_id = 100001
PID = "mm_YOUR_SITEID_YOUR_ADZONEID_YOUR_PROMOTIONID"
ADZONE_ID = 100001   # ← 替换成你的 adzone_id(PID最后一段数字)

tbk = TbkClient(
    app_key="YOUR_TOP_APP_KEY",
    app_secret="YOUR_TOP_APP_SECRET",
    sandbox=False   # 淘宝客沙箱支持有限,建议直连生产
)

try:
    resp = tbk.search_material(
        keyword="不锈钢保温杯 定制",
        adzone_id=ADZONE_ID,
        page_no=1,
        page_size=10,
        sort="total_sales_des"
    )

    items = tbk.parse_results(resp)
    print(f"✅ 找到 {len(items)} 个带券商品")

    for g in items[:3]:
        print(f"\n• {g['title'][:30]}")
        print(f"  原价:¥{g['original_price']}  券后:¥{g['final_price']}  "
              f"券¥{g['coupon_amount']}(满{g['coupon_start_fee']}可用)")
        print(f"  佣金率:{g['commission_rate_wan']/100:.2f}%  "
              f"预估佣金:¥{g['est_commission']}  月销:{g['volume']}")

except Exception as e:
    print("❌", e)
    print("→ 确认: AppKey正确 / PID绑定应用 / 接口权限已申请")

四、返回关键字段说明(选品核心)

TOP返回字段 含义 说明

num_iid 商品ID 可用于跳转或查详情

zk_final_price 券后价(字符串) 已是减去优惠券后价格

coupon_amount 券面额 0=无券

coupon_start_fee 券使用门槛 满X元可用

commission_rate 佣金比率(万分之) 例 5000 = 5%

volume 月销量 选爆款参考

shop_title 店铺名 —

coupon_click_url 领券推广链接 带pid可跳转领券

category_id 叶子类目 类目过滤

估算佣金公式:
est_commission = (zk_final_price - coupon_amount) * commission_rate / 10000

五、生成淘口令(推广链接)

def create_tpwd(self, text: str, url: str, logo: str = None) -> str:
"""生成淘口令(短链)"""
biz = {"text": text, "url": url}
if logo: biz["logo"] = logo
res = self.call("taobao.tbk.dg.generate.shorten.tpwd", biz_params=biz)
return res.get("tbk_dg_generate_shorten_tpwd_response", {}
).get("model", {}).get("password_simple", "")

六、高频避坑

坑 现象 解决

PID未绑定应用 返回 miss pid / 无结果 阿里妈妈后台→推广位管理→确认PID所属站点=应用绑定的网站ID

adzone_id错 空结果 PID三段 mm_site_adzone_promotion → adzone_id=第三段

沙箱调淘宝客 无数据/403 淘宝客建议直连生产网关

has_coupon=true无返回 该类目无券商品 去掉 has_coupon 再试

commission_rate=0 部分商品不分佣 正常现象(平台商品/部分特殊类目)

七、面试/方案一句话

淘宝客选品 = 备案淘宝客应用 → 绑定PID(adzone_id) → 调 taobao.tbk.dg.material.optional(q, adzone_id, has_coupon=true) 取 zk_final_price/coupon_amount/commission_rate → 按 commission_rate/10000 × 券后价 估算佣金,生成推广链接用 taobao.tbk.dg.generate.shorten.tpwd。

需要我补 淘宝客订单回调(taobao.tbk.dg.order.get) 对账脚本 或 与1688货源比价联动选品逻辑 吗?

相关文章
|
2月前
|
关系型数据库 API 调度
🧾《淘宝API并非全免费!基础免费额度+增值收费分层全曝光》(附Python源码)
淘宝TOP API实为三层计费:免费(有日额度)、基础收费(超免额后塔内¥0.02/百次、塔外¥0.20)、增值API(塔内¥0.06/百次且须签约入塔,塔外禁止)。中小ERP日调万次内通常免费;超限或调用CRM/罗盘即触发计费或权限拦截。
|
3月前
|
算法 安全 API
《淘宝开放平台TOP API接入全指南:注册、AppKey获取、签名算法与沙箱调试(2026)》(附python源码)
淘宝开放平台(TOP)是淘宝/天猫官方API体系,区别于1688。本文涵盖注册、AppKey获取、MD5/HmacMD5签名(ASCII排序+首尾拼Secret)、沙箱调试(`tbsandbox.com`网关)及Python可运行示例,含`taobao.item.get`调通验证与避坑指南。(239字)
|
6月前
|
JSON 算法 5G
拼多多开放平台商品搜索API技术实践指南
拼多多商品搜索API(pdd.ddk.goods.search)支持关键词检索商品,返回ID、标题、价格、销量等核心信息,适用于比价与选品分析。个人开发者日调用2000次,企业认证可达10万次。需签名认证,支持多维度排序与优惠券筛选。(239字)
1457 1
|
2月前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
4139 144
|
2月前
|
存储 人工智能 Kubernetes
阿里云 AgentTeams 解读:当 Agent 开始真正在企业里干活
多 Agent 协作不只是任务并行,更是组织运转。从产品主创团队视角,聊聊 AgentTeams 在安全、协作、弹性、进化四个方向的设计思考。
|
1月前
|
弹性计算 关系型数据库 API
☁️《抖店API基础¥0.018/百次·增值¥0.05/百次:云内云外价差架构实战》(附Python源码)
抖店开放平台V1.3资费明确:基础API云内0.018元/百次、云外×10;增值API(如批量解密)云内0.05元/百次、云外禁止调用。自研ERP必须云内部署敏感链路,结合数据推送替代轮询,并隔离AppKey与余额守卫,方可控本增效。(239字)
|
3月前
|
人工智能 算法 数据可视化
GEO管道网络策略:从单点突破到生态增长——专访GEO高级优化师罗长才
AI搜索时代,单篇内容难获稳定流量。GEO高级优化师罗长才提出“管道网络”理念:以自建站为主基地,多平台为前哨站,通过风险分散、交叉引流与复利叠加,构建可持续的GEO流量系统。
250 2
|
11月前
|
供应链 监控 API
推荐几个好用的电商API接口(淘宝天猫丨京东1688商品详情数据接口)
本文推荐淘宝、京东、1688等电商平台官方商品详情API,涵盖功能、优势及Python调用示例,助力开发者高效实现价格监控、库存管理与数据分析,附使用注意事项,助你合规快速集成。
2838 0
|
6月前
|
中间件 项目管理 芯片
Keil MDK(uVision5)完全指导手册(个人总结,篇幅有限)
本指南系统讲解Keil MDK5开发全流程:涵盖环境搭建、首个STM32项目(LED闪烁)、工程配置、断点调试与内存监视、编译优化、中间件集成(USB/文件系统)及常见问题排错,助力嵌入式开发者高效入门与进阶。(239字)
3054 2
|
6月前
|
JSON 监控 小程序
淘宝商品详情 API(taobao.item.get)完整使用教程
从 0 到 1 手把手教你调用、解析、落地业务 适配场景:无货源代发、闲鱼铺货、ERP 同步、导购小程序、比价工具