Amazon Price & Rank Monitor avatar

Amazon Price & Rank Monitor

Pricing

from $0.30 / 1,000 results

Go to Apify Store
Amazon Price & Rank Monitor

Amazon Price & Rank Monitor

Amazon price and visible rank monitor for ASINs and product URLs with snapshot comparison, change detection, and automation-ready output.

Pricing

from $0.30 / 1,000 results

Rating

0.0

(0)

Developer

Solutions Smart

Solutions Smart

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

πŸ“ˆ Amazon Price & Rank Monitor

Track Amazon price changes and visible Best Sellers Rank (BSR) over time from ASINs, product URLs, CSV files, or Excel sheets. This Apify Actor is built for lightweight Amazon monitoring, change detection, snapshot tracking, and automation workflows.

✨ What it does

Amazon Price & Rank Monitor is a focused Amazon ASIN monitoring Actor for Apify. It accepts ASINs, product URLs, and optional spreadsheet imports, normalizes and deduplicates them before crawling, extracts only the key monitoring fields, stores compact snapshots, and compares the current run against the previous baseline.

Core capabilities:

  • βœ… Accepts ASIN lists, product URLs, CSV files, and Excel imports
  • πŸ’² Extracts current visible price
  • πŸ“‰ Extracts current visible rank / Best Sellers Rank (BSR) when available
  • πŸ“ˆ Calculates average price and rank history over 30, 90, and 180-day windows
  • πŸ—‚οΈ Stores compact snapshot state per marketplace + ASIN
  • πŸ” Compares each current snapshot with the previous stored snapshot
  • 🚨 Flags price changes, rank changes, and any changed items
  • 🎯 Supports changes-only output mode for alerts and downstream automations
  • πŸ“Š Keeps run-level monitoring summary counters

🎯 Key use cases

  • πŸ‘€ Monitor large Amazon ASIN lists for price changes
  • πŸ“‰ Watch visible BSR / rank movement across runs
  • πŸ•’ Build a historical snapshot foundation over time
  • πŸ”” Feed changed-only records into alerts, automations, or BI workflows
  • ⚑ Run lightweight recurring checks instead of full catalog enrichment

πŸ‘₯ Who this actor is for

This actor is useful for:

  • πŸ›’ ecommerce teams monitoring Amazon price changes
  • πŸ“‰ sellers tracking visible BSR / rank movement
  • πŸ•ΈοΈ operators building Amazon ASIN monitoring workflows
  • πŸ“Š analysts collecting Amazon pricing snapshots over time
  • βš™οΈ developers who need lightweight Amazon monitoring data for automations, alerts, or dashboards

πŸ“¦ Extracted fields

Successful dataset items are intentionally compact and monitoring-oriented.

Main fields:

  • status
  • asin
  • marketplace
  • url
  • priceText
  • priceAmount
  • priceCurrency
  • rank
  • rankText
  • previousPrice
  • previousRank
  • priceChanged
  • rankChanged
  • anyChanged
  • priceDelta
  • rankDelta
  • checkedAt
  • inputSource
  • inputIndex
  • avgPrice30d - Average price over the last 30 days
  • avgPrice90d - Average price over the last 90 days
  • avgPrice180d - Average price over the last 180 days
  • avgRank30d - Average rank over the last 30 days
  • avgRank90d - Average rank over the last 90 days
  • avgRank180d - Average rank over the last 180 days
  • historyPointsUsedPrice30d - Number of data points used for 30-day price average
  • historyPointsUsedPrice90d - Number of data points used for 90-day price average
  • historyPointsUsedPrice180d - Number of data points used for 180-day price average
  • historyPointsUsedRank30d - Number of data points used for 30-day rank average
  • historyPointsUsedRank90d - Number of data points used for 90-day rank average
  • historyPointsUsedRank180d - Number of data points used for 180-day rank average
  • windowCoverageDaysPrice30d - Number of days covered by price data in 30-day window
  • windowCoverageDaysPrice90d - Number of days covered by price data in 90-day window
  • windowCoverageDaysPrice180d - Number of days covered by price data in 180-day window
  • windowCoverageDaysRank30d - Number of days covered by rank data in 30-day window
  • windowCoverageDaysRank90d - Number of days covered by rank data in 90-day window
  • windowCoverageDaysRank180d - Number of days covered by rank data in 180-day window

Optional lightweight debug fields:

  • title
  • sellerName

Structured error items include:

  • status: "ERROR"
  • errorCode
  • errorMessage
  • input context such as asin, marketplace, url, inputSource, and inputIndex

πŸ”„ Change tracking behavior

This actor stores the latest known snapshot in the default key-value store under LATEST_SNAPSHOTS.

On each run it:

  1. loads the previous snapshot state
  2. extracts the current price and visible rank
  3. compares current vs previous values
  4. computes:
    • previousPrice
    • previousRank
    • isFirstSeen
    • priceChanged
    • rankChanged
    • anyChanged
    • priceDelta
    • rankDelta
  5. saves the new snapshot as the latest baseline for the next run

First-seen semantics:

  • πŸ†• when no previous snapshot exists, the actor sets isFirstSeen: true
  • 0️⃣ previousPrice and previousRank are null
  • 🟰 priceChanged, rankChanged, and anyChanged are all false
  • 🧱 first-seen items are baseline records, not change events

When a previous snapshot exists, null-safe comparison rules apply:

  • null -> value = changed
  • value -> null = changed
  • value1 != value2 = changed

πŸš€ Quick start

  1. Open the actor input.
  2. Add ASINs or product URLs.
  3. Set the default marketplace if needed.
  4. Enable proxyConfiguration for reliable Amazon access.
  5. Optionally set onlyChanges to return only changed items.
  6. Run the actor on a schedule to build monitoring history over time.

🧾 Input examples

πŸ”’ Direct ASIN monitoring

{
"asins": ["B08N5WRWNW", "B09G3HRMVB", "B00008OE6I"],
"marketplace": "amazon.com",
"deduplicate": true,
"onlyChanges": false,
"proxyConfiguration": {
"useApifyProxy": true
}
}

πŸ”— Mixed ASIN / URL input

{
"products": [
{ "asin": "B08N5WRWNW", "marketplace": "amazon.com" },
{ "url": "https://www.amazon.de/dp/B09G3HRMVB" },
{ "asin": "B00008OE6I", "marketplace": "amazon.co.uk" }
],
"deduplicate": true,
"onlyChanges": true,
"proxyConfiguration": {
"useApifyProxy": true
}
}

πŸ“„ Optional CSV import

{
"fileImport": {
"inputSource": "csv",
"fileUrl": "https://example.com/asins.csv",
"asinColumnName": "asin",
"batchSize": 1000
},
"marketplace": "amazon.com",
"onlyChanges": false,
"proxyConfiguration": {
"useApifyProxy": true
}
}

πŸ“€ Output example

{
"status": "SUCCESS",
"inputSource": "asins",
"inputIndex": 0,
"asin": "B08N5WRWNW",
"marketplace": "amazon.com",
"url": "https://www.amazon.com/dp/B08N5WRWNW",
"priceText": "$29.99",
"priceAmount": 29.99,
"priceCurrency": "USD",
"rank": 1842,
"rankText": "#1,842 in Electronics",
"previousPrice": 31.99,
"previousRank": 1910,
"isFirstSeen": false,
"priceChanged": true,
"rankChanged": true,
"anyChanged": true,
"priceDelta": -2,
"rankDelta": -68,
"checkedAt": "2026-03-15T10:00:00.000Z",
"avgPrice30d": 30.45,
"avgPrice90d": 31.20,
"avgPrice180d": 30.85,
"avgRank30d": 1890,
"avgRank90d": 1950,
"avgRank180d": 2010,
"historyPointsUsedPrice30d": 25,
"historyPointsUsedPrice90d": 78,
"historyPointsUsedPrice180d": 156,
"historyPointsUsedRank30d": 23,
"historyPointsUsedRank90d": 75,
"historyPointsUsedRank180d": 145,
"windowCoverageDaysPrice30d": 29,
"windowCoverageDaysPrice90d": 88,
"windowCoverageDaysPrice180d": 175,
"windowCoverageDaysRank30d": 27,
"windowCoverageDaysRank90d": 85,
"windowCoverageDaysRank180d": 168,
"title": "Echo Dot (4th Gen)",
"sellerName": "Amazon.com"
}

❌ Error example:

{
"status": "ERROR",
"inputSource": "products",
"inputIndex": 12,
"asin": "INVALID123",
"marketplace": "amazon.com",
"url": "https://www.amazon.com/",
"errorCode": "INVALID_ASIN",
"errorMessage": "Input ASIN is not valid.",
"checkedAt": "2026-03-15T10:00:00.000Z"
}

πŸ“‹ Summary output

The actor stores a SUMMARY record with counters including:

  • requestedCount
  • normalizedCount
  • uniqueCount
  • duplicatesSkipped
  • invalidInputCount
  • successCount
  • errorCount
  • changedCount
  • unchangedCount
  • firstSeenCount
  • priceChangedCount
  • rankChangedCount
  • marketplacesUsed
  • onlyChanges
  • stateComparisonEnabled
  • missingPreviousStateCount
  • historicalSnapshotsLoaded - Number of historical snapshots loaded from storage
  • historicalSnapshotsStored - Number of historical snapshots saved to storage
  • itemsWithAvgPrice30d - Number of items with enough data for 30-day price average
  • itemsWithAvgPrice90d - Number of items with enough data for 90-day price average
  • itemsWithAvgPrice180d - Number of items with enough data for 180-day price average
  • itemsWithAvgRank30d - Number of items with enough data for 30-day rank average
  • itemsWithAvgRank90d - Number of items with enough data for 90-day rank average
  • itemsWithAvgRank180d - Number of items with enough data for 180-day rank average

🏷️ Notes on rank availability

Amazon rank is not always visible and is not consistently present across products, marketplaces, or page layouts.

This actor extracts rank conservatively:

  • it only returns rank when a clear visible signal is present
  • it does not infer or fabricate rank when absent
  • if rank cannot be trusted, rank and rankText are returned as null

πŸ›‘οΈ Notes on proxy and reliability

Amazon blocks aggressively, especially during repeated or large-scale runs.

For production usage:

  • 🌐 use proxyConfiguration
  • 🎚️ keep concurrency realistic for your workload
  • ⚠️ expect occasional BLOCKED or NOT_FOUND results
  • 🧭 treat this actor as a monitoring layer, not a guarantee of complete page visibility on every request

For the best monitoring results, run the actor on a schedule such as:

  • πŸ“… daily for standard price tracking
  • ⚑ multiple times per day for fast-moving products
  • πŸ“† weekly for lighter long-term monitoring

Repeated runs improve snapshot history and make change detection more useful over time.

❓ FAQ

πŸ“š Does this actor extract full product catalog data?

No. This redesign is intentionally focused on current price and visible rank monitoring. It does not prioritize description, images, breadcrumbs, specifications, or broad catalog enrichment.

πŸ” Can it return only changed items?

Yes. Set onlyChanges to true and the dataset will include only items where price or rank changed against an existing previous snapshot. First-seen items are not treated as changed and are therefore excluded from changes-only output.

πŸ•°οΈ How is history handled?

This actor stores compact snapshots per marketplace + ASIN so repeated scheduled runs can be compared over time. That historical data is used for change detection, trend reporting, and calculating rolling average price and rank metrics.

πŸ“ˆ Does Amazon provide ready-made 90-day or 180-day average price history?

Not usually in a clean, structured form for this use case. This actor calculates rolling average price and rank over 30, 90, and 180-day windows using the historical snapshots collected from repeated runs.

πŸ“Š What average metrics are available?

The actor calculates and returns:

  • 30-day, 90-day, and 180-day average price (avgPrice30d, avgPrice90d, avgPrice180d)
  • 30-day, 90-day, and 180-day average rank (avgRank30d, avgRank90d, avgRank180d)
  • Number of historical data points used for each average calculation
  • Number of days of coverage for each time window

At least 2 data points are required to calculate a valid average.

⚠️ Current scope

This actor is intentionally optimized for monitoring, not full catalog extraction.

It focuses on:

  • βœ… current visible price
  • βœ… current visible rank / BSR when available
  • βœ… rolling average price and rank over 30, 90, and 180-day windows
  • βœ… previous snapshot comparison
  • βœ… change detection across runs

It does not aim to extract full product-page enrichment such as complete specifications, image galleries, or deep offer analysis.

That makes positioning sharp.

What happens if price is missing but the page is accessible?

The actor still returns a valid snapshot record. Price fields are set to null instead of guessing.

What happens on invalid input or blocked pages?

The run does not fail as a whole. The actor writes structured error items so downstream workflows can handle them cleanly.