# Amazon Price History API (`radeance/amazon-price-history-api`) Actor

Access Amazon product and price history data, including current price, buy box, prime exclusive price, list price, offer count, ratings, reviews, sellers, variants, and images. Supports ASINs and product URLs across global marketplaces. Export as JSON, CSV, Excel, and more.

- **URL**: https://apify.com/radeance/amazon-price-history-api.md
- **Developed by:** [Radeance](https://apify.com/radeance) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 206 total users, 12 monthly users, 100.0% runs succeeded, 10 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 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

## 💎 Amazon Price History API

The **Amazon Price History API** on **Apify** delivers accurate, structured **Amazon price intelligence** collected from multiple trusted sources. It supports ASINs and Amazon product URLs, providing deep historical pricing data with automatic tracking across all key offer types.

Retrieve **current prices**, **listing prices**, **buy box history**, **Amazon offer history**, **new offer counts**, **Prime-exclusive pricing**, **rating**, **review count**, **variant mapping**, and **full historical time-series datasets** in clean, export-ready formats.

Whether you’re monitoring competitors, analyzing market trends, or building pricing automation tools, this Actor delivers high-quality **Amazon product price history data** at scale — ideal for developers, analysts, and teams needing a reliable **Amazon price scraper** or **price history API**.

### ❶ Key Features

- **📦 Comprehensive Amazon Product & Pricing Data:**<br>

  - ✅ Retrieve **complete product details** using ASINs or Amazon product URLs
  - ✅ Capture **title**, **brand**, **categories**, **images**, **seller type**, **in-stock status**, **rating**, **review count**, and more
  - ✅ Access accurate **current pricing**, **list price**, **Amazon price**, **Buy Box price**, **Prime-exclusive price**, and **new offer pricing**

- **🧬 Variant & Child-ASIN Discovery:**<br>

  - ✅ Automatically detect and extract **all product variants** (models, sizes, colors, configurations)
  - ✅ Retrieve variant-level **ASINs**, **UPCs**, and **EANs**
  - ✅ Ideal for catalog enrichment, multi-variant tracking, and retail intelligence

- **💰 Seller & Offer Insights:**<br>

  - ✅ Capture key seller information such as **FBM/FBA**, **Amazon offer presence**, and **new offer counts**
  - ✅ Track **historical offer volume** to understand supply and competition trends
  - ✅ Perfect for marketplace analytics, competitor monitoring, and price intelligence

- **📉 Detailed Price History Tracking:**<br>

  - ✅ Access **full historical pricing datasets** across multiple price types
  - ✅ Includes: **new price history**, **amazon price history**, **buybox price history**, **prime exclusive price history**, and **offer count history**
  - ✅ Ideal for repricing tools, market research, and long-term trend and seasonality analysis

- **📸 High-Resolution Media Extraction:**<br>

  - ✅ Retrieve **product images**, **image galleries**, **media variants**, and **thumbnails**
  - ✅ Useful for listing audits, catalog enrichment, and ML model training

- **🌍 Multi-Country Support:**<br>

  - ✅ Works across multiple Amazon marketplaces (US, CA, UK, DE, FR, IT, ES, and more)
  - ✅ Automatically normalizes **currency**, **pricing formats**, and **localized category data**

- **📊 Flexible Data Output:**<br>

  - ✅ Export structured Amazon price history data in **JSON**, **CSV**, **XLSX**, or **JSONL**
  - ✅ Ready for BI dashboards, **pricing engines**, **ETL pipelines**, **inventory tools**, or **analytics workflows**

### ❷ Output

#### Product Search

###### Requires `identifiers` with a valid Amazon Product URL or ASIN.

###### Fields: `last_updated`, `data_captured_at`, `tracked_since`, `listed_at`, `country`, `asin`, `upc`, `ean`, `name`, `brand`, `rating`, `n_reviews`, `main_category`, `primary_category`, `sub_categories`, `seller_type`, `in_stock`, `n_offers_new`, `currency`, `list_price`, `price`, `price_new`, `price_new_fba`, `price_amazon`, `price_buybox`, `price_prime_exclusive`, `price_new_history`, `price_new_fba_history`, `price_amazon_history`, `price_buybox_history`, `price_prime_exclusive_history`, `n_offers_new_history`, `variant_asins`, `variant_upcs`, `variant_eans`, `product_url`, `image_url`,  `image_variants`,  `thumbnail_url`

```json
{
  "data_captured_at": "2025-12-03T13:49:48.512237Z",
  "last_updated": "2025-12-03T13:18:00",
  "tracked_since": "2024-11-13T17:52:00",
  "listed_at": "2024-10-20T00:00:00Z",
  "country": "us",
  "asin": "B0DHJH2GZL",
  "upc": "724129023589",
  "ean": "0724129023589",
  "name": "Apple iPhone 16, US Version, 128GB, Black - Unlocked (Renewed)",
  "brand": "Apple Inc.",
  "rating": 4.5,
  "n_reviews": 623,
  "main_category": "Electronics",
  "primary_category": "Cell Phones & Accessories",
  "sub_categories": [
    "Renewed Smartphones",
    "Cell Phones"
  ],
  "seller_type": "FBM",
  "in_stock": true,
  "n_offers_new": 21,
  "currency": "USD",
  "list_price": 1277.98,
  "price": 582.37,
  "price_new": 579.0,
  "price_new_fba": null,
  "price_amazon": 582.37,
  "price_buybox": 582.37,
  "price_prime_exclusive": null,
  "price_new_history": [
    {
      "date": "2024-11-13T17:52:00",
      "price": 799.99
    },
    {
      "date": "2024-11-22T19:06:00",
      "price": 784.92
    },
    {
      "date": "2024-11-23T05:36:00",
      "price": 774.92
    },
    ...

    {
      "date": "2025-12-02T18:58:00",
      "price": 592.0
    },
    {
      "date": "2025-12-03T01:20:00",
      "price": 582.37
    },
    {
      "date": "2025-12-03T01:30:00",
      "price": 579.0
    }
  ],
  "price_new_fba_history": null,
  "price_amazon_history": [
    {
      "date": "2025-11-06T22:48:00",
      "price": 600.88
    },
    {
      "date": "2025-11-06T23:56:00",
      "price": 607.52
    },
    {
      "date": "2025-11-07T01:02:00",
      "price": 605.0
    },
   ...
    {
      "date": "2025-12-02T13:52:00",
      "price": 599.0
    },
    {
      "date": "2025-12-02T18:58:00",
      "price": 592.0
    },
    {
      "date": "2025-12-03T01:30:00",
      "price": 582.37
    }
  ],
  "price_buybox_history": [
    {
      "date": "2024-11-13T22:54:00",
      "price": 799.99
    },
    {
      "date": "2024-11-22T19:06:00",
      "price": 784.92
    },
    {
      "date": "2024-11-23T05:36:00",
      "price": 774.92
    },
    ...
    {
      "date": "2025-12-03T07:04:00",
      "price": 582.37
    },
    {
      "date": "2025-12-03T12:04:00",
      "price": 609.97
    },
    {
      "date": "2025-12-03T13:18:00",
      "price": 582.37
    }
  ],
  "price_prime_exclusive_history": null,
  "n_offers_new_history": [
    {
      "date": "2024-11-13T17:52:00",
      "value": 1
    },
    {
      "date": "2024-11-22T19:06:00",
      "value": 2
    },
    {
      "date": "2024-11-25T22:52:00",
      "value": 3
    },
    ...
    {
      "date": "2025-12-03T06:52:00",
      "value": 19
    },
    {
      "date": "2025-12-03T10:32:00",
      "value": 20
    },
    {
      "date": "2025-12-03T13:18:00",
      "value": 21
    }
  ],
  "variant_asins": [
    "B0DHJH2GZL",
    "B0DHJ2KF9X",
    "B0DHHVK432",
    "B0DHJGLSFT",
    "B0DHJLB3W3",
    "B0DHJCYNS7",
    "B0DHJJ47YQ",
    "B0DHJGKNT1",
    "B0DHJ2ZNKR",
    "B0DHJBL4PB",
    "B0DHJHY3BH",
    "B0DHJ72DS8"
  ],
  "variant_upcs": [
    "724129023589"
  ],
  "variant_eans": [
    "0724129023589"
  ],
  "product_url": "https://www.amazon.com/dp/B0DHJH2GZL",
  "image_url": "https://m.media-amazon.com/images/I/71QkWOSDkmL.jpg",
  "image_variants": [
    "https://m.media-amazon.com/images/I/71QkWOSDkmL.jpg",
    "https://m.media-amazon.com/images/I/61ck46a-96L.jpg",
    "https://m.media-amazon.com/images/I/51Zk1ZeGvCL.jpg",
    "https://m.media-amazon.com/images/I/61IhjHCxYCL.jpg",
    "https://m.media-amazon.com/images/I/71LfhnQ+r9L.jpg"
  ],
  "thumbnail_url": "https://m.media-amazon.com/images/I/31j640v+ysL._SL75_.jpg"
}
```

#### Field References

| Field | Type | Description |
|-------|-------|-------------|
| `data_captured_at` | string (ISO UTC datetime) | Timestamp when this data snapshot was captured. |
| `last_updated` | string (ISO UTC datetime) | Most recent time the price/offer data was updated. |
| `tracked_since` | string (ISO UTC datetime) | Timestamp marking when historical price tracking began. |
| `listed_at` | string (ISO UTC datetime) | Approximate timestamp when the product was first listed. |
| `country` | string | Amazon marketplace country code (e.g., `us`, `uk`, `de`). |
| `asin` | string | Primary Amazon Standard Identification Number for the product. |
| `upc` | string or null | Universal Product Code associated with the product. |
| `ean` | string or null | European Article Number for international identification. |
| `name` | string | Product title as displayed on Amazon. |
| `brand` | string | Brand or manufacturer of the product. |
| `rating` | number | Current average rating (1–5). |
| `n_reviews` | number | Total number of customer reviews. |
| `main_category` | string | High-level product category. |
| `primary_category` | string | Main Amazon category for the listing. |
| `sub_categories` | array of strings | Category hierarchy or breadcrumb list. |
| `seller_type` | string | Seller type: `FBA`, `FBM`, `Amazon`, or unknown. |
| `in_stock` | boolean | Whether the product is currently in stock. |
| `n_offers_new` | number | Number of “new condition” offers available. |
| `currency` | string | Currency code for all price values (e.g., `USD`). |
| `list_price` | number or null | Amazon list price (MSRP). |
| `price` | number | Current main product price. |
| `price_new` | number or null | Current lowest price for new offers. |
| `price_new_fba` | number or null | Price for new FBA offers (if available). |
| `price_amazon` | number or null | Amazon’s own selling price (if Amazon is a seller). |
| `price_buybox` | number or null | Current Buy Box price. |
| `price_prime_exclusive` | number or null | Prime-exclusive price (if applicable). |
| `price_new_history` | array of objects | Historical data of new-offer prices. Each entry contains `date` and `price`. |
| `price_new_fba_history` | array of objects or null | Historical FBA-only new-offer pricing. |
| `price_amazon_history` | array of objects | Historical Amazon-offer prices over time. |
| `price_buybox_history` | array of objects | Historical Buy Box price data. |
| `price_prime_exclusive_history` | array of objects or null | Historical Prime-exclusive prices. |
| `n_offers_new_history` | array of objects | Historical number of new-condition offers. Each entry contains `date` and `value`. |
| `variant_asins` | array of strings | ASINs of all detected product variants. |
| `variant_upcs` | array of strings | UPCs associated with detected variants. |
| `variant_eans` | array of strings | EANs associated with detected variants. |
| `product_url` | string (URL) | Amazon product page URL. |
| `image_url` | string (URL) | Main product image URL. |
| `image_variants` | array of strings (URLs) | List of additional product image URLs. |
| `thumbnail_url` | string (URL) | Low-resolution product thumbnail. |

#### Table View Output

##### Overview Table 📦

<img src="https://i.imgur.com/M34iPmR.png" alt="Amazon Price History API Overview Table Output" style="border-radius: 14px;" />

##### Historical Data Table 📈

<img src="https://i.imgur.com/Lxr1fDp.png" alt="Amazon Price History API Historical Table Output" style="border-radius: 14px;" />

### ❸ Input

#### Amazon Price History API Search Parameters

<img src="https://i.imgur.com/Az2JUaQ.png" alt="Amazon Price History API Search Parameters Input Image" style="border-radius: 15px;" />

<br><br> - **`identifiers`**: (Optional) (Array of Strings)
The URLs or ASINs of the Amazon product pages to scrape data for. Enter a list of complete URLs or just ASINs to analyze multiple products at once (e.g. \["B08N5WRWNW", "B07FZ8S74R"]).
<br><br> - **`country`**: (Optional) (String)
Select the country of the Amazon Marketplace you want to scrape data from. Use the two-letter country code (e.g. us, uk, de, fr, it, es, jp).
💡 Default value is `us` (United States).
<br><br> - **`include_variants`**: (Optional) (Boolean)
If set to True, the search will include all available product variants (e.g. different colors, sizes) for each ASIN provided.
💡 Default value is False.
<br><br> - **`stream_output`**: (Optional) (Boolean)
If set to True, the scraper will stream results as they are scraped, allowing for faster access to data. If False, results will be provided only after the entire scraping process is complete.
💡 Default value is True.

#### Supported Product Identifiers

| Identifier                                                                                                         | Supported |
| ------------------------------------------------------------------------------------------------------------ | --------- |
| <https://www.amazon.com/Apple-iPhone-16-Version-128GB/dp/B0DHJH2GZL> | ✅        |
| <https://www.amazon.com/dp/B0DHJH2GZL>                                                                   | ✅        |
| <https://www.amazon.com/gp/product/B0DHJH2GZL>                                                                         | ✅        |
| B0DHJH2GZL                                                                                                   | ✅        |

#### JSON Input

Sample JSON input if you use the apify api via CURL, Python, JS etc.

```json
{
    "identifiers": [
    "https://www.amazon.com/Apple-iPhone-16-Version-128GB/dp/B0DHJH2GZL/ref=sr_1_6"
  ],
  "country": "us",
  "include_variants": true,
  "stream_output": true,
}
```

### ❹ Use Cases

- **Amazon Sellers & FBA Teams:**
  Monitor Buy Box changes, Amazon price behavior, competitor pricing, and historical trends.

- **Repricing & Automation Platforms:**
  Leverage time-series data to build rules-based or ML-powered pricing engines.

- **E-commerce Analysts:**
  Track market movement, seasonality, and pricing volatility across categories or marketplaces.

- **Data Teams & Engineers:**
  Integrate clean price history datasets into **ETL pipelines**, **databases**, and **dashboards**.

- **Retail Intelligence Providers:**
  Enrich product data with accurate historical pricing, offer counts, variants, and metadata.

- **Investors & Market Researchers:**
  Analyze long-term pricing patterns across brands, segments, and competitors.

### ❺ Usage Limits

This service has different usage limits depending on your subscription status:

| User Type | Monthly Runs | # Bulk URLs/ASINs Supported | # Bulk URLs/ASINs with include_variants | Data Limitations | Reset Period |
| --------- | ------------ | --------------------- | -------------------- | ---------------- | ------------ |
| **Free**  | 10 runs      | 3 per run             | 1 per run      | Historical data up to 1 year(s)  | 30 days      |
| **Paid**  | Unlimited    | 100 per run           | 10 per run     | All-Data-Access  | N/A          |

#### How Limits Work

- **Free users**: Limited to 10 runs per 30-day period from your first usage
- **Paid users**: No limits on the number of runs and access to all data
- **All users**: Can scrape product data and variants as per the limits above
- Usage resets automatically 30 days after your first run (for free users)

### ❻ FAQ

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

The ASIN (Amazon Standard Identification Number) is a unique identifier assigned to products on Amazon. You can find the ASIN in the product URL right after '/dp/' or in the product details section on the Amazon product page.

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

Yes, you can provide multiple Amazon product URLs or ASINs in the `identifiers` input field. The scraper will process each identifier and return the corresponding product data. Please note that there are limits on the number of identifiers you can provide based on your subscription status.

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

The data retrieved by the Amazon Price History API is near real-time, so data is accurate up to the latest hour for most products and marketplaces. We are bound by the accuracy of the data provided by the sources and cannot change this. Therefore, there may be slight discrepancies compared to live Amazon listings data.

#### What marketplaces are supported?

The Amazon Price History API supports multiple Amazon marketplaces, including but not limited to:

- Canada (ca)
- France (fr)
- Germany (de)
- 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.

### ❽ Legality of web scraping

The **Amazon Price History API** 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 [blog post](https://blog.apify.com/is-web-scraping-legal/) on the legality of web scraping from Apify.

### ❾ 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 **Amazon Price History API**, please create an issue in the [Actor’s Issues tab](https://apify.com/radeance/amazon-price-history-api/issues)

You can also contact us directly for **general help** on **issues** or **integrations** at suppport@radeance.com. <br> For **custom projects**, **general suggestions** or **new use cases** feel free to reach out to us at business@radeance.com

# Changelog

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

# Actor input Schema

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

The URL of the Amazon product page or the ASIN of the product you want to scrape data for. You can provide multiple URLs or ASINs.

## `country` (type: `string`):

The Amazon marketplace country to target for the product data scraping.

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

If enabled, the actor will also scrape data for all variant ASINs associated with the main product ASINs provided.

## `stream_output` (type: `boolean`):

If enabled, the actor will stream the results to the dataset as they are scraped. This is useful for processing large amounts of data without waiting for the entire run to complete.

## Actor input object example

```json
{
  "identifiers": [
    "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
    "B0BN72FYFG"
  ],
  "country": "us",
  "include_variants": false,
  "stream_output": true
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `history` (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": [
        "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
        "B0BN72FYFG"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("radeance/amazon-price-history-api").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": [
        "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
        "B0BN72FYFG",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("radeance/amazon-price-history-api").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": [
    "https://www.amazon.com/Apple-2025-MacBook-15-inch-Laptop/dp/B0DZDBDCFH/",
    "B0BN72FYFG"
  ]
}' |
apify call radeance/amazon-price-history-api --silent --output-dataset

```

## MCP server setup

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

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/gvFpWjQm90ZfTDdEf/builds/Gxcc2np57gSHrwIX4/openapi.json
