关于 Amazon Trends API
Amazon Trends API 通过 Python、JavaScript 客户端或 HTTP 提供商品搜索兴趣历史、增长数据和畅销榜动态,适用于电商研究。关键词历史与当前畅销商品数据是不同的数据类型。
主要功能
- 01获取关键词兴趣时间序列
- 02衡量不同日期范围的增长
- 03读取实时畅销榜
- 04按类别筛选信息流
- 05使用异步 Python 客户端
- 06通过 HTTP API 访问
适用场景
- 01跟踪 Amazon 商品词的搜索兴趣
- 02比较关键词在不同周期的增长
- 03查看当前畅销商品排名
- 04使用 Pandas 分析时间序列
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://amazon.api.trendsapi.ai/mcpclaude mcp add --transport http ai-trendsapi-amazon https://amazon.api.trendsapi.ai/mcp{"mcpServers":{"ai-trendsapi-amazon":{"type":"http","url":"https://amazon.api.trendsapi.ai/mcp"}}}在 Cursor 中打开{"servers":{"ai-trendsapi-amazon":{"type":"http","url":"https://amazon.api.trendsapi.ai/mcp"}}}在 VS Code 中打开{"mcpServers":{"ai-trendsapi-amazon":{"type":"http","url":"https://amazon.api.trendsapi.ai/mcp"}}}{"mcpServers":{"ai-trendsapi-amazon":{"serverUrl":"https://amazon.api.trendsapi.ai/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://amazon.api.trendsapi.ai/mcp需要授权工具
详细介绍
Amazon 商品搜索需求 API
通过 Trends API 获取 Amazon 搜索热度和畅销商品信息流。无需使用爬虫即可开展电商研究。
密钥:trendsapi.ai/#get-key。HTTP 接口约定和所有数据源:trendsapi-ai/trendsapi。
身份验证
pip install trendsapi-amazon
export TRENDSAPI_KEY=your_key
Python 3.9+。与 HTTP API 使用相同的密钥。
from trendsapi_amazon import TrendsAPI
client = TrendsAPI() # TRENDSAPI_KEY
# client = TrendsAPI(api_key="YOUR_KEY")
关键词辅助方法默认使用 source: "amazon"。传入 source= 即可通过同一客户端访问其他平台。官方完整客户端(支持所有数据源,无预设):trendsapi。
方法
| 方法 | REST mode | 返回值 |
|---|---|---|
get_time_series(keyword, source=, data_mode=) | get_time_series | list[TrendsDataPoint] |
get_growth(keyword, percent_growth=, source=, data_mode=) | get_growth | GetGrowthResponse |
get_live(limit=, offset=, category=) | get_top_trends | GetTopTrendsResponse |
get_top_trends(type=, ...) | get_top_trends | GetTopTrendsResponse |
source 使用小写(amazon)。type 必须精确匹配(Amazon Best Sellers Top Rated)。混用两者会返回 400 错误。
from trendsapi_amazon import TrendsAPI
client = TrendsAPI() # TRENDSAPI_KEY
# client = TrendsAPI(api_key="YOUR_KEY")
series = client.get_time_series("standing desk")
print(series[-1].date, series[-1].value)
growth = client.get_growth("standing desk", percent_growth=["3M", "12M"])
print(growth.results[0].growth, growth.results[0].direction)
hot = client.get_live(limit=10)
print(hot.data) # [[1, "..."], ...]
get_time_series
points = client.get_time_series("standing desk")
每个数据点:
| 字段 | 始终存在 | 含义 |
|---|---|---|
date | 是 | YYYY-MM-DD |
value | 是 | 此时间序列的 0-100 指数 |
keyword | 是 | 回显的关键词 |
volume | 否 | 可用时提供绝对搜索量 |
source 或 datatype | 否 | 数据管道标签 |
Python 返回 list[TrendsDataPoint]。请使用 .date 和 .value,而不是 ["date"]。
JS 返回的对象属性与上述字段相同。
get_growth
g = client.get_growth("standing desk", percent_growth=["12M", "3M", "YTD"])
print(g.results[0].growth, g.results[0].direction)
percent_growth 默认值:["12M"]。预设值:7D 14D 30D 1M 2M 3M 6M 9M 12M/1Y 18M 24M/2Y 36M/3Y 48M 60M/5Y MTD QTD YTD。自定义值:{"name": "Launch", "recent": "2024-06-01", "baseline": "2024-01-01"}。
| 字段 | 含义 |
|---|---|
search_term | 关键词 |
data_source | 数据源 |
results | 每个时间窗口对应一个对象(包含 period、growth、direction、日期和数值) |
metadata | 计数 / 成功标志 |
多个时间窗口仍计为一次请求。Python:growth.results[0].growth。JS:growth.results[0].growth。
get_live
hot = client.get_live(limit=10)
| 字段 | 含义 |
|---|---|
as_of_ts | 快照时间 |
type | 信息流名称 |
limit、offset、count | 分页 |
data | [rank, label] 行 |
Python:hot.data。JS:hot.data。可选的 offset= 和 category=(仅适用于 Amazon Best Sellers by Category、Top Websites)。
异步
import asyncio
from trendsapi_amazon import AsyncTrendsAPI
async def main():
c = AsyncTrendsAPI()
return await asyncio.gather(
c.get_time_series("standing desk"),
c.get_time_series("standing desk", source="google search"),
)
asyncio.run(main())
每个 200 响应计为一次计费请求。
Pandas
from dataclasses import asdict
import pandas as pd
from trendsapi_amazon import TrendsAPI
df = pd.DataFrame(asdict(p) for p in TrendsAPI().get_time_series("standing desk"))
df["date"] = pd.to_datetime(df["date"])
print(df.set_index("date")["value"].resample("ME").mean().tail())
JavaScript / TypeScript
npm install trendsapi-amazon
支持 Node 18+、Deno、Bun 和 Workers。使用相同的 API 密钥。以上字段表同样适用。
方法
| 方法 | REST mode | 返回值 |
|---|---|---|
getTimeSeries(keyword, { source, data_mode }) | get_time_series | 每周数据点 |
getGrowth(keyword, { percent_growth, source, data_mode }) | get_growth | 增长对象 |
getLive({ limit, offset, category }) | get_top_trends | 实时信息流 |
getTopTrends({ type, ... }) | get_top_trends | 实时信息流 |
import { TrendsAPI } from "trendsapi-amazon";
const client = new TrendsAPI({ apiKey: process.env.TRENDSAPI_KEY! });
const series = await client.getTimeSeries("standing desk");
console.log(series.at(-1)?.date, series.at(-1)?.value);
const growth = await client.getGrowth("standing desk", {
percent_growth: ["3M", "12M"],
});
console.log(growth.results[0].growth, growth.results[0].direction);
const live = await client.getLive({ limit: 10 });
console.log(live.data); // [[1, "..."], ...]
调用(curl)
| 字段 | 值 |
|---|---|
| 端点 | POST https://api.trendsapi.ai/api |
| 身份验证 | Authorization: Bearer $TRENDSAPI_KEY |
| 历史数据 | 使用 get_time_series 或 get_growth,并设置 source: amazon |
| 关键词 | 商品短语,例如 standing desk |
实时 type | Amazon Best Sellers Top Rated、Amazon Best Sellers by Category |
curl -sS -X POST https://api.trendsapi.ai/api \
-H "Authorization: Bearer $TRENDSAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"get_time_series","source":"amazon","keyword":"standing desk"}'
来源说明
value是 0-100 的搜索兴趣指数,不代表销量。- Feed 可回答当前哪些商品正在热销。关键词序列可回答用户正在搜索什么。
- Google Shopping 是不同的
source(google shopping)。
错误
| HTTP | 客户端 |
|---|---|
| 200 | 已解析的载荷。Python 数据类 / JS 类型化对象 |
| 400 | 引发错误。请修正 source 或 type 的拼写 |
| 401 | 引发错误。请检查 TRENDSAPI_KEY |
| 404 | 引发错误。该关键词没有对应的序列。请勿重试 |
| 429 | 引发错误。配额已用尽 |
| 5xx | 客户端重试后引发错误 |
HTTP body 字段是一个 JSON 字符串。SDK 会对其解码。使用原始 curl 时,必须再次解析 body。
网站:https://trendsapi.ai/trends/amazon-trends。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。