Product & Price Drop Tracker avatar

Product & Price Drop Tracker

Pricing

Pay per usage

Go to Apify Store
Product & Price Drop Tracker

Product & Price Drop Tracker

Monitor product prices and get alerted when they drop below your target. Tracks price history, stock status, and sends webhook notifications on price drops.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Richard P

Richard P

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Monitor product prices on any e-commerce website and get notified when prices drop below your target threshold.

Features

  • Multi-product monitoring — Track prices for multiple products in a single run
  • Automatic price detection — Intelligent price extraction using common CSS selectors (.price, [data-price], [itemprop="price"], meta tags, and more)
  • Custom CSS selectors — Specify a custom selector if auto-detection doesn't work
  • Price history tracking — Persists prices between runs using Apify key-value store
  • Target price alerts — Get notified only when the price drops to or below your target
  • Stock status detection — Detects "In Stock", "Out of Stock", and add-to-cart availability
  • Webhook notifications — POST price drop alerts to any HTTP endpoint
  • Smart output — Configurable to report only price drops or all check results
  • Graceful shutdown — Handles abort signals cleanly to save costs

Input

FieldTypeRequiredDescription
productsarray of objectsList of products to monitor
notificationTypestring"changes_only" (default) or "all_runs"
webhookUrlstringURL for price drop webhook notifications

Product Object

FieldTypeRequiredDescription
urlstringFull URL of the product page
namestringFriendly label for the product
targetPricenumberAlert when price drops to or below this amount
selectorstringCustom CSS selector for the price element (optional)

Example Input

{
"products": [
{
"url": "https://www.amazon.com/dp/B0ABCDEFGH",
"name": "Sony WH-1000XM5 Headphones",
"targetPrice": 299.99,
"selector": ".a-price-whole"
},
{
"url": "https://www.bestbuy.com/site/some-product",
"name": "Some Electronics",
"targetPrice": 150.00
}
],
"notificationType": "changes_only",
"webhookUrl": "https://hooks.example.com/price-alert"
}

Output / Dataset Fields

FieldDescription
timestampISO 8601 timestamp of the check
nameProduct label
urlProduct URL
currentPriceCurrent price extracted (or null)
previousPricePrice from the previous run (or null)
targetPriceTarget price threshold
priceDroppedBoolean — true if price dropped below target
dropAmountDollar amount of the drop
dropPercentPercentage drop
inStockBoolean — true/false/null (unknown)
errorError message if the check failed

A summary record with _summary: true is appended at the end of each run.

Price Detection

The Actor uses a multi-strategy approach to extract prices:

  1. Custom selector — If provided, this is tried first
  2. Common selectors.price, [data-price], [itemprop="price"], meta[property="product:price:amount"], .product-price, .sale-price, .current-price, etc.
  3. Class/id heuristics — Elements with "price" in their class or id
  4. Amazon-specific.a-price-whole, .a-offscreen
  5. Text fallback — Scans text content for price-like patterns

Supported Price Formats

  • $1,234.56 — US/UK format with comma thousands separator
  • €1.234,56 — European format with dot thousands separator and comma decimal
  • £99.99 — Various currency symbols
  • Plain numbers with 0-2 decimal places

Notifications

Webhook Payload

When a price drop is detected, the Actor POSTs to the configured webhook URL:

{
"event": "price_dropped",
"product": "Sony WH-1000XM5 Headphones",
"url": "https://...",
"currentPrice": 278.00,
"previousPrice": 349.99,
"targetPrice": 299.99,
"dropAmount": 71.99,
"dropPercent": 20.6,
"checkedAt": "2026-07-04T12:00:00+00:00",
"inStock": true
}

Notification Types

ModeBehavior
changes_onlyOnly pushes price drops and first-time checks to the dataset
all_runsPushes every check result to the dataset

State Persistence

Price history is stored in a named key-value store (price-drop-tracker-state) keyed by price-state-{md5(url+|+selector)}. This means prices are tracked across runs — each run compares against the previous run's price.

Use Cases

  • Deal hunting — Get notified when products hit your desired price
  • Competitor price monitoring — Track competitor pricing over time
  • Price drop alerts — Set up recurring runs (e.g., every hour) and receive webhooks when prices drop
  • Inventory monitoring — Track stock availability alongside pricing

Local Development

# Install dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Run locally
APIFY_ACTOR_PYTHON_VENV_PATH=.venv apify run --purge
# Push to Apify cloud
apify push

Pricing

This Actor uses pay-per-event pricing at $0.01 per run — one flat charge per execution regardless of how many products you check.