Product & Price Drop Tracker avatar

Product & Price Drop Tracker

Pricing

$0.01 / price check run

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

$0.01 / price check run

Rating

0.0

(0)

Developer

Richard P

Richard P

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 months 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 objects✓List of products to monitor
notificationTypestring"changes_only" (default) or "all_runs"
webhookUrlstringURL for price drop webhook notifications

Product Object

FieldTypeRequiredDescription
urlstring✓Full URL of the product page
namestring✓Friendly label for the product
targetPricenumber✓Alert 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.