# Keepa Scraper (`radeance/keepa-scraper`) Actor

Extract Amazon product & deals data from Keepa including Price History, Buy Box, BSR & Sales Ranks, Monthly Sales, Offers Ratings, Reviews and more product metadata. Search by ASIN, Amazon/Keepa URL or Keepa Deals URL across 11 marketplaces. Export to JSON, CSV or Excel for research and automation.

- **URL**: https://apify.com/radeance/keepa-scraper.md
- **Developed by:** [Radeance](https://apify.com/radeance) (community)
- **Features:** Limited permissions
- **Stats:** 374 total users, 92 monthly users, 98.9% runs succeeded, 4 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 product results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 💎 Keepa Scraper

The **Keepa Scraper** on **Apify** turns **Amazon Product data**, **Amazon Seller data** and **Deals** from [Keepa.com](https://keepa.com/) into structured, export-ready records. Add ASINs, Amazon product URLs, Keepa product URLs, or copied Keepa deals URLs in one run. The Actor recognizes each identifier automatically.

Retrieve **current and historical prices**, **BSR**, **Sales Ranks**, **Monthly Sales estimates**, **Ratings**, **Categories**, product details, and deal price differences across supported Amazon marketplaces. Choose clean, readable output or Keepa's raw fields, and select only the columns your workflow needs.

Results are written to the dataset as they arrive, ready for **Amazon online arbitrage**, **product research**, **deal monitoring**, **catalog enrichment**, and Apify API or integration workflows.

### ❶ Key Features

- **🏬 Seller & Storefront Search:**<br>
  - ✅ Look up sellers by **seller ID**, **Amazon seller URL**, or **Keepa seller URL**
  - ✅ Return a basic profile, or enable **Offers & Seller Data** for category/brand statistics and the complete storefront ASIN list
  - ✅ Optionally scrape every seller product as a separate product result

- **📦 Comprehensive Product Data:**<br>
  - ✅ Look up products by **ASIN**, **Amazon URL**, or **Keepa product URL**
  - ✅ Capture **Title**, **Brand**, **Manufacturer**, **Model**, **Categories**, **Images**, and identifiers
  - ✅ Includes all **Available Offers**, **Variations**, and **Monthly Sold estimates** if available

- **💰 Prices, Ranks & History:**<br>
  - ✅ Compare current **Amazon**, **New**, **Used**, **Buy Box**, **Warehouse** and list prices when available
  - ✅ Retrieve price histories, averages, minimums, maximums, and observation times
  - ✅ View **BSR**, **Sales Rank**, **Ratings**, **Review counts**, and **Monthly Sales history**

- **🔎 Keepa Deals Search:**<br>
  - ✅ Paste a Keepa Deals URL to reuse its saved marketplace, categories, price ranges, and other filters
  - ✅ Collect current and average values, price differences, percentages, and source pages
  - ✅ Fetch multiple pages per deals URL, stopping when Keepa has no more results

- **🌍 Multi-Marketplace Support:**<br>
  - ✅ Mix product lookups and deals URLs from supported marketplaces in one run
  - ✅ Infer a product URL's marketplace automatically
  - ✅ Remove duplicate product lookups and duplicate deals selections

- **📊 Flexible Data Output:**<br>
  - ✅ Receive readable records with human-friendly field names and expanded arrays
  - ✅ Choose **raw output** or select specific output fields for specific workflows
  - ✅ Stream results to the dataset for **JSON**, **CSV**, and **Excel** exports

### ❸ Input

#### Search Parameters

###### ℹ️ Parameters with a 💎 icon are **Apify paid plans only features**. Free users receive an upgrade warning and continue with the base search.

| Parameter                | Type           | Default | Description                                                                                                                                                 |
| ------------------------ | -------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `identifiers`            | array (string) | —       | ASINs, Amazon product URLs, Keepa product URLs, and complete Keepa deals URLs. Types can be mixed.                                                          |
| `marketplace`            | string         | `us`    | Marketplace for bare ASINs. Amazon and Keepa URLs supply their own marketplace.                                                                             |
| `max_pages`              | integer        | `1`     | Maximum pages per Keepa deals URL. This does not affect product lookups.                                                                                    |
| `refresh_product`        | boolean        | `true`  | 💎 Fetch product data and refresh it only when older than `refresh_threshold`, then return the updated product. Paid Apify plans only.                      |
| `refresh_threshold`      | string         | `2h`    | 💎 `48h`, `24h`, `12h`, `6h`, `2h` are included. `1h`, `30m` and `15m` currently cost 1 extra `PRODUCT` event per product actually refreshed and delivered. |
| `scrape_seller_products` | boolean        | `false` | 💎 Scrape products discovered from seller IDs or storefront URLs, up to `max_seller_products` per seller. Paid Apify plans only.                            |
| `max_seller_products`    | integer        | `0`     | 💎 Maximum products selected per seller when `scrape_seller_products` is enabled. `0` means all products. The seller storefront ASIN list is unaffected.    |
| `include_price_history`  | boolean        | `true`  | Add product price histories including Amazon, Buybox, New, Used, Warehouse & more (paid add-on)                                                             |
| `include_offers_sellers` | boolean        | `true`  | Add product offers, standalone offer counts, seller lists, and stock quantities (paid add-on).                                                              |
| `include_variants`       | boolean        | `false` | 💎 Get all product variants from a given ASIN, Amazon product or Keepa product URL                                                                          |
| `raw_output`             | boolean        | `false` | Keep Keepa's native fields and arrays instead of the readable output. Disabled add-ons remain excluded.                                                     |
| `output_fields`          | array (string) | `[]`    | Optional fields to include. Empty returns all enabled fields. Metadata fields are always included.                                                          |

#### Premium product refresh billing

Refresh thresholds of **48 hours, 24 hours, 12 hours, 6 hours, and 2 hours (default)** are included in the normal product lookup charge. The **1-hour, 30-minute, and 15-minute** thresholds temporarily use **one extra `PRODUCT` event at the normal product lookup price**, only when a refresh is actually performed and the resulting product is delivered.

An actually refreshed product therefore incurs **2 `PRODUCT` events and produces 1 dataset row**. Products that are already fresh incur only the normal `PRODUCT` event. For example, 10 returned products with 3 actual premium refreshes incur 13 `PRODUCT` events. Selected price-history and offers/seller add-ons are charged separately. This temporary billing arrangement will use the dedicated `REFRESH` event when it becomes available.

#### Supported Identifiers

| Identifier                                                                    | Search Type    |
| ----------------------------------------------------------------------------- | -------------- |
| `https://www.amazon.com/dp/B0C33CHG99`                                        | Product search |
| `https://www.amazon.com/Apple-iPhone-16-Version-128GB/dp/B0DHJH2GZL`          | Product search |
| `https://www.amazon.com/gp/product/B0DHJH2GZL`                                | Product search |
| `https://www.amazon.com/gp/aw/d/B0DHJH2GZL`                                   | Product search |
| `https://keepa.com/#!product/3-B0FRYBZR91`                                    | Product search |
| `https://keepa.com/product/1-B0HJYVHR2B`                                      | Product search |
| `B0C33CHG99`                                                                  | Product search |
| `A387EP4YCCRXCH`                                                              | Seller search  |
| `https://www.amazon.com/sp?seller=A387EP4YCCRXCH`                             | Seller search  |
| `https://www.amazon.com/s?me=A387EP4YCCRXCH`                                  | Seller search  |
| `https://keepa.com/seller/1-A387EP4YCCRXCH`                                   | Seller search  |
| `https://keepa.com/#!seller/1-A387EP4YCCRXCH`                                 | Seller search  |
| `https://keepa.com/#!deals/<Filter Query>` (copy the complete URL from Keepa) | Deals search   |
| `https://keepa.com/deals/<Filter Query>` (copy the complete URL from Keepa)   | Deals search   |
| `https://keepa.com/deals#<Filter Query>` (copy the complete URL from Keepa)   | Deals search   |

For all supported Keepa Deals URL formats, paste the complete encoded filter query. `/deals/#<Filter Query>` is also accepted. The marketplace and filters are inferred from the URL. The Actor fetches multiple pages of results per deals URL, stopping when Keepa has no more results or when `max_pages` is reached.

Amazon product and seller URLs such as `/dp/ASIN`, `/s?me=<sellerId>` and `/sp?seller=<sellerId>` can include marketplace, ASIN, and referral parameters. The Amazon domain of the url determines the marketplace. Bare ASIN or seller IDs use your selected `marketplace`.

#### Supported Amazon Marketplaces

###### ℹ️ The Actor supports all 11 Amazon marketplaces Keepa supports. ASINs require the `marketplace` input parameter to be set. Amazon and Keepa URLs supply their own marketplace automatically.

| Marketplace    | Domain        |
| -------------- | ------------- |
| Brazil         | amazon.com.br |
| Canada         | amazon.ca     |
| France         | amazon.fr     |
| Germany        | amazon.de     |
| India          | amazon.in     |
| Italy          | amazon.it     |
| Japan          | amazon.co.jp  |
| Mexico         | amazon.com.mx |
| Spain          | amazon.es     |
| United States  | amazon.com    |
| United Kingdom | amazon.co.uk  |

#### JSON Input

Sample JSON input for the Apify API, CLI, or integrations:

##### Product Search

```json
{
    "identifiers": [
        "B0BN72FYFG",
        "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/"
    ],
    "marketplace": "us",
    "raw_output": false,
    "refresh_product": true,
    "include_variants": false,
    "include_price_history": true,
    "include_offers_sellers": true,
    "output_fields": []
}
```

##### Seller Search

```json
{
    "identifiers": ["https://www.amazon.com/sp?seller=A387EP4YCCRXCH"],
    "marketplace": "us",
    "scrape_seller_products": false,
    "max_seller_products": 0,
    "include_offers_sellers": true,
    "output_fields": []
}
```

##### Keepa Deals Search

```json
{
    "identifiers": ["https://keepa.com/deals#<Filter Query>"],
    "max_pages": 1,
    "raw_output": false
}
```

To add deals, paste a complete Keepa deals URL into the same `identifiers` list. The Actor will use the filters saved in that URL.

### ❸ Output

#### Seller Search

###### Requires: `Seller ID` or `Amazon seller URL`

###### Base fields: `data_captured_at`, `data_type`, `seller_id`, `seller_name`, `marketplace`, `domain_id`, `seller_url`, `rating`, `rating_count`

###### ℹ️ This output sample shows selected fields from one product search. Long histories are shortened and fields were omitted for readability reasons. A run dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/keepa-scraper/output-schema)

###### ℹ️ A seller search will be billed like a product search using the same pricing event.

```json
{
    "data_type": "seller_search",
    "data_captured_at": "2026-10-26T12:00:00Z",
    "seller_id": "A387EP4YCCRXCH",
    "seller_name": "Example seller",
    "marketplace": "us",
    "domain_id": 1,
    "seller_url": "https://www.amazon.com/sp?seller=A387EP4YCCRXCH",
    "rating": 100,
    "rating_count": 100
}
```

##### Offers & Seller Data Add-on enabled

###### Requires: `include_offers_sellers` set to `true`

###### Additional fields: `total_storefront_asins`, `seller_category_statistics`, `seller_brand_statistics`, `asin_list`

###### ℹ️ Enabling the Offers & Seller Data add-on returns additional fields for category and brand statistics, as well as the seller's storefront ASIN list. **Free Apify plans receive up to the newest 25 unique ASINs per seller; paid plans receive the complete ASIN list.** ASINs retain the endpoint's newest-first order. Storefront totals and statistics still describe the complete seller storefront. A run dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/keepa-scraper/output-schema)

```json
{
    "data_type": "seller_search",
    "data_captured_at": "2026-10-26T12:00:00Z",
    "seller_id": "A387EP4YCCRXCH",
    "seller_name": "Example seller",
    "marketplace": "us",
    "domain_id": 1,
    "seller_url": "https://www.amazon.com/sp?seller=A387EP4YCCRXCH",
    "rating": 100,
    "rating_count": 100,
    "total_storefront_asins": 2,
    "seller_category_statistics": [
        {
            "category_id": "123456",
            "name": "Example category",
            "product_count": 2,
            "avg30_sales_rank": 1500,
            "product_count_with_amazon_offer": "1"
        }
    ],
    "seller_brand_statistics": [
        {
            "brand": "Example brand",
            "product_count": 2,
            "avg30_sales_rank": 1500,
            "product_count_with_amazon_offer": "1"
        }
    ],
    "asin_list": ["B0HJYVHR2B", "B0DHJH2GZL"]
}
```

###### ℹ️ The `asin_list` field contains the seller's storefront ASINs in **newest-first order**. The `total_storefront_asins` field describes the total number of unique ASINs in the seller's storefront seen, regardless of how many are returned in the `asin_list`. <br>⚠️ The `asin_list` is **limited to 25 ASINs for free Apify plans**. Paid plans receive the complete storefront ASIN list.

###### ℹ️ Set `scrape_seller_products` to `true` to return seller products separately, using product search billing and the selected product add-ons. You can limit the amount of returned seller products with `max_seller_products` to select the first N ASINs per seller in storefront order, or leave it at default `0` to scrape all products. This feature requires a **paid Apify plan subscription**.

#### Product Search

###### Requires: `ASIN`, `Amazon URL`, or `Keepa product URL`

###### Base fields: `data_captured_at`, `data_type`, `asin`, `title`, `marketplace`, `brand`, `model`, `product_url`, `product_image_url`, `new_price`, `used_price`, `warehouse_price`, `new_fba_price`, `new_fbm_price`, `buybox_price`, `list_price`, `monthly_sold`, `bsr`, `bsr_history`, `rating`, `reviews`, `statistics`, `category_tree` and many more.

###### ℹ️ This output sample shows selected fields from one product search. Long histories are shortened and fields were omitted for readability reasons. A run dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/keepa-scraper/output-schema)

```json
[
    {
        "data_captured_at": "2026-10-15T12:26:28.477959Z",
        "data_type": "product_search",
        "asin": "B0BN72FYFG",
        "title": "Apple iPhone 14, 128GB, Midnight - Unlocked (Renewed)",
        "marketplace": "us",
        "currency": "USD",
        "brand": "Apple",
        "model": "iPhone 14",
        "product_url": "https://www.amazon.com/dp/B0BN72FYFG",
        "product_image_url": "https://m.media-amazon.com/images/I/61WUSYIQdKL.jpg",
        "new_price": 298.94,
        "used_price": 252.99,
        "warehouse_price": 252.99,
        "refurbished_price": 252.99,
        "new_fba_price": 299.0,
        "new_fbm_price": 298.94,
        "buybox_price": 299.95,
        "list_price": 389.0,
        "buybox_seller_id": "A2ZA9A2J109LFF",
        "buybox_is_amazon": false,
        "buybox_is_fba": false,
        "buybox_is_used": false,
        "buybox_is_shippable": true,
        "buybox_is_free_shipping_eligible": true,
        "buybox_is_prime_eligible": true,
        "buybox_availability_message": "IN_STOCK",
        "buybox_shipping_country": "US",
        "buybox_shipping": 0.0,
        "buybox_eligible_offer_counts": {
            "new_fba": 9,
            "new_fbm": 32
        },
        "buybox_seller_id_history": [
            { "seen_at": "2026-09-30T14:49:00Z", "seller_id": "A2ZA9A2J109LFF" }
        ],
        "buybox_stats": {
            "AUA7F6JLX2JA1": {
                "percentage_won": 11.11076,
                "avg_price": 486.48,
                "avg_new_offer_count": 25,
                "is_fba": false,
                "last_seen": "2026-02-18T08:12:00Z"
            },
            "A3J9LL0SKEEIO0": {
                "percentage_won": 7.8219943,
                "avg_price": 312.03,
                "avg_new_offer_count": 50,
                "is_fba": false,
                "last_seen": "2026-10-13T07:26:00Z"
            },
            "A230ZFNKXE1WUD": {
                "percentage_won": 6.1192503,
                "avg_price": 521.43,
                "avg_new_offer_count": 27,
                "is_fba": false,
                "last_seen": "2026-06-15T11:00:00Z"
            }
        },
        "bsr": 1,
        "monthly_sold": 6000,
        "sales_rank_drops30": 3,
        "sales_rank_drops90": 9,
        "sales_rank_drops180": 70,
        "sales_rank_drops365": 630,
        "rating": 4.0,
        "rating_count": 13859,
        "upc_list": ["753575978327"],
        "category_tree": [
            { "category_id": 2335752011, "name": "Cell Phones & Accessories" },
            { "category_id": 7072561011, "name": "Cell Phones" }
        ],
        "statistics": {
            "new_price": {
                "current": 298.94,
                "average_30_days": 296.13
            },
            "buybox_price": {
                "current": 299.95,
                "average_30_days": 304.45
            },
            "bsr": {
                "current": 1,
                "average_30_days": 1
            }
        },
        "bsr_history": [{ "seen_at": "2026-09-16T08:32:00Z", "value": 1 }],
        "coupon_history": [
            {
                "seen_at": "2025-10-09T23:32:00Z",
                "one_time": { "discount_type": "percentage", "value": 5 }
            }
        ],
        "reviews": {
            "last_update": "2026-10-12T00:33:00Z",
            "rating_count": 1029,
            "review_count": 1393,
            "rating_count_history": [
                {
                    "seen_at": "2025-03-25T04:16:00Z",
                    "value": 1017
                },
                {
                    "seen_at": "2025-03-27T17:50:00Z",
                    "value": 1023
                },
                {
                    "seen_at": "2025-04-03T18:12:00Z",
                    "value": 1029
                }
            ],
            "review_count_history": [
                {
                    "seen_at": "2026-09-20T19:25:00Z",
                    "value": 1361
                },
                {
                    "seen_at": "2026-09-30T17:00:00Z",
                    "value": 1374
                },
                {
                    "seen_at": "2026-10-12T00:33:00Z",
                    "value": 1393
                }
            ]
        }
    }
]
```

##### Offers & Seller Data Add-on

###### Requires: `include_offers_sellers` set to `true`

###### Additional fields: `new_offer_count`, `total_offer_count`, `retrieved_offer_count`, `offer_count_fba`, `offer_count_fbm`, `stock_buybox`, `stock_per_condition3rd_fba`, `seller_ids_lowest_fba`, `seller_ids_lowest_fbm`, `last_offers_update`, `last_stock_update`, `new_offer_count_history`, and `offers`

###### ℹ️ Set `include_offers_sellers` to `true` to add offer, seller, and stock fields to the **same product record**. For example, these additional fields come from the product above (for readability reasons only first offer is shown). A run dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/keepa-scraper/output-schema)

```json
{
    "new_offer_count": 41,
    "total_offer_count": 118,
    "retrieved_offer_count": 50,
    "offer_count_fba": 25,
    "offer_count_fbm": 93,
    "stock_buybox": 188,
    "stock_per_condition3rd_fba": {
        "new": 240,
        "used_like_new": 12
    },
    "seller_ids_lowest_fba": ["AFBA0000000001"],
    "seller_ids_lowest_fbm": ["A2ZA9A2J109LFF"],
    "last_offers_update": "2026-10-26T10:00:00Z",
    "last_stock_update": "2026-10-26T10:00:00Z",
    "new_offer_count_history": [
        {
            "seen_at": "2026-10-26T10:00:00Z",
            "value": 41
        }
    ],
    "offers": [
        {
            "offer_id": 385,
            "seller_id": "A2ZA9A2J109LFF",
            "condition_name": "new",
            "is_prime": false,
            "is_fba": false,
            "is_amazon": false,
            "is_shippable": true,
            "price": 299.95,
            "shipping": 0.0,
            "total_price": 299.95,
            "stock_count": 188,
            "last_seen": "2026-10-26T10:00:00Z",
            "is_active": true,
            "stock_history": [
                {
                    "seen_at": "2026-10-26T10:00:00Z",
                    "value": 188
                }
            ]
        }
    ]
}
```

##### Historical Pricing Data Add-on

###### Requires: `include_price_history` set to `true`

###### Additional fields: `amazon_price_history`, `new_price_history`, `used_price_history`, `new_fba_price_history`, `new_fbm_price_history`, `warehouse_price_history`, `refurbished_price_history`, `buybox_price_history`, `buybox_used_price_history`, `list_price_history`, and `prime_exclusive_price_history`

###### ℹ️ Set `include_price_history` to `true` to add price histories to the **same product record**. Price statistics and non-price histories are already included in the base output. These additional fields show a (shortened for readability) history from the product above. A run dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/keepa-scraper/output-schema)

```json
{
    "amazon_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 349.95 }
    ],
    "new_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 329.95 }
    ],
    "used_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 249.95 }
    ],
    "new_fba_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 329.95 }
    ],
    "new_fbm_price_history": [
        { "seen_at": "2026-10-26T10:00:00Z", "price": 299.95, "shipping": 4.99 }
    ],
    "warehouse_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 239.95 }
    ],
    "refurbished_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 289.95 }
    ],
    "buybox_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 329.95, "shipping": 0.0 }
    ],
    "buybox_used_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 249.95, "shipping": 0.0 }
    ],
    "list_price_history": [
        { "seen_at": "2026-10-12T00:33:00Z", "price": 399.95 }
    ],
    "prime_exclusive_price_history": [
        { "seen_at": "2026-10-26T10:00:00Z", "price": 279.95 }
    ]
}
```

#### Deals Search

###### Requires: `Keepa deals URL` copied after setting filters on Keepa (Pro Filters are not supported)

###### Fields: `data_captured_at`, `data_type`, `page`, `asin`, `title`, `marketplace`, `product_url`, `metric`, `current_value`, `average_value`, `difference_from_average`, `difference_percent`, `category_ids`, `source_url`, and more

###### ℹ️ This base-output sample shows selected fields from one deal. The dataset contains the full record. For a complete list of fields, see our [Output Schema / JSON Schema](https://apify.com/radeance/keepa-scraper/output-schema)

```json
[
    {
        "data_captured_at": "2026-09-30T15:31:49.554861Z",
        "data_type": "deal",
        "page": 0,
        "asin": "B0028OA2O0",
        "title": "Justice League: Justice on Trial (DVD) (AT)",
        "marketplace": "us",
        "currency": "USD",
        "product_url": "https://www.amazon.com/dp/B0028OA2O0",
        "category_ids": [2649512011],
        "metric": "buybox_price",
        "price_type_id": 18,
        "date_range": "week",
        "current_value": 5.97,
        "current_since": "2026-09-29T10:26:00Z",
        "average_value": 47.56,
        "difference_from_average": 41.59,
        "difference_percent": 87,
        "deal_created_at": "2026-09-29T10:26:00Z"
    }
]
```

#### Table View Output

##### Overview Table 📦

<img src="https://i.imgur.com/lZxZoNg.png" alt="Keepa Scraper Overview Table Output" style="border-radius: 14px;" />

##### Product Table 📦

<img src="https://i.imgur.com/h14JILg.png" alt="Keepa Scraper Overview Table Output" style="border-radius: 14px;" />

##### Catalog & Media Table 📦

<img src="https://i.imgur.com/wFblGo2.png" alt="Keepa Scraper Overview Table Output" style="border-radius: 14px;" />

##### Statistics Table 📦

<img src="https://i.imgur.com/8jeag2q.png" alt="Keepa Scraper Overview Table Output" style="border-radius: 14px;" />

##### Price & Rank Histories Table 📦

<img src="https://i.imgur.com/7AzfVfC.png" alt="Keepa Scraper Overview Table Output" style="border-radius: 14px;" />

##### Offers Table 📦

<img src="https://i.imgur.com/gfIXuxD.png" alt="Keepa Scraper Overview Table Output" style="border-radius: 14px;" />

##### Deals Table 📦

<img src="https://i.imgur.com/zBMqg8i.png" alt="Keepa Scraper Overview Table Output" style="border-radius: 14px;" />

##### Sellers Table 📦

### ❹ Usage Limits

The Actor's default limits depend on your Apify plan:

| User Type | Run allowance | Unique identifiers per run | Seller IDs per run | Keepa Deals URLs per run | Deals pages per Keepa Deals URL | Reset Period |
| --------- | ------------- | -------------------------- | ------------------ | ------------------------ | ------------------------------- | ------------ |
| **Free**  | 50 trial runs | 5                          | 1                  | 1                        | 1                               | No reset     |
| **Paid**  | Not limited   | 1000                       | -                  | -                        | 1000                            |

#### How Usage Limits Work

- **Free users**: The 50-run trial does not reset. Only the first five unique identifiers (at most one seller identifier and one Keepa Deals URL) and up to 1 deals pages are processed per run. When `include_offers_sellers` is enabled, each seller's `asin_list` is limited to the **newest 25 ASINs**. Upgrade to a paid Apify plan for the complete storefront ASIN list.
- **Paid users**: Can process up to 1000 unique identifiers and request up to 500 pages per deals URL.
- **All users**: Duplicate identifiers are removed before limits are applied. Apify usage charges and any external verification costs are separate.

### ❺ Use Cases

Use the ready-made tasks below to start with a preconfigured Keepa Scraper workflow:

- **[Get Amazon Price History for Any Product](https://apify.com/radeance/keepa-scraper/examples/get-amazon-price-history-for-any-product):**
  Get detailed historical pricing for Amazon products, including Amazon, New, Used, Buy Box, FBA, FBM, Warehouse, Lightning Deal, and other price histories.

- **[Get Amazon Monthly Sales Estimates](https://apify.com/radeance/keepa-scraper/examples/get-amazon-monthly-sales-estimates):**
  Estimate how many units an Amazon product sells per month. Compare demand across ASINs alongside BSR, prices, ratings, reviews, and other product metrics.

- **[Get Amazon Sales Rank & BSR History](https://apify.com/radeance/keepa-scraper/examples/get-amazon-sales-rank-bsr-history):**
  Analyze current and historical Amazon Best Sellers Rank (BSR), category rankings, monthly sold estimates, and sales-rank trends for product research and demand analysis.

- **[Analyze Amazon Buy Box Prices & Sellers](https://apify.com/radeance/keepa-scraper/examples/analyze-amazon-buy-box-prices-sellers):**
  Analyze current and historical Buy Box prices, winning sellers, FBA status, shipping, stock, eligible offers, and Buy Box seller history.

- **[Get Amazon Sellers, Offers, Prices & Stock](https://apify.com/radeance/keepa-scraper/examples/get-amazon-sellers-offers-prices-stock):**
  Extract FBA and FBM offers, seller IDs, prices, shipping, stock quantities, Prime status, offer counts, and other competitive seller data.

- **[Check Amazon Price Drops](https://apify.com/radeance/keepa-scraper/examples/check-amazon-price-drops):**
  Determine whether an Amazon product is currently a good deal by comparing its price with historical averages, minimums, maximums, and previous price levels.
  The **Keepa Scraper** combines product lookups and filtered deals searches in a single, structured dataset.

### ❻ FAQ

#### How do I find the ASIN of a product?

The ASIN is Amazon's 10-character product identifier. It appears after `/dp/` in many Amazon product URLs and in the product details on Amazon.

#### Can I scrape data for multiple products at once?

Yes. Add ASINs, Amazon product or seller URLs, Keepa product or seller URLs, and Keepa deals URLs to the same `identifiers` list. The Actor recognizes each type, removes duplicates, and writes records as they arrive. Plan limits apply which you can check [here](https://apify.com/radeance/keepa-scraper#usage-limits).

#### How accurate is the data, especially pricing and seller information?

You can enable `refresh_product` to fetch the latest product data and refresh it only when older than `refresh_threshold`. This ensures you get the most up-to-date information available. Keepa's data is generally reliable, but always cross-check critical information directly on Amazon or Keepa if needed. Check `last_update` for the last product data refresh time on Keepas database and the relevant `*_seen_at` or `last_*_update` fields for individual price, rank, sales or history value observation times. Also check `data_captured_at` for the scrape time from us. Some fields may be null when Keepa has no value.

#### How do I find the seller ID of a seller?

The seller ID is Amazon's unique identifier for a seller. It appears after `seller=` in many Amazon seller URLs and in the seller storefront or details page on Amazon.

#### Can I get all seller's storefront ASINs?

Yes. You can enable the offers & seller data add-on by setting `include_offers_sellers` to `true`. This will return the complete list of ASINs in the seller's storefront, along with category and brand statistics. This feature requires a **paid Apify plan subscription**.

#### How can i retrieve products from a seller's storefront?

You can enable `scrape_seller_products` to scrape products discovered from seller IDs or storefront URLs, up to `max_seller_products` per seller. This feature requires a **paid Apify plan subscription**. The Actor will return the seller's products separately, using product search billing and the selected product add-ons.

#### What marketplaces are supported?

The Keepa Scraper supports these 11 Amazon marketplaces:

- Brazil (br)
- Canada (ca)
- Germany (de)
- France (fr)
- India (in)
- Italy (it)
- Japan (jp)
- Mexico (mx)
- Spain (es)
- United Kingdom (uk)
- United States (us)

### ❼ While the scraper is running

During the run, the actor will output log messages letting you know what is going on at any point. Each message always contains specific information about the process including which url / page the actor is working on.

If you provide invalid inputs to the actor, it will immediately stop with a failure state and output log messages explaining what is wrong. If you are unsure what went wrong feel free to open up an issue in the issue tab.

### ❽ Disclaimer

The **Keepa Scraper** is not affiliated with or endorsed by Keepa.com or Amazon.com. The Keepa Scraper is a third-party tool that uses publicly available data from Keepa.com and Amazon.com to provide insights and analysis. We are not responsible for any actions taken by users of the Keepa Scraper, including any violations of Keepa.com's or Amazon.com's terms of service.

The **Keepa Scraper** is designed to ethically extract **only publicly available product data**, and it **does not** scrape private user data such as personal email addresses or personal identifiers.

Our services are ethical and **do not extract any private user data**. They only extract **what individuals or companies chose to share publicly**. We therefore believe that our services, when used for ethical purposes by our users, are safe to use. However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. For more information you can read this [Apify blog post](https://blog.apify.com/is-web-scraping-legal/) on the legality of web scraping.

### ❾ Feedback and Support

**Your satisfaction** is **important** to us! Therefore we are constantly striving to enhance the performance of our Actors.

If you have any technical feedback or encounter any bugs with the Keepa Scraper, please create an issue in the Actor’s Issues tab on the Apify Console.

You can also contact us directly for custom integrations or project use cases at business@radeance.com.

# Changelog

This Actor's version history is a separate document: https://apify.com/radeance/keepa-scraper/changelog.md

# Actor input Schema

## `identifiers` (type: `array`):

10-character ASINs, Amazon product URLs (/dp/, /gp/product/, or /gp/aw/d/), Keepa product URLs (keepa.com/product/<domainId>-<ASIN> or keepa.com/#!product/<domainId>-<ASIN>), Seller IDs (for example A387EP4YCCRXCH), Amazon seller URLs (/sp?seller=ID or /s?me=ID), Keepa seller URLs (keepa.com/#!seller/<domainId>-<sellerId>) or Keepa deals URLs (keepa.com/deals#, keepa.com/deals/, or keepa.com/#!deals/ with encoded filters). Marketplaces are automatically inferred by the URLs. Product, seller and deals search can be mixed in one run

## `marketplace` (type: `string`):

Marketplace used for bare ASINs. Amazon and Keepa product URLs use their own marketplace provided. Keepa Deals URLs infer it from the URL.

## `max_pages` (type: `integer`):

For each Keepa deals URL, fetches up to this many pages. Each page contains up to 150 deals. Does not affect product lookups.

## `include_price_history` (type: `boolean`):

Include product price histories. Current prices, price statistics, and non-price histories remain in base output. Charged only when price history is included in a product result.

## `include_offers_sellers` (type: `boolean`):

Include product offers, seller lists, standalone offer counts, and stock quantities. For seller searches, include category/brand statistics, storefront counts, and the complete ASIN list. Charged as OFFERS_SELLERS only when selected add-on data is delivered. Buy Box details remain in base product output.

## `refresh_product` (type: `boolean`):

Enabled by default. Fetch the product first and refresh it only when its last update is older than the selected refresh threshold, then fetch the updated product for output. Applies to variants and scraped seller products. Requires a paid Apify plan subscription. Does not refresh Keepa Deals results.

## `refresh_threshold` (type: `string`):

Refresh products only when their last update is at least this old. Used when refresh_product is enabled. The 1-hour, 30-minute, and 15-minute options are temporarily billed as 1 extra PRODUCT event at the normal product lookup price, only when a refresh is performed and the resulting product is delivered. This means 2 PRODUCT events for 1 product dataset row. Fresh products have no refresh surcharge. Other selected add-ons are billed separately. Requires a paid Apify plan subscription.

## `include_variants` (type: `boolean`):

Also scrape the variant ASINs returned by each initial product lookup, using the same marketplace and output settings. Each unique variant is returned as a separate product result and billed as a product lookup. Does not expand seller storefront products or Keepa Deals results.

## `scrape_seller_products` (type: `boolean`):

For seller IDs and storefront URLs, fetch products as separate results, up to max_seller_products per seller (all by default). Each fetched product uses normal product search billing and the selected product add-ons and refresh options. Does not expand product variants. Requires a paid Apify plan subscription.

## `max_seller_products` (type: `integer`):

Default: 0 means all products. Maximum number of product ASINs selected from each seller's storefront when scrape_seller_products is enabled. Uses storefront order. Duplicate products are fetched once per marketplace. Does not limit the complete asin_list included with Offers & Seller Data.

## `raw_output` (type: `boolean`):

Return endpoint-native Keepa product or deal fields and compact arrays without clean-output transformations for existing workflow integrations. Disabled product add-ons remain excluded. Actor metadata fields data_captured_at and data_type are still included.

## `output_fields` (type: `array`):

Leave empty to push all product or deal output fields. Select top-level fields to push only those fields; data_captured_at and data_type are always included. Fields absent from a record are omitted. With Raw output enabled, use endpoint-native names; raw-only names are marked (raw).

## Actor input object example

```json
{
  "identifiers": [
    "B0BN72FYFG",
    "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
    "https://www.amazon.com/sp?seller=A387EP4YCCRXCH",
    "https://keepa.com/deals#%7B%22page%22%3A0%2C%22domainId%22%3A%221%22%2C%22excludeCategories%22%3A%5B%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22includeCategories%22%3A%5B%5B%5D%2C%5B172282%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22priceTypes%22%3A%5B0%5D%2C%22deltaPercentRange%22%3A%5B20%2C80%5D%2C%22salesRankRange%22%3A%5B-1%2C-1%5D%2C%22currentRange%22%3A%5B500%2C40000%5D%2C%22minRating%22%3A-1%2C%22isLowest%22%3Afalse%2C%22isLowest90%22%3Afalse%2C%22isLowestOffer%22%3Afalse%2C%22isOutOfStock%22%3Afalse%2C%22titleSearch%22%3A%22%22%2C%22isRangeEnabled%22%3Atrue%2C%22isFilterEnabled%22%3Afalse%2C%22filterErotic%22%3Atrue%2C%22singleVariation%22%3Atrue%2C%22hasReviews%22%3Afalse%2C%22isPrimeExclusive%22%3Afalse%2C%22mustHaveAmazonOffer%22%3Afalse%2C%22mustNotHaveAmazonOffer%22%3Afalse%2C%22sortType%22%3A3%2C%22dateRange%22%3A1%2C%22warehouseConditions%22%3A%5B1%2C2%2C3%2C4%2C5%5D%2C%22settings%22%3A%7B%22viewTyp%22%3A0%7D%2C%22perPage%22%3A150%2C%22salesRankDisplayGroup%22%3A%5B%5D%2C%22websiteDisplayGroupName%22%3A%5B%5D%2C%22websiteDisplayGroup%22%3A%5B%5D%2C%22type%22%3A%5B%5D%2C%22manufacturer%22%3A%5B%5D%2C%22brand%22%3A%5B%5D%2C%22brandStoreName%22%3A%5B%5D%2C%22brandStoreUrlName%22%3A%5B%5D%2C%22model%22%3A%5B%5D%2C%22color%22%3A%5B%5D%2C%22size%22%3A%5B%5D%2C%22unitType%22%3A%5B%5D%2C%22scent%22%3A%5B%5D%2C%22itemForm%22%3A%5B%5D%2C%22pattern%22%3A%5B%5D%2C%22style%22%3A%5B%5D%2C%22material%22%3A%5B%5D%2C%22itemTypeKeyword%22%3A%5B%5D%2C%22targetAudienceKeyword%22%3A%5B%5D%2C%22edition%22%3A%5B%5D%2C%22format%22%3A%5B%5D%2C%22author%22%3A%5B%5D%2C%22binding%22%3A%5B%5D%2C%22languages%22%3A%5B%5D%2C%22partNumber%22%3A%5B%5D%2C%22deltaRange%22%3A%5B0%2C2147483647%5D%7D"
  ],
  "marketplace": "us",
  "max_pages": 1,
  "include_price_history": true,
  "include_offers_sellers": true,
  "refresh_product": true,
  "refresh_threshold": "2h",
  "include_variants": false,
  "scrape_seller_products": false,
  "max_seller_products": 0,
  "raw_output": false,
  "output_fields": []
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "identifiers": [
        "B0BN72FYFG",
        "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
        "https://www.amazon.com/sp?seller=A387EP4YCCRXCH",
        "https://keepa.com/deals#%7B%22page%22%3A0%2C%22domainId%22%3A%221%22%2C%22excludeCategories%22%3A%5B%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22includeCategories%22%3A%5B%5B%5D%2C%5B172282%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22priceTypes%22%3A%5B0%5D%2C%22deltaPercentRange%22%3A%5B20%2C80%5D%2C%22salesRankRange%22%3A%5B-1%2C-1%5D%2C%22currentRange%22%3A%5B500%2C40000%5D%2C%22minRating%22%3A-1%2C%22isLowest%22%3Afalse%2C%22isLowest90%22%3Afalse%2C%22isLowestOffer%22%3Afalse%2C%22isOutOfStock%22%3Afalse%2C%22titleSearch%22%3A%22%22%2C%22isRangeEnabled%22%3Atrue%2C%22isFilterEnabled%22%3Afalse%2C%22filterErotic%22%3Atrue%2C%22singleVariation%22%3Atrue%2C%22hasReviews%22%3Afalse%2C%22isPrimeExclusive%22%3Afalse%2C%22mustHaveAmazonOffer%22%3Afalse%2C%22mustNotHaveAmazonOffer%22%3Afalse%2C%22sortType%22%3A3%2C%22dateRange%22%3A1%2C%22warehouseConditions%22%3A%5B1%2C2%2C3%2C4%2C5%5D%2C%22settings%22%3A%7B%22viewTyp%22%3A0%7D%2C%22perPage%22%3A150%2C%22salesRankDisplayGroup%22%3A%5B%5D%2C%22websiteDisplayGroupName%22%3A%5B%5D%2C%22websiteDisplayGroup%22%3A%5B%5D%2C%22type%22%3A%5B%5D%2C%22manufacturer%22%3A%5B%5D%2C%22brand%22%3A%5B%5D%2C%22brandStoreName%22%3A%5B%5D%2C%22brandStoreUrlName%22%3A%5B%5D%2C%22model%22%3A%5B%5D%2C%22color%22%3A%5B%5D%2C%22size%22%3A%5B%5D%2C%22unitType%22%3A%5B%5D%2C%22scent%22%3A%5B%5D%2C%22itemForm%22%3A%5B%5D%2C%22pattern%22%3A%5B%5D%2C%22style%22%3A%5B%5D%2C%22material%22%3A%5B%5D%2C%22itemTypeKeyword%22%3A%5B%5D%2C%22targetAudienceKeyword%22%3A%5B%5D%2C%22edition%22%3A%5B%5D%2C%22format%22%3A%5B%5D%2C%22author%22%3A%5B%5D%2C%22binding%22%3A%5B%5D%2C%22languages%22%3A%5B%5D%2C%22partNumber%22%3A%5B%5D%2C%22deltaRange%22%3A%5B0%2C2147483647%5D%7D"
    ],
    "output_fields": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("radeance/keepa-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "identifiers": [
        "B0BN72FYFG",
        "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
        "https://www.amazon.com/sp?seller=A387EP4YCCRXCH",
        "https://keepa.com/deals#%7B%22page%22%3A0%2C%22domainId%22%3A%221%22%2C%22excludeCategories%22%3A%5B%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22includeCategories%22%3A%5B%5B%5D%2C%5B172282%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22priceTypes%22%3A%5B0%5D%2C%22deltaPercentRange%22%3A%5B20%2C80%5D%2C%22salesRankRange%22%3A%5B-1%2C-1%5D%2C%22currentRange%22%3A%5B500%2C40000%5D%2C%22minRating%22%3A-1%2C%22isLowest%22%3Afalse%2C%22isLowest90%22%3Afalse%2C%22isLowestOffer%22%3Afalse%2C%22isOutOfStock%22%3Afalse%2C%22titleSearch%22%3A%22%22%2C%22isRangeEnabled%22%3Atrue%2C%22isFilterEnabled%22%3Afalse%2C%22filterErotic%22%3Atrue%2C%22singleVariation%22%3Atrue%2C%22hasReviews%22%3Afalse%2C%22isPrimeExclusive%22%3Afalse%2C%22mustHaveAmazonOffer%22%3Afalse%2C%22mustNotHaveAmazonOffer%22%3Afalse%2C%22sortType%22%3A3%2C%22dateRange%22%3A1%2C%22warehouseConditions%22%3A%5B1%2C2%2C3%2C4%2C5%5D%2C%22settings%22%3A%7B%22viewTyp%22%3A0%7D%2C%22perPage%22%3A150%2C%22salesRankDisplayGroup%22%3A%5B%5D%2C%22websiteDisplayGroupName%22%3A%5B%5D%2C%22websiteDisplayGroup%22%3A%5B%5D%2C%22type%22%3A%5B%5D%2C%22manufacturer%22%3A%5B%5D%2C%22brand%22%3A%5B%5D%2C%22brandStoreName%22%3A%5B%5D%2C%22brandStoreUrlName%22%3A%5B%5D%2C%22model%22%3A%5B%5D%2C%22color%22%3A%5B%5D%2C%22size%22%3A%5B%5D%2C%22unitType%22%3A%5B%5D%2C%22scent%22%3A%5B%5D%2C%22itemForm%22%3A%5B%5D%2C%22pattern%22%3A%5B%5D%2C%22style%22%3A%5B%5D%2C%22material%22%3A%5B%5D%2C%22itemTypeKeyword%22%3A%5B%5D%2C%22targetAudienceKeyword%22%3A%5B%5D%2C%22edition%22%3A%5B%5D%2C%22format%22%3A%5B%5D%2C%22author%22%3A%5B%5D%2C%22binding%22%3A%5B%5D%2C%22languages%22%3A%5B%5D%2C%22partNumber%22%3A%5B%5D%2C%22deltaRange%22%3A%5B0%2C2147483647%5D%7D",
    ],
    "output_fields": [],
}

# Run the Actor and wait for it to finish
run = client.actor("radeance/keepa-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "identifiers": [
    "B0BN72FYFG",
    "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
    "https://www.amazon.com/sp?seller=A387EP4YCCRXCH",
    "https://keepa.com/deals#%7B%22page%22%3A0%2C%22domainId%22%3A%221%22%2C%22excludeCategories%22%3A%5B%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22includeCategories%22%3A%5B%5B%5D%2C%5B172282%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%2C%5B%5D%5D%2C%22priceTypes%22%3A%5B0%5D%2C%22deltaPercentRange%22%3A%5B20%2C80%5D%2C%22salesRankRange%22%3A%5B-1%2C-1%5D%2C%22currentRange%22%3A%5B500%2C40000%5D%2C%22minRating%22%3A-1%2C%22isLowest%22%3Afalse%2C%22isLowest90%22%3Afalse%2C%22isLowestOffer%22%3Afalse%2C%22isOutOfStock%22%3Afalse%2C%22titleSearch%22%3A%22%22%2C%22isRangeEnabled%22%3Atrue%2C%22isFilterEnabled%22%3Afalse%2C%22filterErotic%22%3Atrue%2C%22singleVariation%22%3Atrue%2C%22hasReviews%22%3Afalse%2C%22isPrimeExclusive%22%3Afalse%2C%22mustHaveAmazonOffer%22%3Afalse%2C%22mustNotHaveAmazonOffer%22%3Afalse%2C%22sortType%22%3A3%2C%22dateRange%22%3A1%2C%22warehouseConditions%22%3A%5B1%2C2%2C3%2C4%2C5%5D%2C%22settings%22%3A%7B%22viewTyp%22%3A0%7D%2C%22perPage%22%3A150%2C%22salesRankDisplayGroup%22%3A%5B%5D%2C%22websiteDisplayGroupName%22%3A%5B%5D%2C%22websiteDisplayGroup%22%3A%5B%5D%2C%22type%22%3A%5B%5D%2C%22manufacturer%22%3A%5B%5D%2C%22brand%22%3A%5B%5D%2C%22brandStoreName%22%3A%5B%5D%2C%22brandStoreUrlName%22%3A%5B%5D%2C%22model%22%3A%5B%5D%2C%22color%22%3A%5B%5D%2C%22size%22%3A%5B%5D%2C%22unitType%22%3A%5B%5D%2C%22scent%22%3A%5B%5D%2C%22itemForm%22%3A%5B%5D%2C%22pattern%22%3A%5B%5D%2C%22style%22%3A%5B%5D%2C%22material%22%3A%5B%5D%2C%22itemTypeKeyword%22%3A%5B%5D%2C%22targetAudienceKeyword%22%3A%5B%5D%2C%22edition%22%3A%5B%5D%2C%22format%22%3A%5B%5D%2C%22author%22%3A%5B%5D%2C%22binding%22%3A%5B%5D%2C%22languages%22%3A%5B%5D%2C%22partNumber%22%3A%5B%5D%2C%22deltaRange%22%3A%5B0%2C2147483647%5D%7D"
  ],
  "output_fields": []
}' |
apify call radeance/keepa-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,radeance/keepa-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/n1AxNvlr6VSEdTcpj/builds/3cbCmDbP9J1ev7jJV/openapi.json
