Skip to content

Statistics Object

stats 字段是 Product Object 的一个摘要子对象,把 csv 里数十条历史时间序列预聚合成「当前价、近 N 天均价、历史最低/最高、缺货比例、销量排名跌次」等可直接使用的指标。

对应 Keepa 官方:Statistics Object

何时返回

  • 仅当请求 /api/keepa/product带上 stats 参数(数值,单位天,如 stats=180)才会返回该对象。
  • 部分子字段还要求带 offers / buybox / stock 才会有值(每个字段下方会注明)。
  • detailLevel=lite保留整个 stats 对象(不会被裁剪);summary 也保留。

通用约定

  • 数组类字段(current / avg / min / max / outOfStockPercentage* / atIntervalStart)的下标统一是 Price Type
  • 价格单位:Cents-1 = 该时段无 offer / 缺货 / 数据不足。
  • 时间单位:KeepaTime 分钟

字段(默认返回,无附加参数依赖)

字段类型说明
currentint[]各 Price Type 的最新值-1 表示该 Price Type 当前无报价(可能是缺货/不存在)。
avgint[]请求 stats=N 指定区间内的加权平均(按时间长度加权)。-1 = 区间内无数据。
avg30 / avg90 / avg180 / avg365int[]avg,但固定窗口为 30 / 90 / 180 / 365 天。
atIntervalStartint[]区间起点那一刻的价格快照,可以和 current 比对得到「区间涨跌」。
minint[][]历史最低值。第一维 = Price Type;第二维 = [KeepaTime, value],无数据时为 null
maxint[][]历史最高值。结构同 min
minInIntervalint[][]仅在 stats=N 指定的区间内的最低值。
maxInIntervalint[][]仅在 stats=N 指定的区间内的最高值。
outOfStockPercentageInIntervalint[]区间内缺货比例(0–100),非价格 Price Type 为 -1
outOfStockPercentage30 / 90 / 180 / 365int[]同上,但固定窗口为 30 / 90 / 180 / 365 天。
salesRankDrops30 / 90 / 180 / 365int销量排名「从高到低」的下降次数 —— Keepa 用作销量代理指标,越大表示成交越频繁。
lastOffersUpdateintoffers 信息的最后一次更新时间(KeepaTime)。
totalOfferCountint该产品所有状态(New + Used + …)的 offer 总数。各状态拆分见 current[11..14]
lightningDealInfoint[][startDate, endDate],皆为 KeepaTime;null 表示该 ASIN 从未有过 Lightning Deal。
· 预告中:只有 startDateendDate = -1
· 进行中startDate < now < endDate
· 已结束:两个时间都在过去

字段(要求 offersbuybox 参数)

这一组字段只有在请求 product 接口时带上 offers=Nbuybox=true 才会有值。

字段类型说明
lastBuyBoxUpdateintBuy Box 信息最后一次更新时间(KeepaTime)。
buyBoxSellerIdstring当前 Buy Box 卖家 sellerId;"-1" = Buy Box 被压制(无人合格),"-2" = 缺货 / 未识别,null = 未知。
buyBoxPriceintBuy Box 新品价(cents)。
buyBoxShippingintBuy Box 运费(cents)。
buyBoxSavingBasisintBuy Box 划线价(参考价,cents);undefined = 不可用。
buyBoxSavingBasisTypestring划线价类型:LIST_PRICEWAS_PRICE
buyBoxSavingPercentageintAmazon 标注的折扣百分比;undefined = 不可用。
buyBoxIsUnqualifiedboolean当前没有任何卖家赢得 Buy Box(offer 质量都不达标)。
buyBoxIsShippablebooleanBuy Box 是否标记为可发货。
buyBoxIsPreorderbooleanBuy Box 是否为预购。
buyBoxIsBackorderbooleanBuy Box 是否处于缺货补单状态。
buyBoxIsFBAbooleanBuy Box 是否由 Amazon 配送(FBA)。
buyBoxIsAmazonbooleanBuy Box 卖家是否就是 Amazon 自营。
buyBoxIsMAPbooleanBuy Box 价格是否因 MAP(最低广告价)限制而被隐藏。
buyBoxMinOrderQuantityintBuy Box 起订量;-1 = 不可用,0 = 无下限。
buyBoxMaxOrderQuantityintBuy Box 单次最大下单量;-1 = 不可用,0 = 无上限。
buyBoxAvailabilityMessagestring可售提示,例如 "In Stock."null = 不可用。
⚠️ 2026-04-20 起该字段将变更为枚举三值:IN_STOCK / BACKORDER_NO_ETA / BACKORDER_WITH_ETA
buyBoxShippingTimeint[]Buy Box 发货预估区间 [最小小时, 最大小时],例如 [24, 48] = 1–2 天。
buyBoxShippingCountrystring卖家默认发货国(如 "US")。Amazon 自营时为 null
buyBoxIsPrimeExclusiveboolean是否 Prime 专享。
buyBoxIsPrimeEligibleboolean是否 Prime 可享。
buyBoxIsPrimePantryboolean是否 Prime Pantry 商品。
buyBoxStatsobject区间内的 Buy Box 统计:键 = sellerId,值 = 该卖家的 { avgNewOfferCount, avgPrice, isFBA, lastSeen, percentageWon }
用法:根据 percentageWon 判断 Buy Box 是否被某个卖家长期独占。
buyBoxUsedStatsobject同上,但针对 Used Buy Box。结构相同。
buyBoxUsedPriceintUsed Buy Box 价(cents)。
buyBoxUsedShippingintUsed Buy Box 运费(cents)。
buyBoxUsedSellerIdstringUsed Buy Box 卖家 ID。
buyBoxUsedIsFBAbooleanUsed Buy Box 是否 FBA。
buyBoxUsedConditionintUsed Buy Box 子状态:2=Like New,3=Very Good,4=Good,5=Acceptable。

字段(要求 offers 参数)

字段类型说明
retrievedOfferCountint本次请求实际抓回的 offer 数量(不一定等于 totalOfferCount)。
sellerIdsLowestFBAstring[]当前最低价 FBA New offer 的卖家 ID 列表(同价多人时多个 ID)。
sellerIdsLowestFBMstring[]当前最低价 FBM New offer 的卖家 ID 列表。
offerCountFBAintFBA New offer 数量;-2 = 不可用。
offerCountFBMintFBM New offer 数量;-2 = 不可用。

字段(要求 stock 参数)

字段类型说明
stockAmazonintAmazon 自营 offer 库存数;undefined = 未拉取。
stockBuyBoxintBuy Box 卖家库存数;undefined = 未拉取。

实战提示

  1. 取当前价用 stats.current[type],不要自己解析 csv——它已经处理好「最近一条 = 价格变化」「Lightning Deal 末尾 -1」等边角。
  2. 判断「正在跌价」current[1] < atIntervalStart[1]outOfStockPercentageInInterval[1] < 30(不是缺货引起)。
  3. 筛选「常压力下还能 Win Buy Box」buyBoxIsAmazon = falsebuyBoxStats[sellerId].percentageWon >= 80
  4. 估算销量salesRankDrops30 / 30 ≈ 日销次数(仅是粗略代理,对低排名品偏差较大)。

相关接口