keepa.models.backend.Stats#

pydantic model keepa.models.backend.Stats#

Backend Stats model generated from the Keepa Java schema.

Fields:
field atIntervalStart: list[int | None] | None = None#

Contains the prices registered at the start of the interval specified in the product request’s stats parameter.

Uses Product.CsvType indexing.

If no offer was available in the given interval or there is insufficient data it has the value -1.

field avg: list[int | None] | None = None#

Contains the weighted mean for the interval specified in the product request’s stats parameter.

Uses Product.CsvType indexing.

If no offer was available in the given interval or there is insufficient data it has the value -1.

field avg180: list[int | None] | None = None#

Contains the weighted mean for the last 180 days.

Uses Product.CsvType indexing.

If no offer was available in the given interval or there is insufficient data it has the value -1.

field avg30: list[int | None] | None = None#

Contains the weighted mean for the last 30 days.

Uses Product.CsvType indexing.

If no offer was available in the given interval or there is insufficient data it has the value -1.

field avg365: list[int | None] | None = None#

Contains the weighted mean for the last 365 days.

Uses Product.CsvType indexing.

If no offer was available in the given interval or there is insufficient data it has the value -1.

field avg90: list[int | None] | None = None#

Contains the weighted mean for the last 90 days.

Uses Product.CsvType indexing.

If no offer was available in the given interval or there is insufficient data it has the value -1.

field buyBoxAvailabilityMessage: str | None = None#

The availability message of the buy box. null if not available. Example: “In Stock.”

field buyBoxIsAmazon: bool | None = None#

Only set when the offers parameter was used. If Amazon is the seller in the buy box.

field buyBoxIsBackorder: bool | None = None#

Whether the buy box offer is back-ordered

field buyBoxIsFBA: bool | None = None#

Only set when the offers parameter was used. Whether or not the buy box is fulfilled by Amazon.

field buyBoxIsFreeShippingEligible: bool | None = None#

If the buy box is free shipping eligible. null if not available.

field buyBoxIsMAP: bool | None = None#

Only set when the offers parameter was used. If the buy box price is hidden on Amazon due to MAP restrictions (minimum advertised price).

field buyBoxIsPreorder: bool | None = None#

Only set when the offers parameter was used. If the buy box is a pre-order.

field buyBoxIsPrimeEligible: bool | None = None#

If the buy box is Prime eligible. null if not available.

field buyBoxIsPrimeExclusive: bool | None = None#

If the buy box is Prime exclusive. null if not available.

field buyBoxIsPrimePantry: bool | None = None#

If the buy box is a Prime Pantry offer. null if not available.

field buyBoxIsShippable: bool | None = None#

Only set when the offers parameter was used. Whether or not the buy box is listed as being shippable.

field buyBoxIsUnqualified: bool | None = None#

Only set when the offers parameter was used. Whether or not a seller won the buy box. If there are only sellers with bad offers none qualifies for the buy box.

field buyBoxIsUsed: bool | None = None#

Only set when the offers parameter was used. Whether or not there is a used buy box offer.

field buyBoxMaxOrderQuantity: int | None = None#

The maximum order quantity of the buy box. -1 if not available, 0 if no limit exists.

field buyBoxMinOrderQuantity: int | None = None#

The minimum order quantity of the buy box. -1 if not available, 0 if no limit exists.

field buyBoxPrice: int | None = None#

Only set when the offers parameter was used. The buy box price, if existent. Otherwise -2.

field buyBoxSavingBasis: int | None = None#

The buy box saving basis price (strikethrough, typical price). null if unavailable.

field buyBoxSavingBasisType: str | None = None#

The buy box new strikethrough price’s reference type (either LISTPRICE or WASPRICE) if it exists. null if unavailable.

field buyBoxSavingPercentage: int | None = None#

The buy box new price’s stated percentage discount, if it exists. null if unavailable.

field buyBoxSellerId: str | None = None#

The seller id of the buy box offer, if existent. Otherwise “-2” or null

field buyBoxShipping: int | None = None#

Only set when the offers parameter was used. The buy box shipping cost, if existent. Otherwise -2.

field buyBoxShippingCountry: str | None = None#

The default shipping country of the buy box seller. null if not available. Example: “US”

field buyBoxStats: dict[str, BuyBoxStatsObject | None] | None = None#

A map containing buy box statistics for the interval specified. Each key represents the sellerId of the buy box seller and each object a buy box statistics object.

field buyBoxUsedCondition: int | None = None#

Only set when the offers parameter was used. The used sub type condition of the used buy box offer

The Offer.OfferCondition condition of the offered product. Integer value:

2 - Used - Like New

3 - Used - Very Good

4 - Used - Good

5 - Used - Acceptable

Note: Open Box conditions will be coded as Used conditions.

field buyBoxUsedIsFBA: bool | None = None#

Only set when the offers parameter was used. Whether or not the used buy box is fulfilled by Amazon.

field buyBoxUsedPrice: int | None = None#

Only set when the offers parameter was used. Price of the used buy box, if existent. Otherwise “-1” or null

field buyBoxUsedSellerId: str | None = None#

Only set when the offers parameter was used. Seller id of the used buy box, if existent. Otherwise null.

field buyBoxUsedShipping: int | None = None#

Only set when the offers parameter was used. Shipping cost of the used buy box, if existent. Otherwise “-1” or null

field buyBoxUsedStats: dict[str, BuyBoxStatsObject | None] | None = None#

A map containing used buy box statistics for the interval specified. Each key represents the sellerId of the used buy box seller and each object a buy box statistics object.

field current: list[int | None] | None = None#

Contains the prices / ranks of the product of the time we last updated it.

Uses Product.CsvType indexing.

The price is an integer of the respective Amazon locale’s smallest currency unit (e.g. euro cents or yen). If no offer was available in the given interval (e.g. out of stock) the price has the value -1.

field deltaPercent90_monthlySold: int | None = None#

Contains the difference in percent between the current monthlySold value and the average value of the last 90 days. The value 0 means it did not change or could not be calculated.

field isAddonItem: bool | None = None#

Only set when the offers parameter was used. If the product is an add-on item (add-on Items ship with orders that include $25 or more of items shipped by Amazon).

field isLowest: list[bool | None] | None = None#

Whether the current price is the all-time lowest price.

Uses Product.CsvType indexing

field isLowest90: list[bool | None] | None = None#

Whether the current price is the lowest price in the last 90 days.

Uses Product.CsvType indexing

field lastBuyBoxUpdate: int | None = None#

The last time the Buy Box price was updated. Use KeepaTime.keepaMinuteToUnixInMillis(int) (long) to get an uncompressed timestamp (Unix epoch time).

field lastOffersUpdate: int | None = None#

the last time the offers information was updated. Use KeepaTime.keepaMinuteToUnixInMillis(int) (long) to get an uncompressed timestamp (Unix epoch time).

field lightningDealInfo: list[int | None] | None = None#

Can be used to identify past, upcoming and current lightning deal offers.

Has the format [startDate, endDate] (if not null, always array length 2). null if the product never had a lightning deal. Both timestamps are in UTC and Keepa time minutes.

If there is a upcoming lightning deal, only startDate is be set (endDate has value -1)

If there is a current lightning deal, both startDate and endDate will be set. startDate will be older than the current time, but endDate will be a future date.

If there is only a past deal, both startDate and endDate will be set in the past.

Use KeepaTime.keepaMinuteToUnixInMillis(int) (long) to get an uncompressed timestamp (Unix epoch time).

field max: list[list[int | None] | None] | None = None#

Contains the highest prices registered for this product.

First dimension uses Product.CsvType indexing

Second dimension is either null, if there is no data available for the price type, or an array of the size 2 with the first value being the time of the extreme point (in Keepa time minutes) and the second one the respective extreme value.

Use KeepaTime.keepaMinuteToUnixInMillis(int) (long) to get an uncompressed timestamp (Unix epoch time).

field maxInInterval: list[list[int | None] | None] | None = None#

Contains the highest prices registered in the interval specified in the product request’s stats parameter.

First dimension uses Product.CsvType indexing

Second dimension is either null, if there is no data available for the price type, or an array of the size 2 with the first value being the time of the extreme point (in Keepa time minutes) and the second one the respective extreme value.

Use KeepaTime.keepaMinuteToUnixInMillis(int) (long) to get an uncompressed timestamp (Unix epoch time).

field min: list[list[int | None] | None] | None = None#

Contains the lowest prices registered for this product.

First dimension uses Product.CsvType indexing

Second dimension is either null, if there is no data available for the price type, or an array of the size 2 with the first value being the time of the extreme point (in Keepa time minutes) and the second one the respective extreme value.

Use KeepaTime.keepaMinuteToUnixInMillis(int) (long) to get an uncompressed timestamp (Unix epoch time).

field minInInterval: list[list[int | None] | None] | None = None#

Contains the lowest prices registered in the interval specified in the product request’s stats parameter.

First dimension uses Product.CsvType indexing

Second dimension is either null, if there is no data available for the price type, or an array of the size 2 with the first value being the time of the extreme point (in Keepa time minutes) and the second one the respective extreme value.

Use KeepaTime.keepaMinuteToUnixInMillis(int) (long) to get an uncompressed timestamp (Unix epoch time).

field offerCountFBA: int | None = None#

Only set when the offers parameter was used. Count of retrieved live FBA offers.

field offerCountFBM: int | None = None#

Only set when the offers parameter was used. Count of retrieved live FBM offers.

field outOfStockCountAmazon30: int | None = None#

Number of times in the last 30 days Amazon went out of stock.

field outOfStockCountAmazon90: int | None = None#

Number of times in the last 90 days Amazon went out of stock.

field outOfStockPercentage30: list[int | None] | None = None#

Contains the 30 day out of stock percentage

Uses Product.CsvType indexing.

It has the value -1 if there is insufficient data or the CsvType is not a price.

Examples: 0 = never was out of stock, 100 = was out of stock 100% of the time, 25 = was out of stock 25% of the time

field outOfStockPercentage90: list[int | None] | None = None#

Contains the 90 day out of stock percentage

Uses Product.CsvType indexing.

It has the value -1 if there is insufficient data or the CsvType is not a price.

Examples: 0 = never was out of stock, 100 = was out of stock 100% of the time, 25 = was out of stock 25% of the time

field outOfStockPercentageInInterval: list[int | None] | None = None#

Contains the out of stock percentage in the interval specified in the product request’s stats parameter.

Uses Product.CsvType indexing.

It has the value -1 if there is insufficient data or the CsvType is not a price.

Examples: 0 = never was out of stock, 100 = was out of stock 100% of the time, 25 = was out of stock 25% of the time

field retrievedOfferCount: int | None = None#

Only set when the offers parameter was used. The count of actually retrieved offers for this request.

field salesRankDrops180: int | None = None#

The count of sales rank drops (from high value to low value) within the last 180 days which are considered to indicate sales.

field salesRankDrops30: int | None = None#

The count of sales rank drops (from high value to low value) within the last 30 days which are considered to indicate sales.

field salesRankDrops365: int | None = None#

The count of sales rank drops (from high value to low value) within the last 365 days which are considered to indicate sales.

field salesRankDrops90: int | None = None#

The count of sales rank drops (from high value to low value) within the last 90 days which are considered to indicate sales.

field sellerIdsLowestFBA: list[str | None] | None = None#

Only set when the offers parameter was used. Contains the seller ids (if any) of the lowest priced live FBA offer(s). Multiple entries if multiple offers share the same price.

field sellerIdsLowestFBM: list[str | None] | None = None#

Only set when the offers parameter was used. Contains the seller ids (if any) of the lowest priced live FBM offer(s). Multiple entries if multiple offers share the same price.

field stockAmazon: int | None = None#

Only set when the offers parameter was used. The stock of Amazon, if Amazon has an offer. Max. reported stock is 10. Otherwise -2.

field stockBuyBox: int | None = None#

Only set when the offers parameter was used. The stock of buy box offer. Max. reported stock is 10. If the buy box is empty/unqualified: -2.

field stockPerCondition3rdFBA: list[int | None] | None = None#

Contains the total stock available per item condition (of the retrieved offers) for 3rd party FBA (fulfillment by Amazon, Warehouse Deals included) or FBM (fulfillment by merchant) offers. Uses the Offer.OfferCondition indexing.

field stockPerConditionFBM: list[int | None] | None = None#

Contains the total stock available per item condition (of the retrieved offers) for 3rd party FBM (fulfillment by Amazon, Warehouse Deals included) or FBM (fulfillment by merchant) offers. Uses the Offer.OfferCondition indexing.

field totalOfferCount: int | None = None#

the total count of offers this product has (all conditions combined). The offer count per condition can be found in the current field.