Keepa API Docs

A Tracking Creation Object is used to create a price watch. There can be only one tracking per ASIN, regardless of the locale. A single Tracking Creation Object can contain desired prices for all locales.

Required by: the Add Tracking request of the Tracking API. The API returns the created watch as a Tracking Object.

Format#

{
    "asin": String,
    "ttl": Integer,
    "expireNotify": Boolean,
    "desiredPricesInMainCurrency": Boolean,
    "mainDomainId": Integer,
    "updateInterval": Integer,
    "metaData": String,
    "thresholdValues": TrackingThresholdValue[],
    "notifyIf": TrackingNotifyIf[],
    "notificationType": Boolean[],
    "individualNotificationInterval": Integer
}

Fields#

FieldTypeDescription
asin String The product ASIN to be tracked. Example: "B00M0QVG3W"
ttl Integer The time-to-live (in hours) until the tracking expires and gets deleted. When setting this value via the Add Tracking request, it is relative to the time of the request. When retrieving the tracking object, it is relative to the createDate. Possible values:
  • Any positive integer: time-to-live in hours
  • 0: never expires
  • Any negative integer:
    • If tracking already exists: maintain the original ttl
    • If tracking is new: use the absolute value as ttl
expireNotify Boolean Triggers a notification if the tracking expires or is removed by the system (e.g., product deprecated).
desiredPricesInMainCurrency Boolean Indicates whether all desired prices are in the currency of the mainDomainId. If false, they will be converted.
mainDomainId Integer The main Amazon locale of this tracking, determining the currency used for all desired prices. See the valid domain IDs below.
updateInterval Integer The update interval in hours, determining how often the system will trigger a product update. A setting of 1 hour won't trigger an update exactly every 60 minutes but as close to that as efficiently possible. Throughout a day, it will be updated 24 times, but updates are not perfectly distributed. Possible values: any integer from 1 to 24 (inclusive).
metaData String Optional. The metadata of this tracking (maximum length is 500 characters). Used to assign text to this tracking, such as a user reference or memo.
thresholdValues TrackingThresholdValue[] Optional. Contains settings for price or value-related tracking criteria for all locales. See TrackingThresholdValue below.
notifyIf TrackingNotifyIf[] Optional. Contains specific meta tracking criteria like out-of-stock status for all locales. See TrackingNotifyIf below.
notificationType Boolean[] Optional; defaults to webhook notifications. Must be a Boolean array with the length of the NotificationType enum (which is 7; see below). Determines the channels through which notifications will be sent. Uses NotificationType indexing. true means the channel will be used.
Important: the Tracking API currently only supports notifications through push webhooks or API pull requests.
Example — only notify via API: [false, false, false, false, false, true, false]
individualNotificationInterval Integer A tracking-specific rearm timer. Possible values:
  • -1: use the default notification timer of the user account (changeable via website settings)
  • 0: never notify a desired price more than once
  • Any positive integer: rearm the desired price after x minutes

TrackingThresholdValue#

Contains settings for price or value-related tracking criteria.

{
    "thresholdValue": Integer,
    "domain": Integer,
    "csvType": Integer,
    "isDrop": Boolean
}
FieldTypeDescription
thresholdValue Integer The threshold value (or desired price), represented as an integer of the smallest currency unit for the respective Amazon locale (e.g., euro cents or yen).
domain Integer The Amazon locale to which this threshold value belongs. Regardless of the locale, the threshold value is always in the currency of the mainDomainId. See the valid domain IDs below.
csvType Integer The price type for this threshold value (refer to the csv field of the Product Object).
isDrop Boolean Indicates whether this tracking threshold value tracks value drops (true) or value increases (false).

TrackingNotifyIf#

Contains specific meta tracking criteria, such as out-of-stock status.

{
    "domain": Integer,
    "csvType": Integer,
    "notifyIfType": Integer
}
FieldTypeDescription
domain Integer The Amazon locale to which this notifyIf belongs. See the valid domain IDs below.
csvType Integer The price type for this notifyIf (refer to the csv field of the Product Object).
notifyIfType Integer Available notification meta trigger types. Possible values:
  • 0: OUT_OF_STOCK
  • 1: BACK_IN_STOCK

NotificationType#

The available notification channels.

Note: Only API is currently available for API tracking.

ValueType
5API — push to webhook or pull through API request

Valid domain IDs#

Used by mainDomainId and the domain fields of the child objects:

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

Example#

A Tracking Creation Object that creates a never-expiring watch for the amazon.de Amazon price at a desired price of € 49.99, hourly updates, API notifications, plus an out-of-stock alert:

{
  "asin": "B00M0QVG3W",
  "ttl": 0,
  "expireNotify": false,
  "desiredPricesInMainCurrency": true,
  "mainDomainId": 3,
  "updateInterval": 1,
  "metaData": "customer-42",
  "thresholdValues": [
    {
      "thresholdValue": 4999,
      "domain": 3,
      "csvType": 0,
      "isDrop": true
    }
  ],
  "notifyIf": [
    { "domain": 3, "csvType": 0, "notifyIfType": 0 }
  ],
  "notificationType": [false, false, false, false, false, true, false],
  "individualNotificationInterval": -1
}

Illustrative values. See the Tracking API for how to submit this object with the Add Tracking request.