# Keepa API quick reference

Source: https://env.7xmtools.com/api-docs/quick-reference.md (generated from the pages; each endpoint links to its full page)

Every request goes to `https://api.keepa.com/<path>` with your API key as the `key` parameter and a `domain` (see the Domain IDs below). Responses are JSON; send `Accept-Encoding: gzip` (or zstd). Each response reports the tokens consumed and left. Details: https://env.7xmtools.com/api-docs/request-basics.html

## Product Request

`GET /product` · 1 token per product (more with optional parameters) · https://env.7xmtools.com/api-docs/product.html

Retrieve products, including price history, by ASIN or product code.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the [Domain IDs](https://env.7xmtools.com/api-docs/product.html#domain-ids) table below for valid values. |
| `asin` | required\* | The ASIN of the product you want to request. For batch requests, a comma-separated list of ASINs (up to 100). |
| `code` | required\* | The product code of the product you want to request. We currently allow UPC, EAN, GTIN, and ISBN-13 codes. For batch requests, a comma-separated list of codes (up to 100). Multiple ASINs can have the same product code, so requesting a product code can return multiple products. Use the `code-limit` parameter to limit the number of returned products per code. |

### Optional Parameters

| Parameter | Extra token cost | Purpose |
| --- | --- | --- |
| [`stats`](https://env.7xmtools.com/api-docs/product.html#param-stats) | none | Include a `stats` field with current prices and statistics. |
| [`update`](https://env.7xmtools.com/api-docs/product.html#param-update) | 0 or 1 per product | Force a refresh if the product's last update is older than specified hours. |
| [`history`](https://env.7xmtools.com/api-docs/product.html#param-history) | none | Exclude historical data fields to reduce response size and processing time. |
| [`days`](https://env.7xmtools.com/api-docs/product.html#param-days) | none | Limit historical data to the recent X days. |
| [`code-limit`](https://env.7xmtools.com/api-docs/product.html#param-code-limit) | none | Limit the number of products returned per code when using the `code` parameter. |
| [`offers`](https://env.7xmtools.com/api-docs/product.html#param-offers) | 6 per found offer page | Retrieve up-to-date marketplace offers; incurs additional token cost. |
| [`only-live-offers`](https://env.7xmtools.com/api-docs/product.html#param-only-live-offers) | none | Include only live marketplace offers; reduces response size. |
| [`videos`](https://env.7xmtools.com/api-docs/product.html#param-videos) | none | Include video metadata. |
| [`aplus`](https://env.7xmtools.com/api-docs/product.html#param-aplus) | none | Include A+ content. |
| [`rating`](https://env.7xmtools.com/api-docs/product.html#param-rating) | up to 1 per product | Include existing rating and review count history; may consume an extra token. |
| [`buybox`](https://env.7xmtools.com/api-docs/product.html#param-buybox) | 2 per product | Include Buy Box related data; incurs additional token cost. |
| [`stock`](https://env.7xmtools.com/api-docs/product.html#param-stock) | 2 per product | Include stock information in offers and statistics; incurs additional token cost. |
| [`historical-variations`](https://env.7xmtools.com/api-docs/product.html#param-historical-variations) | 1 per product with a parent ASIN | Include historical and out of stock variations; incurs additional token cost. |

## Product Search

`GET /search?type=product` · 10 tokens per search (up to 20 results) · https://env.7xmtools.com/api-docs/product-search.html

Search for Amazon products by keyword.

### Required parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the [valid domain IDs](https://env.7xmtools.com/api-docs/product-search.html#domain-ids) below. |
| `type` | required | Must be set to `product` for a product search. |
| `term` | required | The term you want to search for. Should be [URL encoded](https://en.wikipedia.org/wiki/Percent-encoding). |

### Optional parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `asins-only` | optional | If provided and set to `1`, only the ASINs of the found products will be provided instead of the full product objects.<br>**Example:** `&asins-only=1` |
| `stats` | optional | No extra token cost. If specified, the product object will include a `stats` field (see [Statistics Object](https://env.7xmtools.com/api-docs/statistics-object.html)) with quick access to current prices, min/max prices, and weighted mean values. You can provide the `stats` parameter in two forms:<br>• **Last x days:** a positive integer value representing the number of last days to calculate stats for.<br>**Example:** `&stats=180` (stats for the last 180 days)<br>• **Interval:** a date range for the stats calculation using two timestamps (Unix epoch time in milliseconds) or two date strings (ISO8601 format, with or without time in UTC).<br>**Examples:** `&stats=2015-10-20,2015-12-24` (from October 20 to December 24, 2015) · `&stats=1445299200000,1450915200000` (Unix epoch time in milliseconds) |
| `update` | optional | **Additional token cost:** 0 or 1 per found product.<br>Positive integer value. If the product's last update is older than `<update>` hours, force a refresh. The default value the API uses is **1** hour.<br>**Usage:**<br>• **Speed up requests:** if up-to-date data is not required, use a higher value than **1** hour. No extra token cost.<br>• **Always retrieve live data:** use the value **0**. If our last update for the product was less than 1 hour ago, this consumes **1 extra token** per product.<br>**Example:** `&update=48` (only trigger an update if the product's last update is older than 48 hours) |
| `history` | optional | No extra token cost. Boolean value (`0` = false, `1` = true). If specified and set to `0`, the product object will not include the `csv` field. Use this to reduce response size and improve processing time if you do not need the historical data.<br>**Example:** `&history=0` |
| `rating` | optional | Up to **1** extra token per found product (**maximum of 5 additional tokens per search**). Boolean value (`0` = false, `1` = true). If specified and set to `1`, the product object will include our existing `RATING` and `COUNT_REVIEWS` history in the `csv` field.<br>• The extra token will only be consumed if our last update to both data points is less than **14** days ago.<br>• Using this parameter does not trigger an update to these fields; it only provides access to existing data if available.<br>• If you need up-to-date data, you have to use the `offers` parameter of a separate [product request](https://env.7xmtools.com/api-docs/product.html).<br>• Use this if you need access to the rating data, which may be outdated, but do not need any other data fields provided through the `offers` parameter — to save tokens and speed up the request.<br>**Example:** `&rating=1` (include rating and review count data in the `csv` field) |

## Product Finder

`GET / POST /query` · 10 + 1 per 100 ASINs · https://env.7xmtools.com/api-docs/product-finder.html

Query the product database with complex filter criteria.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the [valid domain IDs](https://env.7xmtools.com/api-docs/product-finder.html#domain-ids) below. |
| `selection` | required | The query JSON containing all request parameters (see [below](https://env.7xmtools.com/api-docs/product-finder.html#the-query-json)). URL-encoded as GET parameter, or sent as the POST body. |
| `stats` | optional | **Token cost:** 30 tokens + 1 token for every 1,000,000 products returned by the *query as a whole* (not just the current page). If specified and set to `1`, the response will include a [Search Insights Object](https://env.7xmtools.com/api-docs/search-insights-object.html). Example: `&stats=1` |

## Browsing Deals

`GET / POST /deal` · 5 tokens per request (up to 150 deals) · https://env.7xmtools.com/api-docs/deals.html

Browse recent price drops and deals.

### GET format

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `selection` | required | The query JSON contains all request parameters. It must be **URL-encoded** if the GET format is used. |

### POST format

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| POST payload | required | Must contain the `queryJSON` (no URL encoding needed). |

### Core parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `page` | optional | Most deal queries have more than 150 results (the maximum page size). To browse all deals found by a query (up to the limit of **10,000**), iterate the `page` parameter while keeping all other parameters identical. Start with `page=0` and stop when the response contains fewer than 150 results.<br>Example: `"page": 0` |
| `domainId` | required | The `domainId` of the Amazon locale to retrieve deals for. Not optional. See the domain ID table below for valid values. |
| `priceTypes` | required | Determines the deal type. Not optional: exactly one price type must be specified. Though it is an integer array, it can contain **only one entry** — multiple types per query are not supported. Only the price types listed below carry deal data; any other value is rejected as an invalid `priceTypes`.<br>Example: `"priceTypes": [0]` |
| `dateRange` | optional | Our deals are divided into different sets, determined by the time interval in which the product changed. The shorter the interval, the more recent the change, which is good for significant price drops but may miss slow incremental drops. See the interval table below for valid values.<br>Example: `"dateRange": 0` |

### Filter options

| Parameter | Required | Description |
| --- | --- | --- |
| `isFilterEnabled` | optional | Switch to enable the filter options.<br>Example: `"isFilterEnabled": true` |
| `excludeCategories` | optional | Used to exclude products listed in these categories. If it’s a subcategory, the product must be **directly** listed in this category; products in child categories of the specified ones will not be excluded unless it’s a root category. Array with up to **500** [category node IDs](https://env.7xmtools.com/api-docs/category-object.html).<br>Example: `"excludeCategories": [77028031, 186606]` |
| `includeCategories` | optional | Used to include only products listed in these categories. Same rules as `excludeCategories`.<br>Example: `"includeCategories": [3010075031, 12950651, 355007011]` |
| `minRating` | optional | Limit to products with a minimum rating. A rating is an integer from **0** to **50** (e.g. 45 = 4.5 stars). If `-1`, the filter is inactive.<br>Example: `"minRating": 20` (minimum rating of 2 stars) |
| `isLowest` | optional | Include only products for which the specified price type is at its lowest value (since tracking began).<br>Example: `"isLowest": true` |
| `isLowest90` | optional | Include only products for which the specified price type is at its lowest value in the past 90 days.<br>Example: `"isLowest90": true` |
| `isLowestOffer` | optional | Include only products if the selected price type is the lowest of all New offers (applicable to Amazon and Marketplace New).<br>Example: `"isLowestOffer": true` |
| `isHighest` | optional | Include only products for which the specified price type is at its highest value (since tracking began).<br>Example: `"isHighest": true` |
| `isOutOfStock` | optional | Include only products that were available to order within the last 24 hours and are now out of stock.<br>Example: `"isOutOfStock": true` |
| `isBackInStock` | optional | Include only products that were previously out of stock and have returned to stock within the last 24 hours.<br>Example: `"isBackInStock": true` |
| `hasReviews` | optional | If `true`, exclude all products with no reviews. If `false`, the filter is inactive.<br>Example: `"hasReviews": false` |
| `filterErotic` | optional | Exclude all products listed as adult items.<br>Example: `"filterErotic": false` |
| `singleVariation` | optional | Provide only a single variation if multiple match the query. The one provided is randomly selected.<br>Example: `"singleVariation": true` |
| `isRisers` | optional | Include only products whose price has been rising over the chosen `dateRange` interval.<br>Example: `"isRisers": true` |
| `isPrimeExclusive` | optional | Include only products flagged as Prime Exclusive.<br>Example: `"isPrimeExclusive": true` |
| `mustHaveAmazonOffer` | optional | Include only products that currently have an offer sold and fulfilled by Amazon.<br>Example: `"mustHaveAmazonOffer": true` |
| `mustNotHaveAmazonOffer` | optional | Include only products that currently have no offer sold and fulfilled by Amazon.<br>Example: `"mustNotHaveAmazonOffer": true` |
| `warehouseConditions` | optional | Include only products available under the specified Amazon Warehouse conditions. Use an array of integer condition codes (e.g. 1 = New, 2 = Used - Like New, 3 = Used - Very Good, 24 = Used - Good, 5 = Used - Acceptable).<br>Example: `"warehouseConditions": [1, 2]` |

### Product attribute filters

| Parameter | Required | Description |
| --- | --- | --- |
| `material` | optional | Include only products made of the specified material (e.g. “cotton”).<br>Example: `"material": ["cotton"]` |
| `type` | optional | Include only products matching the specified type (e.g. “shirt”, “dress”). |
| `manufacturer` | optional | Include only products from the specified manufacturer. |
| `brand` | optional | Include only products from the specified brand. |
| `model` | optional | Include only products matching the specified model identifier. |
| `color` | optional | Include only products matching the specified color attribute. |
| `size` | optional | Include only products matching the specified size (e.g. “small”, “one size”). |
| `unitType` | optional | Include only products with the specified unit type (e.g. “count”, “ounce”). |
| `scent` | optional | Include only products with the specified scent (e.g. “lavender”, “citrus”). |
| `itemForm` | optional | Include only products matching the specified item form (e.g. “liquid”, “sheet”). |
| `pattern` | optional | Include only products matching the specified pattern (e.g. “striped”, “solid”). |
| `style` | optional | Include only products matching the specified style attribute (e.g. “modern”, “vintage”). |
| `itemTypeKeyword` | optional | Include only products matching the specified item type keyword (custom search term, e.g. “books”, “prints”). |
| `targetAudienceKeyword` | optional | Include only products targeting the specified audience (e.g. “kids”, “professional”). |
| `edition` | optional | Include only products matching the specified edition (e.g. “first edition”, “standard edition”). |
| `format` | optional | Include only products in the specified format (e.g. “kindle ebook”, “import”, “dvd”). |
| `author` | optional | Include only products by the specified author (applicable to books, music, etc.). |
| `binding` | optional | Include only products with the specified binding type (e.g. “paperback”). |
| `languages` | optional | Include only products available in the specified languages. Use an array of language names. |
| `brandStoreName` | optional | Include only products sold under the specified brand store name on Amazon. |
| `brandStoreUrlName` | optional | Include only products sold under the specified URL-friendly brand store identifier. |
| `websiteDisplayGroup` | optional | Include only products in the specified website display group. |
| `websiteDisplayGroupName` | optional | Include only products in the specified website display group name (a more user-friendly label). |
| `salesRankDisplayGroup` | optional | Include only products belonging to the specified sales rank display group (e.g. “fashion\_display\_on\_website”). |

### Range options

| Parameter | Required | Description |
| --- | --- | --- |
| `isRangeEnabled` | optional | Switch to enable the range options.<br>Example: `"isRangeEnabled": true` |
| `currentRange` | optional | Limit the range of the current value of the price type.<br>Example: `"currentRange": [105, 50000]` (min price $1.05, max price $500) |
| `deltaRange` | optional | Limit the range of the difference between the weighted average value and the current value over the chosen `dateRange` interval.<br>Example: `"deltaRange": [0, 999]` (max difference of $9.99) |
| `deltaPercentRange` | optional | Same as `deltaRange`, but in percent. Minimum percent is **10%**; for Sales Rank, it is **80%**.<br>Example: `"deltaPercentRange": [30, 80]` (between 30% and 80%) |
| `deltaLastRange` | optional | Limit the range of the absolute difference between the previous value and the current one.<br>Example: `"deltaLastRange": [100, 500]` (last change between $1 and $5 price decrease) |
| `salesRankRange` | optional | Limit the Sales Rank range of the product. Identical to `currentRange` if the price type is set to Sales Rank. If you want to keep the upper bound open, you can specify `-1` (which translates to the maximum integer value).<br>**Important:** once this range option is used, all products with no Sales Rank will be excluded. Set it to `null` or leave it out to not use it.<br>Examples: `"salesRankRange": [0, 5000]` (Sales Rank between 0 and 5000), `"salesRankRange": [5000, -1]` (Sales Rank higher than 5000) |

### Search and sort options

| Parameter | Required | Description |
| --- | --- | --- |
| `titleSearch` | optional | Select deals by a keyword-based product title search. The search is case-insensitive and supports up to **50** keywords. If multiple keywords are specified (separated by a space), all must match.<br>Example: `"titleSearch": "samsung galaxy"` (matches products with both “samsung” AND “galaxy” in the title) |
| `sortType` | optional | Determines the sort order of the retrieved deals. To invert the sort order, use negative values. See the sort type table below for valid values. |

## Best Sellers

`GET /bestsellers` · 50 tokens per request · https://env.7xmtools.com/api-docs/best-sellers.html

Retrieve the best sellers list of a category.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the [valid domain IDs](https://env.7xmtools.com/api-docs/best-sellers.html#domain-ids) below. |
| `category` | required | The category node ID for which you want the best sellers list. You can find category node IDs via the [Category Search](https://env.7xmtools.com/api-docs/category-search.html), the [Deals](https://env.7xmtools.com/deals) page (select the category and click on “Show API query”), or directly on Amazon. Alternatively, you can provide a product group (e.g., `Beauty`), which can be found in the `websiteDisplayGroupName` field of the [product object](https://env.7xmtools.com/api-docs/product-object.html). |
| `range` | optional | Retrieve a best seller list based on a sales rank average instead of the current sales rank. Valid values: **0** (use current rank), **30** (30-day average), **90** (90-day average), **180** (180-day average). |
| `month` & `year` | optional | Request a historical best seller list for a specific month. Both parameters must be specified together; must not be combined with `range`. See [details](https://env.7xmtools.com/api-docs/best-sellers.html#param-month-year). |
| `variations` | optional | Controls whether items with multiple variations are returned as a single representative variation or as all variations. See [details](https://env.7xmtools.com/api-docs/best-sellers.html#param-variations). |
| `sublist` | optional | Create the best seller list based on the sub-category sales rank instead of the primary sales rank. See [details](https://env.7xmtools.com/api-docs/best-sellers.html#param-sublist). |

### month & year

| Parameter | Valid values |
| --- | --- |
| `month` | Integer between **1** and **12**, representing January to December. |
| `year` | 4-digit year (e.g., **2024**). |

## Category Lookup

`GET /category` · 1 token per request (up to 10 categories) · https://env.7xmtools.com/api-docs/category-lookup.html

Look up category objects by category ID.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the [valid domain IDs](https://env.7xmtools.com/api-docs/category-lookup.html#domain-ids) below. |
| `category` | required | The category node ID of the category you want to request.<br>• For batch requests, use a comma-separated list of IDs (up to **10**). **Token cost remains the same.**<br>• Alternatively, you can specify the value **0** to retrieve a list of all root categories. |
| `parents` | required | Whether or not to include the category tree for each category. Valid values:<br>• `1` — include parent categories.<br>• `0` — do not include parent categories. |

## Category Search

`GET /search?type=category` · 1 token per search · https://env.7xmtools.com/api-docs/category-search.html

Search for Amazon categories by name.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the [valid domain IDs](https://env.7xmtools.com/api-docs/category-search.html#domain-ids) below. |
| `type` | required | Must be set to `category` to perform a category search. |
| `term` | required | The term you want to search for. Should be [URL encoded](https://en.wikipedia.org/wiki/Percent-encoding). Multiple space-separated keywords are possible, and all provided keywords must match. The minimum length of a keyword is **3** characters. |

## Seller Information

`GET /seller` · 1 token per seller (+9 for storefront) · https://env.7xmtools.com/api-docs/seller.html

Retrieve information about marketplace sellers.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the table of valid domain IDs below. |
| `seller` | required | The seller ID of the merchant you want to request. For batch requests, provide a comma-separated list of seller IDs (up to **100**). The seller ID is part of the [offer object](https://env.7xmtools.com/api-docs/offer-object.html) and can also be found on Amazon's seller profile pages in the `seller` parameter of the URL. Example: seller ID **A2L77EE7U53NWQ** — [Amazon.com Warehouse Deals](https://www.amazon.com/sp?marketplaceID=ATVPDKIKX0DER&seller=A2L77EE7U53NWQ). |
| `storefront` | optional | Include an ASIN list of the items the seller is listing. Valid values: **0** (false), **1** (true). Additional token cost: **9**. Example: `&storefront=1`. See [the storefront parameter](https://env.7xmtools.com/api-docs/seller.html#storefront-parameter) below for details. |

## Seller Finder

`GET / POST /sellerquery` · 10 + 1 per 100 seller IDs · https://env.7xmtools.com/api-docs/seller-finder.html

Query the seller database with complex filter criteria.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the [valid domain IDs](https://env.7xmtools.com/api-docs/seller-finder.html#domain-ids) below. Can be overridden per query with the `domainId` filter, which is the only way to search several marketplaces at once. |
| `selection` | required | The seller query JSON containing all request parameters (see [below](https://env.7xmtools.com/api-docs/seller-finder.html#the-query-json)). URL-encoded as GET parameter, or sent as the POST body. |

## Most Rated Sellers

`GET /topseller` · 50 tokens per request · https://env.7xmtools.com/api-docs/most-rated-sellers.html

Retrieve the list of most rated marketplace sellers.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API access key (`<yourAccessKey>`). |
| `domain` | required | Integer value for the Amazon locale you want to access (`<domainId>`). See the valid values below. |

## Lightning Deals

`GET /lightningdeal` · 1 token per ASIN · 500 tokens for the full list · https://env.7xmtools.com/api-docs/lightning-deals.html

Retrieve Amazon lightning deals.

### Parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the table of valid values below. |
| `asin` | optional | The ASIN of the lightning deal you want to request (token cost: 1). If not specified, the entire list will be provided (token cost: 500). |
| `state` | optional | Limit the returned lightning deals by their state. Possible values: `AVAILABLE`, `WAITLIST`, `SOLDOUT`, `WAITLISTFULL`, `EXPIRED`, `SUPPRESSED`. Example: `&state=AVAILABLE` |

## Graph Image API

`GET /graphimage` · 1 token per image · https://env.7xmtools.com/api-docs/graph-image.html

Render price history charts as images.

### Required parameters

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `domain` | required | Integer value for the Amazon locale you want to access. See the valid values below. |
| `asin` | required | The ASIN of the product. |

### Category Sales Ranks & Monthly Sales

| Parameter | Required | Description | Valid values | Example |
| --- | --- | --- | --- | --- |
| `subranks` | optional | The **presence** of this parameter requests this graph. `0` draws the reference category only; `1` also draws the product’s other categories. | `0`, `1` | `&subranks=1` |
| `cRanks` | optional | Base color for the rank series. Additional categories are drawn in progressively darker shades derived from it, so one color covers however many categories a product has. Category selection is not exposed: which categories a product is ranked in is a property of the product. | hex color, e.g. `8fbc8f` | `&cRanks=8fbc8f` |
| `monthlysold` | optional | Draw the monthly sold series, on its own axis. Can be requested with or without ranks. | `1` | `&monthlysold=1` |
| `cMonthlysold` | optional | Color of the monthly sold series. | hex color, default `f6d500` | `&cMonthlysold=f6d500` |

### Display parameters

| Parameter | Required | Description | Valid values | Default | Example |
| --- | --- | --- | --- | --- | --- |
| `range` | optional | The range of the chart in days. | Suggested values: `1`, `2`, `7`, `31`, `90`, `365` | `90` | `&range=90` |
| `yzoom` | optional | Enable Close-up View (y-axis zoom). | `1` (zoom), `0` (no zoom) | `1` | `&yzoom=0` |
| `width` | optional | Width of the chart image in pixels. Values below the minimum are raised to it. | `300` to `1800` | `500` | `&width=500` |
| `height` | optional | Height of the chart image in pixels. Values below the minimum are raised to it. | `150` to `1800` | `200` | `&height=200` |
| `title` | optional | Include the product title. | `1` (show), `0` (hide) | `1` | `&title=0` |
| `legend` | optional | Include the chart legend. | `1` (show), `0` (hide) | `1` | `&legend=0` |
| `lw` | optional | Width of the drawn series lines. Applied proportionally to each series’ own weight, so their relative thicknesses are preserved. Applies to all three graph types. A value outside the valid range is **rejected**, not clamped. | `0.5` to `3.0` | `1.5` | `&lw=2` |

### Color parameters

| Parameter | Required | Description | Example |
| --- | --- | --- | --- |
| `cBackground` | optional | Chart background color. | `&cBackground=ffffff` |
| `cFont` | optional | Font color. | `&cFont=444444` |

## Tracking API

`GET /tracking` · varies per tracked product · https://env.7xmtools.com/api-docs/tracking.html

Create and manage product trackings and receive notifications.

### POST format

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `type` | required | Must be `add`. |
| `tracking` | required (GET format only) | The tracking JSON contains an array of [tracking creation objects](https://env.7xmtools.com/api-docs/tracking-creation-object.html). It must be URL-encoded if the GET format is used. Due to URL length limitations, do not use the GET method for batch requests. |
| `list` | optional | Name of the [named tracking list](https://env.7xmtools.com/api-docs/tracking.html#named-tracking-lists) this request should act on, e.g. `&list=user123`. |

### Remove Tracking

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `type` | required | `remove` to remove a single tracking, or `removeAll` to remove all your trackings with a single call. `removeAll` can also be used to delete a [named list](https://env.7xmtools.com/api-docs/tracking.html#named-tracking-lists). |
| `asin` | required (for `remove`) | The ASIN of the product you want to remove from your tracking list. |
| `list` | optional | Name of the [named tracking list](https://env.7xmtools.com/api-docs/tracking.html#named-tracking-lists) this request should act on, e.g. `&list=user123`. |

### Retrieve your list

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `type` | required | `get` to retrieve a single tracking, or `list` to retrieve your whole list. |
| `asin` | required (for `get`) | The ASIN of the product you want to retrieve your tracking for. |
| `asins-only` | optional (`list` only) | `asins-only=1` returns only the ASINs you track (fast, lightweight). Pagination parameters are **ignored** in this mode because the call always returns the full list. |
| `page` | optional (`list` only) | Page of the batch you want (first page = `0`). |
| `perPage` | optional (`list` only) | Number of tracking records to return in one batch. If you supply this parameter, the highest accepted value is **100,000** — larger values are capped to it. If you omit it, the whole list is returned in one batch (up to **500,000** records). |
| `list` | optional | Name of the [named tracking list](https://env.7xmtools.com/api-docs/tracking.html#named-tracking-lists) this request should act on, e.g. `&list=user123`. |

### Get Notifications

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `type` | required | Must be `notification`. |
| `since` | required | Retrieve all available notifications that occurred since this date, in KeepaTime minutes. |
| `revise` | required | Boolean value (`0` = false, `1` = true). Whether or not to request notifications already marked as read. |
| `all` | optional | Boolean value (`0` = false, `1` = true). By default a single call returns at most **2,000** notifications, newest first. Set `all=1` to lift that limit and return every notification matching the request.<br>Example: `&all=1` |
| `readOnly` | optional | Boolean value (`0` = false, `1` = true). If set to `1`, the returned notifications are *not* marked as read, so a later call without `revise` still returns them. Use this to inspect notifications without consuming them.<br>Example: `&readOnly=1` |
| `list` | optional | Name of the [named tracking list](https://env.7xmtools.com/api-docs/tracking.html#named-tracking-lists) this request should act on, e.g. `&list=user123`. |

### Get Named Lists

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `type` | required | Must be `listNames`. |

### Set Webhook

| Parameter | Required | Description |
| --- | --- | --- |
| `key` | required | Your private API key. |
| `type` | required | Must be `webhook`. |
| `url` | required | The new webhook URL. |

## Domain IDs

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