亚马逊商品详情接口完全指南:从 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.Large、ItemInfo.Title、Offers.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.Price、Images
  • 注意: 必须使用含 PartnerTag 的推广链接,否则无法追踪佣金

场景 3:ERP 商品中台同步

  • 接口: SP-API getCatalogItem
  • 核心字段: attributes、images、relationships.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. 多站点适配

  • 不同站点的 Marketplace 和 marketplaceIds 不同:
  • 美国站: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 权限,完成从"数据展示"到"深度运营"的升级。

相关文章
|
2月前
|
数据采集 人工智能 自然语言处理
一文读懂 AI+数据开发治理:什么是、能做什么、怎么落地、如何选型?
2026年,传统数据开发治理深陷ETL繁重、血缘滞后、口径不一、业治脱节四大困境。AI+数据开发治理以大模型+语义层+Agent引擎,实现“采-建-管-用”全链路自动化,推动从Copilot辅助迈向具备主动推理与闭环执行能力的Agentic Data Engine,成为企业数字化3.0核心基座。
|
2月前
|
缓存 监控 供应链
1688 跨境电商 API 接口实战指南:从寻源到代采的全链路技术方案
1688是超60万家工厂的“数字底座”,其开放平台为跨境电商提供商品、供应商及交易数据API。通过`alibaba.product.get`等核心接口,可实现程序化寻源、阶梯价比价、一键代采与库存监控,构建高效闭环供应链。
|
2月前
|
数据采集 监控 供应链
1688 商品详情驱动的选品、竞品分析与采购实战指南
1688是“中国制造”的数字入口,汇聚60万源头工厂。本文详解如何通过API接口实现数据化选品:解析批发价阶梯、库存、供应商资质等核心字段;构建四层选品漏斗;以图搜款溯源跨境爆款;建立采购评分卡与动态监控模型,助力高效决策。(239字)
|
7天前
|
存储 人工智能 安全
阿里云千问办公QwenWork价格参考:免费版与收费版价格,新用户免费送2000积分、每天登录再送100积分
本文聚焦阿里云千问办公QwenWork的完整定价体系,拆解“订阅套餐+积分消耗”的双轨计费逻辑,详细梳理个人版三档、企业版两档的权益差异、价格梯度,全面说明积分的获取规则、消耗优先级与不同任务的算力消耗标准,同时详解新用户注册赠2000积分、每日登录送积分等专属福利,为个人用户与企业采购提供可量化的选型成本参考。
|
7天前
|
BI 数据安全/隐私保护
怎么避免 USB 被统一禁用?把“全禁”换成“分级”
本文探讨U盘管控的科学实践:泉州鞋材厂“全禁U盘”反致数据改走网盘邮箱。指出应摒弃一刀切,按岗位分设“仅读/仅写/白名单/临时授信”四档策略,并全程留痕——插拔、文件操作、违规报警皆可追溯。管得住,更要跑得顺。
|
7天前
|
数据采集 运维 监控
食品污水处理设备物联网解决方案
该方案为食品污水处理设备制造商提供数字化升级服务:通过工业智能网关统一采集PLC、水质仪、电表等多源数据(Modbus/DL/T645协议),经4G+MQTT上云,实现运行监控、超标告警、能耗药耗统计及远程运维,助力环保合规与降本增效。(239字)
49 0
|
2月前
|
缓存 JSON 监控
京东商品详情接口完全指南:从接入到落地的全链路实战
本文系统解析京东商品详情接口的两大体系:官方开放平台(JOS)与京东联盟。涵盖核心接口(如`jd.item.get`、`jd.union.open.goods.query`)的功能差异、权限要求、QPS限制及适用场景,并提供签名生成、批量查询、字段过滤等实战代码与踩坑指南,助力ERP同步、价格监控、跨境铺货等业务稳定落地。(239字)
|
2月前
|
监控 搜索推荐 数据挖掘
淘宝京东数据分析实战指南:从指标体系到决策落地的全链路方法论
本文系统梳理淘宝与京东数据分析方法论,涵盖北极星指标拆解、五大数据看板(流量/转化/商品/用户/竞争)、平台差异对比(搜索vs推荐、用户行为、流量逻辑)、四大实战场景(选品、定价、活动复盘、流失预警)及工具链落地,强调数据是生意导航仪,核心在于“翻译算法语言为运营动作”。
|
2月前
|
网络协议 Linux
Linux系统之last命令的基本使用
Linux系统之last命令的基本使用
182 3
|
2月前
|
数据采集 监控 供应链
电商竞品分析接口实战指南:从数据采集到决策洞察的全链路方案
本文详解电商竞品分析的API化实践,对比人工、爬虫与官方接口优劣,梳理淘宝/京东/1688及亚马逊/速卖通等平台接口能力,提出四层技术架构(采集→标准化→分析→决策),并给出价格监控、选品对标、供应链比价、评论洞察四大场景方案,强调合规风控与数据驱动决策心法。(239字)

热门文章

最新文章