亚马逊商品详情接口完全指南:从 PA-API 到 SP-API 的全链路实战

简介: 本文系统解析亚马逊商品详情接口两大体系:面向联盟推广的PA-API(含价格、图片、标题等基础信息)与面向卖家运营的SP-API(含库存、变体、BSR等全量数据),对比权限、字段、调用方式,并提供Python实战代码及选型指南,助跨境卖家、分析师高效对接核心数据。

亚马逊作为全球最大的电商平台,其商品数据是跨境卖家、数据分析师、导购平台最核心的生产资料。但与国内平台不同,亚马逊的接口体系更为复杂——没有"一个接口包打天下"的方案,而是按使用场景拆分为联盟推广接口(PA-API)和卖家服务接口(SP-API)两大体系。本文将系统梳理亚马逊商品详情接口的全貌,并附可直接落地的代码示例。


一、亚马逊详情接口的两大体系

亚马逊的商品详情能力分散在两个完全不同的开放平台中,定位、权限、数据维度差异巨大:

表格

维度 Product Advertising API (PA-API) Selling Partner API (SP-API)
面向对象 亚马逊联盟会员(Affiliate) 亚马逊卖家 / 授权开发者
核心接口 GetItems / SearchItems getCatalogItem / getListingsItem
数据侧重 商品标题、价格、图片、佣金比例、推广链接 完整商品目录、真实库存、变体、品牌备案信息
权限要求 联盟账号 + 180 天内产生至少 3 笔成交 卖家账户 / 开发者资质审核 + IAM 角色授权
费用 免费,但有请求配额限制 免费,部分高级报告收费
适用场景 导购返利、比价网站、内容电商 ERP 同步、铺货工具、竞品监控、品牌分析

关键认知: PA-API 虽然能拿到商品基础信息,但不含真实库存、FBA 库存状态、完整变体属性,且价格字段是"展示价"而非卖家后台的实时售价,不能替代 SP-API 用于供应链或卖家运营场景


二、PA-API 5.0:联盟推广场景的首选

PA-API 是亚马逊为联盟会员提供的官方数据接口,适合不需要卖家权限、只做商品展示和导购的场景。

2.1 接口基础信息

表格

项目 说明
接口地址 https://webservices.amazon.com/paapi5/getitems
协议 HTTPS
请求方式 POST
数据格式 JSON
认证方式 AWS Signature Version 4
权限门槛 联盟账号 + 180 天内至少 3 笔联盟成交

2.2 核心请求参数

表格

参数名 类型 必填 说明
ItemIds Array ASIN 列表,单次最多 10 个
ItemIdType String ASIN(默认)或 SKU
Resources Array 指定返回字段,如 Images.Primary.LargeItemInfo.TitleOffers.Listings.Price
PartnerTag String 你的联盟追踪 ID
PartnerType String 固定值 Associates
Marketplace String 站点标识,如 www.amazon.com

2.3 AWS Signature V4 签名(Python 完整示例)

PA-API 使用 AWS Signature Version 4 认证,签名逻辑较复杂,建议直接使用 AWS SDK:

Python

import json
import boto3
from botocore.config import Config
# 配置凭证
ACCESS_KEY = 'YOUR_ACCESS_KEY'
SECRET_KEY = 'YOUR_SECRET_KEY'
PARTNER_TAG = 'yourtag-20'
REGION = 'us-east-1'  # PA-API 固定区域
def get_paapi_client():
    config = Config(
        region_name=REGION,
        retries={'max_attempts': 3, 'mode': 'standard'}
    )
    return boto3.client(
        'paapi5',
        aws_access_key_id=ACCESS_KEY,
        aws_secret_access_key=SECRET_KEY,
        config=config
    )
def get_items_by_asin(asin_list):
    """
    根据 ASIN 列表获取商品详情
    单次最多 10 个 ASIN
    """
    client = get_paapi_client()
    
    payload = {
        'ItemIds': asin_list[:10],  # 最多 10 个
        'ItemIdType': 'ASIN',
        'Resources': [
            'Images.Primary.Large',
            'Images.Variants.Large',
            'ItemInfo.Title',
            'ItemInfo.ByLineInfo',
            'ItemInfo.Features',
            'ItemInfo.ProductInfo',
            'Offers.Listings.Price',
            'Offers.Listings.SavingBasis',
            'CustomerReviews.StarRating',
            'BrowseNodeInfo.BrowseNodes'
        ],
        'PartnerTag': PARTNER_TAG,
        'PartnerType': 'Associates',
        'Marketplace': 'www.amazon.com'
    }
    
    try:
        response = client.get_items(**payload)
        return response
    except Exception as e:
        print(f"请求失败: {e}")
        return None
# 调用示例
result = get_items_by_asin(['B08N5WRWNW', 'B0BSHF7WHW'])
print(json.dumps(result, indent=2, default=str))

2.4 返回数据结构解析

PA-API 5.0 返回结构清晰,核心字段如下

JSON

{
    "ItemsResult": {
        "Items": [
            {
                "ASIN": "B08N5WRWNW",
                "DetailPageURL": "https://www.amazon.com/dp/B08N5WRWNW...",
                "ItemInfo": {
                    "Title": {
                        "DisplayValue": "Apple iPhone 15 Pro Max (256 GB) - Natural Titanium"
                    },
                    "ByLineInfo": {
                        "Brand": {
                            "DisplayValue": "Apple"
                        },
                        "Manufacturer": {
                            "DisplayValue": "Apple Computer"
                        }
                    },
                    "Features": {
                        "DisplayValues": [
                            "6.7-inch Super Retina XDR display",
                            "A17 Pro chip"
                        ]
                    },
                    "ProductInfo": {
                        "Color": {
                            "DisplayValue": "Natural Titanium"
                        },
                        "Size": {
                            "DisplayValue": "256 GB"
                        }
                    }
                },
                "Images": {
                    "Primary": {
                        "Large": {
                            "URL": "https://m.media-amazon.com/images/...",
                            "Height": 500,
                            "Width": 500
                        }
                    },
                    "Variants": [...]
                },
                "Offers": {
                    "Listings": [
                        {
                            "Price": {
                                "DisplayAmount": "$1,199.00",
                                "Amount": 1199.00,
                                "Currency": "USD"
                            },
                            "SavingBasis": {
                                "Amount": 1199.00
                            }
                        }
                    ]
                },
                "CustomerReviews": {
                    "StarRating": {
                        "DisplayValue": "4.7",
                        "Value": 4.7
                    },
                    "Count": 15234
                }
            }
        ]
    }
}

关键字段说明:

表格

字段路径 说明
ItemInfo.Title.DisplayValue 商品标题
Offers.Listings[].Price.Amount 当前售价(注意:不含运费,非落地价)
Offers.Listings[].SavingBasis.Amount 划线价/原价
Images.Primary.Large.URL 主图大图 URL
CustomerReviews.StarRating.Value 星级评分
BrowseNodeInfo.BrowseNodes 类目节点信息

⚠️ 重要限制:

  • 单次最多查询 10 个 ASIN
  • ItemSearch 单次最多返回 100 条(10 页 × 10 条)
  • 价格不含运费,如需计算"落地价",需遍历 Offers 中的每个报价,将商品价格 + 运费取最小值

  • 180 天内无联盟成交的账号,API 权限会被暂停

三、SP-API Catalog Items API:卖家级全量数据

如果你的业务是亚马逊卖家运营、ERP 同步、竞品监控、品牌分析,必须使用 SP-API。这是亚马逊面向卖家的官方开发者接口,数据最全、权限最严。

3.1 接口基础信息

表格

项目 说明
接口地址 https://sellingpartnerapi-na.amazon.com/catalog/2022-04-01/items/{asin}
协议 HTTPS
请求方式 GET
认证方式 LWA (Login with Amazon) OAuth 2.0 + AWS SigV4
权限要求 卖家账户或授权开发者 + IAM 角色配置

3.2 核心请求参数

表格

参数名 类型 必填 说明
asin Path 商品 ASIN
marketplaceIds Query 市场 ID,如 ATVPDKIKX0DER(美国站)
includedData Query 指定返回数据类型:images,price,description,attributes,salesRanks
locale Query 语言区域,如 en_US

3.3 完整调用示例(Python)

SP-API 的认证比 PA-API 更复杂,需要 LWA Token + AWS SigV4 双重签名:

Python

import requests
import boto3
from botocore.auth import SigV4Auth
from botocore.awsrequest import AWSRequest
import json
# 配置
LWA_CLIENT_ID = 'YOUR_LWA_CLIENT_ID'
LWA_CLIENT_SECRET = 'YOUR_LWA_CLIENT_SECRET'
REFRESH_TOKEN = 'YOUR_REFRESH_TOKEN'
AWS_ACCESS_KEY = 'YOUR_AWS_ACCESS_KEY'
AWS_SECRET_KEY = 'YOUR_AWS_SECRET_KEY'
ROLE_ARN = 'YOUR_IAM_ROLE_ARN'  # 如使用 IAM Role
REGION = 'us-east-1'
MARKETPLACE_ID = 'ATVPDKIKX0DER'  # 美国站
def get_lwa_access_token():
    """获取 LWA Access Token"""
    url = 'https://api.amazon.com/auth/o2/token'
    payload = {
        'grant_type': 'refresh_token',
        'refresh_token': REFRESH_TOKEN,
        'client_id': LWA_CLIENT_ID,
        'client_secret': LWA_CLIENT_SECRET
    }
    response = requests.post(url, data=payload)
    return response.json()['access_token']
def get_catalog_item(asin, access_token):
    """
    调用 SP-API Catalog Items API 获取商品详情
    """
    endpoint = f'https://sellingpartnerapi-na.amazon.com/catalog/2022-04-01/items/{asin}'
    
    params = {
        'marketplaceIds': MARKETPLACE_ID,
        'includedData': 'images,price,description,attributes,salesRanks',
        'locale': 'en_US'
    }
    
    # 构建 AWS SigV4 签名请求
    request = AWSRequest(method='GET', url=endpoint, params=params)
    request.headers.add_header('x-amz-access-token', access_token)
    request.headers.add_header('x-amz-date', boto3.utils.datetime.datetime.utcnow().strftime('%Y%m%dT%H%M%SZ'))
    
    # 使用 boto3 的 SigV4Auth 签名
    credentials = boto3.Session(
        aws_access_key_id=AWS_ACCESS_KEY,
        aws_secret_access_key=AWS_SECRET_KEY,
        region_name=REGION
    ).get_credentials()
    
    sigv4 = SigV4Auth(credentials, 'execute-api', REGION)
    sigv4.add_auth(request)
    
    # 发送请求
    response = requests.get(endpoint, params=params, headers=dict(request.headers))
    
    if response.status_code == 200:
        return response.json()
    else:
        print(f"请求失败: {response.status_code}, {response.text}")
        return None
# 调用示例
token = get_lwa_access_token()
product = get_catalog_item('B08N5WRWNW', token)
print(json.dumps(product, indent=2))

3.4 返回数据结构解析

SP-API 返回的商品数据比 PA-API 丰富得多,核心字段如下

JSON

{
    "asin": "B08N5WRWNW",
    "attributes": {
        "title": [{"value": "Apple iPhone 15 Pro Max (256 GB) - Natural Titanium"}],
        "brand": [{"value": "Apple"}],
        "bullet_point": [
            {"value": "6.7-inch Super Retina XDR display"},
            {"value": "A17 Pro chip with 6-core GPU"}
        ],
        "item_dimensions": [{
            "height": {"value": 6.33, "unit": "inches"},
            "width": {"value": 3.06, "unit": "inches"}
        }],
        "color": [{"value": "Natural Titanium"}],
        "size": [{"value": "256 GB"}]
    },
    "images": {
        "primary": {
            "large": {
                "url": "https://m.media-amazon.com/images/...",
                "height": 500,
                "width": 500
            }
        },
        "variants": [...]
    },
    "dimensions": [...],
    "productTypes": [...],
    "salesRanks": [
        {
            "marketplaceId": "ATVPDKIKX0DER",
            "classificationRanks": [
                {
                    "classificationId": "7072561011",
                    "title": "Cell Phones",
                    "link": "https://www.amazon.com/...",
                    "rank": 3
                }
            ]
        }
    ],
    "summaries": [...],
    "relationships": {
        "variations": [
            {
                "asin": "B0BSHF7WHW",
                "color": "Blue Titanium"
            }
        ]
    }
}

关键字段说明:

表格

字段路径 说明
attributes.title[].value 商品标题
attributes.bullet_point[].value 五点描述
attributes.brand[].value 品牌名
images.primary.large.url 主图大图
salesRanks[].classificationRanks[].rank 类目销售排名(BSR)
relationships.variations 变体关系(父体/子体)
dimensions 包装尺寸和重量

四、批量查询与搜索接口

4.1 PA-API 批量查询

PA-API 的 GetItems 支持单次最多 10 个 ASIN 批量查询:

Python

payload = {
    'ItemIds': ['B08N5WRWNW', 'B0BSHF7WHW', 'B0C...'],  # 最多 10 个
    'Resources': [...],
    'PartnerTag': PARTNER_TAG,
    'PartnerType': 'Associates',
    'Marketplace': 'www.amazon.com'
}
response = client.get_items(**payload)

4.2 PA-API 关键词搜索

SearchItems 支持按关键词搜索商品列表

Python

payload = {
    'Keywords': 'wireless earbuds',
    'SearchIndex': 'Electronics',
    'ItemCount': 10,
    'Resources': [...],
    'PartnerTag': PARTNER_TAG,
    'PartnerType': 'Associates',
    'Marketplace': 'www.amazon.com'
}
response = client.search_items(**payload)

注意: ItemSearch 有硬性的 100 条结果上限(10 页 × 10 条)。如需突破限制,可采用:

  • 遍历子类目 BrowseNode
  • 按价格区间分段查询
  • 按品牌分别查询
  • 多排序方式去重合并

4.3 SP-API 批量查询

SP-API 的 searchCatalogItems 支持按关键词、品牌、类目等条件搜索,返回商品列表后再逐个调用 getCatalogItem 获取详情。


五、第三方数据服务商:当官方 API 不够用

亚马逊官方 API 有严格的权限门槛和频率限制,很多场景下需要借助第三方数据服务商

表格

服务商 核心能力 数据维度 适用场景
Keepa 历史价格追踪、BSR 趋势、库存监控 价格历史、排名历史、Deal 历史 价格监控、选品分析
Jungle Scout 销量估算、竞品追踪、关键词反查 预估销量、评论分析、广告数据 选品、竞品分析
Helium 10 关键词研究、Listing 优化、市场分析 搜索量、CPC、竞品关键词 SEO、广告投放
SellerApp 全链路数据分析、利润计算 利润分析、广告优化、库存预警 卖家运营

选择建议:

  • 需要历史价格/排名数据 → Keepa
  • 需要销量估算和选品 → Jungle Scout / Helium 10
  • 需要评论情感分析 → 各平台基本都有
  • 注意合规性:第三方服务商的数据来源必须合法,避免使用黑产数据


六、六大业务场景落地指南

场景 1:跨境选品与竞品监控

  • 接口: PA-API GetItems + Keepa 历史数据
  • 逻辑: 监控目标 ASIN 的价格、BSR、评论数变化,发现市场机会
  • 频率: 价格/BSR 建议每日采集,评论数可每周汇总

场景 2:导购返利与内容电商

  • 接口: PA-API GetItems / SearchItems
  • 核心字段: DetailPageURL(含联盟追踪参数)、Offers.Listings.PriceImages
  • 注意: 必须使用含 PartnerTag 的推广链接,否则无法追踪佣金

场景 3:ERP 商品中台同步

  • 接口: SP-API getCatalogItem
  • 核心字段: attributesimagesrelationships.variations
  • 逻辑: 将亚马逊商品数据标准化为内部 SKU 模型,统一供给多平台

场景 4:价格监控与预警系统

  • 接口: PA-API GetItems(批量)或 Keepa API
  • 逻辑: 建立价格基线,促销价低于阈值时触发告警
  • 注意: PA-API 价格不含运费,如需"落地价"需额外计算

场景 5:多平台铺货(亚马逊 → 独立站 / 其他平台)

  • 接口: SP-API getCatalogItem + PA-API GetItems
  • 注意点:
  • 图片需下载转存自有 CDN(亚马逊图片 URL 有防盗链)
  • 属性需映射到目标平台类目
  • 五点描述(Bullet Point)需清洗格式

场景 6:品牌分析与反跟卖监控

  • 接口: SP-API getCatalogItem + Reports API
  • 逻辑: 监控自有品牌 ASIN 的卖家数量、价格分布、Buy Box 占比

七、踩坑清单与最佳实践

1. 权限申请是最大门槛

  • PA-API: 必须完成 180 天内 3 笔联盟成交,否则 API 会被暂停
  • SP-API: 必须拥有亚马逊卖家账户或通过开发者审核,IAM 角色配置复杂,建议参考官方 IAM 配置文档

2. AWS Signature V4 签名容易出错

  • 时间戳必须使用 UTC 时间,格式为 YYYYMMDD'T'HHMMSS'Z'
  • x-amz-date 与签名中的日期必须一致
  • 建议使用 AWS SDK(boto3)自动生成签名,不要手写

3. 图片处理

  • 亚马逊图片 URL 有时效性,且部分域名有防盗链
  • 跨境铺货场景必须下载图片到自有对象存储(S3 / OSS / COS)
  • 注意图片版权,避免侵权风险

4. 缓存与限流策略

  • PA-API 有请求配额限制(免费层约每秒 1~5 次),高频场景必须做缓存
  • 价格/库存建议缓存 15~30 分钟,商品基础信息可缓存 2~24 小时
  • 批量查询优先用 GetItems(单次 10 个 ASIN),减少请求次数

5. 多站点适配

  • 不同站点的 MarketplacemarketplaceIds 不同:
  • 美国站:www.amazon.com / ATVPDKIKX0DER
  • 英国站:www.amazon.co.uk / A1F83G8C2ARO7P
  • 日本站:www.amazon.co.jp / A1VC38T7YXB528
  • 多站点运营时,需维护站点映射表

6. 异常处理

  • ASIN 无效或商品下架时,接口返回 InvalidParameterValue 或空 Items 数组
  • 必须做好降级策略:接口异常时读取缓存数据
  • 429 限流时,按 Retry-After 头等待后重试

7. 合规红线

  • 禁止爬虫: 亚马逊 robots.txt 明确禁止商业爬虫,且 2024 年已有"搬家软件"爬取数据被判不正当竞争的案例
  • 数据缓存限制: PA-API 要求缓存数据不超过 24 小时
  • 推广链接规范: 必须使用含 PartnerTag 的官方推广链接,禁止篡改或隐藏追踪参数

八、总结:如何选择适合你的接口?

表格

你的场景 推荐方案 关键注意点
导购返利 / 内容电商 PA-API 5.0 需联盟账号 + 180 天 3 笔成交
亚马逊卖家 ERP 同步 SP-API Catalog Items 需卖家账户 + IAM 角色配置
竞品价格监控 PA-API + Keepa PA-API 限流严,Keepa 有历史数据
跨境选品分析 Jungle Scout / Helium 10 第三方工具更直观,注意数据来源合规
多平台铺货 SP-API + 图片下载转存 属性映射、图片版权、详情清洗
品牌反跟卖 SP-API + Reports API 监控 Buy Box、卖家数量、价格分布

亚马逊的接口体系比国内平台更"分散"——没有一站式解决方案,但每个接口的设计都与其商业生态深度绑定。理解你的业务场景属于"联盟推广"还是"卖家运营",是选对接口的第一步。

如果你正在规划一个需要对接亚马逊商品数据的系统,建议先用 PA-API 做 POC 验证业务逻辑(门槛相对较低),确认模式跑通后,再以卖家身份申请 SP-API 权限,完成从"数据展示"到"深度运营"的升级。

相关文章
|
7天前
|
存储 弹性计算 缓存
阿里云服务器租赁费用:新版租赁收费标准及活动报价参考
本文更新了2026年阿里云全系列云服务器租赁活动报价,所有特惠资源均可前往阿里云活动中心选购,整体覆盖从个人入门到企业级高性能场景的全梯度需求。其中轻量应用服务器主打极致性价比,2核2G峰值200M带宽配置每日10点、15点限时抢购价仅38元/年,2核4G配置379元/年起;高性价比的经济型e实例、通用算力型u2i实例覆盖2核4G至4核32G全档位,适配开发测试与中小型企业业务;搭载英特尔至强6处理器的第九代c9i企业级实例算力较上代提升20%,支撑高并发生产环境,不同实例规格价差清晰,用户可根据自身业务负载与预算灵活选型。
1732 116
|
8天前
|
人工智能 程序员 API
Codex 接入 DeepSeek-V4-Flash:还能补上识图,提供两套方案
Codex 接入 DeepSeek-V4-Flash 怎么配?本文覆盖 CLI 与桌面端,再用 qwen3-vl-flash 补识图,两套方案可直接照做
1215 8
|
14天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1956 9
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
8天前
|
编解码 人工智能 安全
2核4G/4核8G/8核16G阿里云服务器如何选择实例?经济型e、通用算力型u2i与计算型c9i选哪个?
本文介绍了阿里云2核4G、4核8G、8核16G三档主流配置下经济型e、通用算力型u2i和计算型c9i三种实例的最新活动价格与适用场景。同配置下三者价差显著,以2核4G为例,经济型e低至599.93元/年,计算型c9i则高达1742.08元/年。文章详细解析了各实例的性能定位:经济型e适合轻负载入门场景,u2i兼顾稳定算力与性价比,c9i凭借第9代至强处理器与芯片级安全能力支撑高性能业务。同时提示用户可叠加满减优惠券享受折上折,建议根据业务负载与预算综合决策。
541 112
缓存 安全 IDE
857 2
|
20天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
2906 4
|
8天前
|
人工智能 JSON Shell
2026AI漫剧本地全开源方案(附各个软件模型链接),8G显卡也能流畅运行
这是一套完全本地化部署的AI漫剧生成技术链路:涵盖LLM剧本分镜生成、FLUX文生图(IP-Adapter人脸锁定)、StoryDiffusion时序连贯控制、LTX-2.3唇形同步视频生成,及ComfyUI全流程调度。零云端费用,仅耗硬件算力,单集2–4小时可产出竖屏短视频,适配抖音/B站分发。
|
5天前
|
编解码 弹性计算 云计算
MiniMax-H3 视频生成模型 — 一键部署与使用指南
MiniMax-H3是MiniMax开源的33B全模态视频生成模型,支持文生视频、图生视频、参考生视频三种模式,原生输出2K/15秒带立体声音频视频,已原生适配ComfyUI,并可通过阿里云计算巢一键部署。(239字)
|
12天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
745 111