Keepa API Docs

The Best Sellers Object is returned by the Best Sellers request. It contains the Amazon locale, the requested category and a ranked list of ASINs.

Format#

{
    "domainId": Integer,
    "lastUpdate": Integer,
    "categoryId": Long,
    "asinList": String[]
}

Fields#

FieldTypeDescription
domainId Integer The Amazon locale this list belongs to. See the valid domain IDs below.
lastUpdate Integer The last time the list was updated, in Keepa Time minutes. Example: 2711319
categoryId Long The category node ID used in the request, representing the category identifier. Example: 281052 (Amazon category link)
asinList String[] A list of ASINs, starting with the best-selling product (lowest sales rank).

Valid domain IDs#

Domain IDLocale
1com
2co.uk
3de
4fr
5co.jp
6ca
8it
9es
10in
11com.mx
12com.br

Keepa Time Minutes#

Time format used for all timestamps. To convert to an uncompressed Unix epoch time:

  • For milliseconds: (keepaTime + 21564000) * 60000
  • For seconds: (keepaTime + 21564000) * 60
# Convert Keepa Time minutes to a Python datetime
from datetime import datetime, timezone

def keepa_minutes_to_datetime(keepa_time):
    return datetime.fromtimestamp((keepa_time + 21564000) * 60, tz=timezone.utc)

print(keepa_minutes_to_datetime(7663000))  # illustrative value (mid 2026)

Example#

A Best Sellers Object as returned inside the bestSellersList field of a Best Sellers response:

{
  "domainId": 1,
  "lastUpdate": 7662840,
  "categoryId": 281052,
  "asinList": [
    "B0BDHWDR12",
    "B09XS7JWHH",
    "B08N5WRWNW",
    "B07YN82X3B",
    "B01M0AGIKS"
  ]
}

Response shortened for readability; illustrative values. A real list can contain far more ASINs.