Amazon Price History Scraper - ASIN Price Alerts avatar

Amazon Price History Scraper - ASIN Price Alerts

Pricing

from $12.00 / 1,000 product trackeds

Go to Apify Store
Amazon Price History Scraper - ASIN Price Alerts

Amazon Price History Scraper - ASIN Price Alerts

Track Amazon product prices over time from ASINs or product URLs. Stores observed history in a named KV store and returns deltas, lows, highs, stock, seller, and optional drop alerts. MCP/API-ready.

Pricing

from $12.00 / 1,000 product trackeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

10 days ago

Last modified

Share

Amazon Price History Scraper tracks Amazon product prices over time from ASINs or product URLs. It accepts a list of exact products, one marketplace code, and optional tracking settings. Each run returns one dataset record per tracked product, and each record represents the latest observation for that ASIN in the selected marketplace plus retained history in the named key-value store.

The output includes fields such as currentPrice, previousPrice, priceChange, priceChangePercent, lowestPrice, highestPrice, averagePrice, availability, inStock, seller, buyBoxWinner, rating, reviewCount, recentHistory, historyStoreName, and historyKey. The outcome is a durable product price timeline that you can query from Apify datasets and reuse across scheduled runs.

Best fit and connected workflows

Use this Actor when you already know the Amazon products you want to monitor and you want repeatable observations over time.

It fits well into workflows such as:

  • product monitoring for exact ASIN lists
  • price-drop alerts sent to a webhook endpoint
  • scheduled repricing checks that compare current and previous prices
  • catalog QA where stock, seller, or buy-box visibility matters
  • agent workflows that need a structured Amazon product record
  • Use downstream review analysis with Amazon Reviews Scraper - Ratings & Sentiment after price tracking identifies a product of interest

Because the Actor works from ASINs or product URLs, it is a good routing choice when the starting point is a known product record rather than a search query or category crawl.

Practical scenario

Maya manages a small ecommerce catalog and has a spreadsheet with three ASINs and their marketplace set to US. She starts a run with those ASINs, a named history store, and a webhook URL for price-drop alerts.

The Actor returns one row per product with the currentPrice, previousPrice, priceChange, priceChangePercent, seller, availability, inStock, lowestPrice, highestPrice, and recentHistory. Maya sees that one product is now cheaper than the previous observation, so she updates her internal repricing sheet and uses the same historyStoreName for the next scheduled run to keep the timeline continuous.

Input

FieldTypePurpose
productsarray of stringsRequired list of Amazon ASINs or product URLs to monitor.
countrystringMarketplace code such as US, UK, DE, FR, CA, JP, IN, AU, and others listed in the schema.
maxProductsintegerCaps how many unique products are processed from the input list.
historyStoreNamestringNamed key-value store used to retain observations across runs.
outputHistoryPointsintegerControls how many recent observations are embedded in each output row.
historyRetentionPointsintegerCaps retained observations per ASIN in the history store.
resetHistorybooleanResets stored observations for the submitted ASINs before writing the current run.
alertWebhookUrlstringHTTPS endpoint for optional price-drop webhook alerts.
alertDropPercentintegerPercentage drop threshold used together with alertWebhookUrl.
maxConcurrencyintegerTunes request parallelism for Amazon product pages.
proxyConfigurationobjectOptional proxy settings. Uses the managed mobile proxy when left blank.

Input example

{
"products": [
"B0CHWRXH8B",
"https://www.amazon.com/dp/B0CHWRXH8B"
],
"country": "US",
"maxProducts": 2,
"historyStoreName": "amazon-price-history",
"outputHistoryPoints": 5,
"historyRetentionPoints": 50,
"resetHistory": false,
"alertWebhookUrl": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXX",
"alertDropPercent": 5,
"maxConcurrency": 3,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Output

FieldTypeMeaning
asinstringAmazon Standard Identification Number for the tracked product.
urlstringAmazon product URL used for the scrape.
marketplacestringMarketplace code used for the run.
brandstring or nullBrand or manufacturer text when extracted.
titlestring or nullProduct title when extracted.
currentPricenumber or nullCurrent visible product price.
previousPricenumber or nullMost recent earlier stored price.
priceChangenumber or nullDifference between current and previous price.
priceChangePercentnumber or nullPercent change from previous to current price.
priceDroppedboolean or nullWhether the current price is lower than the previous stored price.
priceIncreasedboolean or nullWhether the current price is higher than the previous stored price.
lowestPricenumber or nullLowest retained non-null price.
highestPricenumber or nullHighest retained non-null price.
averagePricenumber or nullAverage retained non-null price.
firstSeenAtstring or nullTimestamp of the first retained observation.
lastSeenAtstring or nullTimestamp of the newest retained observation.
historyPointsintegerNumber of retained observations currently stored.
recentHistoryarrayRecent retained observations embedded in the row.
listPricenumber or nullOriginal or struck-through list price when visible.
currencystring or nullISO currency code inferred from the page or marketplace.
discountPercentnumber or nullDiscount against listPrice when both prices are available.
buyBoxWinnerstring or nullSeller currently winning the buy box, when visible.
ratingnumber or nullAverage star rating from the product page.
reviewCountinteger or nullTotal review count from the product page.
availabilitystring or nullAvailability or stock status text.
inStockboolean or nullWhether the product appears purchasable right now.
isPrimeboolean or nullWhether Prime eligibility is visible.
sellerstring or nullVisible merchant or seller name.
isFBAboolean or nullWhether fulfillment appears to be handled by Amazon.
thumbnailstring or nullMain product image URL when extractable.
alertFiredboolean or nullWhether a configured webhook alert was sent.
scrapedAtstringTimestamp when the product page was scraped.
historyStoreNamestringNamed history store used by the run.
historyKeystringKey inside the history store for this ASIN and marketplace.
_warningsarray or nullPer-row warnings returned by the scraper.

Output example

{
"asin": "B0CHWRXH8B",
"url": "https://www.amazon.com/dp/B0CHWRXH8B",
"marketplace": "US",
"brand": "Amazon",
"title": "Kindle Paperwhite",
"currentPrice": 139.99,
"previousPrice": 149.99,
"priceChange": -10,
"priceChangePercent": -6.67,
"priceDropped": true,
"priceIncreased": false,
"lowestPrice": 119.99,
"highestPrice": 159.99,
"averagePrice": 137.42,
"firstSeenAt": "2026-07-01T10:00:00.000Z",
"lastSeenAt": "2026-07-08T10:00:00.000Z",
"historyPoints": 8,
"recentHistory": [
{
"observedAt": "2026-07-08T10:00:00.000Z",
"asin": "B0CHWRXH8B",
"marketplace": "US",
"url": "https://www.amazon.com/dp/B0CHWRXH8B",
"title": "Kindle Paperwhite",
"price": 139.99,
"listPrice": 159.99,
"currency": "USD",
"availability": "In Stock",
"inStock": true,
"seller": "Amazon.com"
}
],
"listPrice": 159.99,
"currency": "USD",
"discountPercent": 13,
"buyBoxWinner": "Amazon.com",
"rating": 4.6,
"reviewCount": 12450,
"availability": "In Stock",
"inStock": true,
"isPrime": true,
"seller": "Amazon.com",
"isFBA": true,
"thumbnail": "https://m.media-amazon.com/images/I/example.jpg",
"alertFired": false,
"scrapedAt": "2026-07-08T10:00:00.000Z",
"historyStoreName": "amazon-price-history",
"historyKey": "HISTORY_US_B0CHWRXH8B"
}

How it works

The Actor accepts exact Amazon products as ASINs or product URLs and checks them on the selected marketplace. It stores observed history in the named key-value store so repeated runs with the same historyStoreName build a durable timeline. The output dataset keeps the latest row for each tracked product, while recentHistory embeds a capped set of recent observations. Optional HTTPS webhook alerts send a JSON payload when the current price drops below the previous observed price by the configured threshold.

Pricing

This Actor uses Pay per event pricing on the Apify platform, plus standard Apify platform usage charges. Event billing includes the actor start event, product-tracked events, and alert-dispatched events when webhook alerts are sent. For the live pricing tab, open the Actor in Apify and check the Pricing section.

As an example written in words: if you track ten products in one run and no alerts are dispatched, you pay for one actor start event and ten product-tracked events, plus any platform usage costs shown in the live Pricing tab.

Use with AI agents (MCP)

This Actor is usable through Apify MCP and is a structured tool for checking Amazon product price history from ASINs or product URLs. The exact Actor identity is khadinakbar/amazon-price-history-scraper.

Tool description: retrieve one dataset row per tracked Amazon product with current price, previous price, price deltas, retained lows and highs, seller and stock signals, and recent price-history observations.

Track these Amazon products by ASIN and return the latest price, previous price, change, stock, seller, and recent history for each one. Use the same historyStoreName across runs so I can compare today against the previous observation.

Output interpretation:

  • priceChange and priceChangePercent show how the current observation compares with the previous stored one.
  • lowestPrice, highestPrice, and averagePrice summarize retained observations in the named history store.
  • recentHistory shows recent retained observations, while the full retained timeline remains in the key-value store named by historyStoreName.
  • alertFired indicates whether a configured webhook alert was sent for that row.

Provenance and scope:

  • Each row is based on the current Amazon product page for the selected marketplace.
  • The Actor records its own observed history across runs using the same named key-value store.
  • Use country to choose the marketplace explicitly.

Pagination and cost guidance:

  • The Actor processes the submitted product list and stops at maxProducts.
  • maxConcurrency tunes request parallelism.
  • Product-tracked and alert-dispatched events affect cost, so set the input list and alerting rules to match the workflow you need.

API example

import { ApifyClient } from "apify-client";
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor("khadinakbar/amazon-price-history-scraper").call({
products: ["B0CHWRXH8B"],
country: "US",
historyStoreName: "amazon-price-history",
outputHistoryPoints: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Use exact ASINs or product URLs, and keep the same historyStoreName for recurring tracking. Choose the correct marketplace with country so the price, currency, and availability are evaluated on the intended Amazon site. If your workflow needs compact output, lower outputHistoryPoints; if it needs more retained observations in each row, raise it within the schema bounds. When you want a fresh timeline for a specific ASIN set, set resetHistory for that run and then continue with the same store name on the next schedule.

Design note

I found that historyStoreName points to a named key-value store and is explicitly separate from the output dataset name, which makes the output row easier to interpret in scheduled workflows.

FAQ

Is this Actor a good fit for keyword-based Amazon research?

It fits exact product tracking. If your workflow starts from search terms or category discovery, begin with an Amazon search or product-discovery Actor, then pass the returned ASINs into this Actor.

Can I use the output with reviews analysis?

Use Yes. The price-tracking row is a useful handoff into Amazon Reviews Scraper - Ratings & Sentiment when you want review-focused analysis for the same product record.

How do I keep a continuous price timeline?

Run the Actor on a schedule with the same historyStoreName. The retained history stays in the named key-value store, and each new run appends the latest observation for the submitted ASINs.

What should I use when I need only a small alerting workflow?

Use products with a short ASIN list, keep maxProducts aligned with that list, and set alertWebhookUrl plus alertDropPercent to match the threshold you want to watch.

Does the Actor work in more than one marketplace?

Yes. Set country to the target Amazon marketplace code, such as US, UK, DE, FR, CA, JP, IN, AU, and the other values listed in the input schema.

Responsible use

This Actor extracts publicly visible Amazon product-page information and stores observed price history across runs. Use the data in line with Amazon's terms, marketplace rules, privacy laws, and your own contractual obligations. When you send alerts or retain timelines, keep the scope focused on the exact products you intended to monitor and review the output rows before using them in automated decision-making.