主题
响应对象字段速查
Keepamore 的接口返回结果是 Keepa 原始对象的透传 + 增强:除了 Keepamore 自己加的统一 code / msg / metadata 包装层,data 内部的产品 / 统计 / Deal 等业务对象与 Keepa 官方完全兼容。
本分区把这些对象的字段以中文整理出来,并附上「在 Keepamore 哪些参数下才会出现」「在 detailLevel 哪一档会被裁剪」的标注,免去你在 Keepa 论坛逐条对照的麻烦。
文档列表
| 对象 | 出现场景 |
|---|---|
| Product Object | /api/keepa/product、/api/keepa/productsearch 的 products |
| Statistics Object | Product Object 的 stats 字段(请求时带 stats 参数) |
| Marketplace Offer Object | Product Object 的 offers[] 元素(请求时带 offers=N) |
| Search Insights Object | Product Finder 的 data.searchInsights(请求时带 stats=1) |
| Category Object | /api/keepa/category、/api/keepa/categorysearch 的 categories |
| Best Sellers Object | /api/keepa/bestseller 的 data.bestSellersList |
| Deal Object | /api/keepa/deal 的 data.deals.dr[] |
| Lightning Deal Object | /api/keepa/lightningdeal 的 data.lightningDeals[] |
| Seller Object | /api/keepa/seller 的 data.sellers["<sellerId>"] |
公共约定
下面这几条规则在所有对象里都成立,单独抽出来不在每篇里重复。
KeepaTime(Keepa 时间分钟数)
Keepa 所有时间戳都是「以 Keepa epoch 为起点的分钟数」(约从 2011-01-01 起算),目的是用 Integer 而非 Long 存储历史数组,节省体积。
换算公式:
| 目标 | 公式 |
|---|---|
| Unix 毫秒 | (keepaTime + 21564000) * 60000 |
| Unix 秒 | (keepaTime + 21564000) * 60 |
| KeepaTime 分钟 | unixSeconds / 60 - 21564000 |
也可以直接调用 MCP 工具 keepa_time_convert 在对话中换算。
价格单位(Cents)
返回的所有金额字段都是 整数,单位为该 Amazon 站点的最小货币单位:
| 站点 | 单位 | 示例 |
|---|---|---|
| US / CA / MX / BR | 美/加/墨/雷亚尔分(cent / centavo) | 2999 = $29.99 |
| UK | 便士(pence) | 1499 = £14.99 |
| EU 各站 | 欧分(cent) | 1999 = €19.99 |
| JP | 日元(无小数) | 1980 = ¥1980(不是 19.80) |
| IN | 派士(paise) | 49900 = ₹499.00 |
判断规则:除日本外,除以 100 = 该站点本币金额。
特殊取值:
-1:该时段无 offer / 无数据 / 缺货-2:字段不可用(例如部分接口未拉到 buy box)0:合法的零值(仅极少数字段,例如couponHistory的 0 表示该类型 coupon 不存在)
评分单位
rating 是 星数 × 10 的整数:45 = 4.5 星,50 = 5 星。
历史数组(CSV 数组)
所有名为 csv / *History 的数组都是 「时间, 值」交替 的扁平 Integer 数组:
text
[ keepaTime, value, keepaTime, value, ... ]读取约定:
- 偶数下标(0、2、4…)= KeepaTime 分钟
- 奇数下标(1、3、5…)= 对应值(价格 / 销量排名 / offer 数等)
- 只在值变化时追加新条目——数组里的相邻条目时间间隔不一定相等
- 含运费的字段(名字带
_SHIPPING)格式为[time, price, shipping, time, price, shipping, ...]
csv 字段是 二维数组,第一维下标 = 「Price Type」,请见下文。
Price Type 索引
stats.current / stats.avg / stats.min / csv 的第一维统一用这套下标:
| 索引 | 名称 | 含义 | 何时返回 |
|---|---|---|---|
| 0 | AMAZON | Amazon 自营价格 | 默认 |
| 1 | NEW | 第三方 New 最低价(含 Amazon) | 默认 |
| 2 | USED | 第三方 Used 最低价 | 默认 |
| 3 | SALES | 主类目 Sales Rank | 默认 |
| 4 | LISTPRICE | List Price(MSRP) | 默认 |
| 5 | COLLECTIBLE | Collectible 最低价 | 默认 |
| 6 | REFURBISHED | Refurbished 最低价 | 默认 |
| 7 | NEW_FBM_SHIPPING | 仅 FBM New 最低价(含运费) | offers |
| 8 | LIGHTNING_DEAL | Lightning Deal 价格 | 默认 |
| 9 | WAREHOUSE | Amazon Warehouse 价格 | offers |
| 10 | NEW_FBA | 第三方 FBA New 最低价 | offers |
| 11 | COUNT_NEW | New offer 数量 | 默认 |
| 12 | COUNT_USED | Used offer 数量 | 默认 |
| 13 | COUNT_REFURBISHED | Refurbished offer 数量 | 默认 |
| 14 | COUNT_COLLECTIBLE | Collectible offer 数量 | 默认 |
| 15 | EXTRA_INFO_UPDATES | offers 相关字段的更新时间历史;正/负号区分是否拉全 | offers |
| 16 | RATING | 评分历史(× 10) | rating |
| 17 | COUNT_REVIEWS | 评论数历史 | rating |
| 18 | BUY_BOX_SHIPPING | New Buy Box 价 + 运费;无人 Win 时 = -1 | offers / buybox |
| 19 | USED_NEW_SHIPPING | Used – Like New 价 + 运费 | offers |
| 20 | USED_VERY_GOOD_SHIPPING | Used – Very Good 价 + 运费 | offers |
| 21 | USED_GOOD_SHIPPING | Used – Good 价 + 运费 | offers |
| 22 | USED_ACCEPTABLE_SHIPPING | Used – Acceptable 价 + 运费 | offers |
| 23 | COLLECTIBLE_NEW_SHIPPING | Collectible – Like New 价 + 运费 | offers |
| 24 | COLLECTIBLE_VERY_GOOD_SHIPPING | Collectible – Very Good 价 + 运费 | offers |
| 25 | COLLECTIBLE_GOOD_SHIPPING | Collectible – Good 价 + 运费 | offers |
| 26 | COLLECTIBLE_ACCEPTABLE_SHIPPING | Collectible – Acceptable 价 + 运费 | offers |
| 27 | REFURBISHED_SHIPPING | Refurbished 价 + 运费 | offers |
| 28 | EBAY_NEW_SHIPPING | eBay New 最低价 + 运费 | 默认(eBay 数据) |
| 29 | EBAY_USED_SHIPPING | eBay Used 最低价 + 运费 | 默认(eBay 数据) |
| 30 | TRADE_IN | Amazon Trade-In 价 | 默认(仅 US 等少数站) |
| 31 | RENTAL | 租赁价 | rental + offers |
| 32 | BUY_BOX_USED_SHIPPING | Used Buy Box 价 + 运费 | offers / buybox |
| 33 | PRIME_EXCL | Prime 专享 New 最低价 | offers |
| 34 | COUNT_NEW_FBA | New FBA offer 数量(含 Amazon) | offers |
| 35 | COUNT_NEW_FBM | New FBM offer 数量 | offers |
Keepa 可能随时新增 Price Type,不要在代码里写死「第一维长度 = 36」,按下标取值即可。
Lightning Deal 在 csv / stats 里的特殊形态
csv[8](LIGHTNING_DEAL)和包含秒杀价的 stats.current 有一个特例:
- 如果当前正在秒杀:数组最后一条条目的 KeepaTime 是未来时间,价格 =
-1—— 表示该秒杀的结束时间,前一条才是真正的秒杀价。 - 如果预告中尚未开始:同样最后一条 KeepaTime 在未来、价格 =
-1,表示计划开始时间。 - 想拿当前秒杀价最稳的方式是看
stats.current[8],再用lightningDealInfo判断 deal 状态。