Competitor Price & Promotion Monitor avatar

Competitor Price & Promotion Monitor

Pricing

from $3.00 / 1,000 page checks

Go to Apify Store
Competitor Price & Promotion Monitor

Competitor Price & Promotion Monitor

Track competitor prices, discounts, promotions, coupons, and stock changes over time. Create a baseline on the first run, then detect structured commercial changes on every scheduled check.

Pricing

from $3.00 / 1,000 page checks

Rating

0.0

(0)

Developer

Miasma Automation

Miasma Automation

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Most scrapers tell you what a product page contains right now. Competitor Price & Promotion Monitor watches ecommerce pages over time and tells you what commercially changed.

Track competitor prices, discounts, promotions, coupons, and supported stock changes. Run once to create a baseline, then schedule recurring checks in Apify to see exactly what changed.

What It Does

This Actor monitors product, category, and promotion pages and writes structured results to the Dataset. On the first run it stores the current state. On later runs it compares the latest page state against stored history and reports material commercial changes.

You do not need to configure scraping selectors or proxy settings.

Who It's For

  • Ecommerce brands tracking competitor offers
  • Ecommerce agencies managing client watchlists
  • Pricing teams watching price movement
  • Merchandising teams monitoring sales and promos
  • Competitive intelligence teams looking for market signals
  • Marketplace and retail analysts comparing offers over time

What It Tracks

  • Price increases
  • Price decreases
  • Discount started
  • Discount changed
  • Discount ended
  • Promotion started
  • Promotion changed
  • Promotion ended
  • Coupon appeared
  • Coupon removed
  • Stock changes where supported
  • Baseline state
  • Grouped OFFER_CHANGED events

When several related changes happen at once, the Actor can return a grouped OFFER_CHANGED event with atomic supporting events such as PRICE_DECREASE, DISCOUNT_STARTED, or PROMOTION_STARTED.

How It Works

  1. Add competitor product, category, or promotion URLs.
  2. Choose what to track.
  3. Run the Actor once.
  4. The first run creates a baseline.
  5. Schedule the Actor in Apify to rerun automatically.
  6. Future runs compare the new state with the previous state.
  7. Material commercial changes are written to the Dataset.

First Run: Create A Baseline

The first run creates the initial snapshot for each supported page.

There is no previous observation yet, so the Actor reports BASELINE_CREATED rather than pretending that "no changes" occurred. Change events begin on later runs with the same monitor identity or target configuration.

Automatic Monitoring With Apify Schedules

Use Apify Schedules to run this Actor hourly, every few hours, daily, or weekly.

The Actor does not schedule itself. Each scheduled run loads stored history, checks the current page state, and reports new changes found during that run.

Input

{
"targets": [
{
"url": "https://example.com/product/example-shoe",
"label": "Competitor A"
}
],
"trackPrices": true,
"trackPromotions": true,
"trackCoupons": true,
"trackStock": false,
"minimumDiscountPercent": 0,
"outputMode": "changes_and_snapshots"
}

targets is required. monitorId is optional and can be used as a stable identity for the same customer watchlist across future runs.

Output

First run baseline:

{
"record_type": "BASELINE_CREATED",
"target": "https://example.com/product/example-shoe",
"competitor": "Competitor A",
"snapshots": 1,
"message": "Baseline created. No changes are reported until a later run compares against this history."
}

Subsequent run with a material offer change:

{
"record_type": "CHANGE_EVENT",
"competitor": "Competitor A",
"product_name": "Example Shoe",
"event": "OFFER_CHANGED",
"primary_change": "DISCOUNT_STARTED",
"supporting_changes": [
"PRICE_DECREASE",
"PROMOTION_STARTED"
],
"old_price": 200,
"new_price": 150,
"discount_percent": 25,
"promotion_text": "25% OFF"
}

The Actor also emits SNAPSHOT records for current page state and ERROR records for unsupported or partially failing targets.

Pricing

This Actor uses Pay Per Event pricing:

  • Actor start: $0.01 per run
  • Page checked: $0.003 per successfully processed page
  • Detected changes: included at no additional charge

page-checked is the primary billing event. It is charged only after a page is successfully processed.

Example run costs:

  • 10 pages: $0.01 + (10 x $0.003) = approximately $0.04 per run
  • 100 pages: $0.01 + (100 x $0.003) = approximately $0.31 per run
  • 1,000 pages: $0.01 + (1,000 x $0.003) = approximately $3.01 per run

If the Actor is scheduled repeatedly, each scheduled run is billed according to the pages successfully checked during that run.

Why Use This Instead Of A Normal Scraper?

A normal scraper shows current page state.

This Actor remembers previous state, detects material commercial changes, calculates discounts, normalizes events, suppresses duplicate noise, and supports recurring monitoring.

Limitations

  • Optimized for HTTP-accessible ecommerce pages.
  • Works best when useful product and price information is available in normal HTML or structured metadata.
  • Some JavaScript-heavy sites may not work in V1.
  • Authenticated or login-only pages are not supported.
  • Restricted sources may be unsupported.
  • Not every ecommerce website is guaranteed to work.
  • No proxy bypass or CAPTCHA bypass is provided.

Unsupported pages return structured ERROR records instead of silent success.

Support / Feedback

If a supported-looking ecommerce page does not parse correctly, share a sample URL and the expected price or promotion fields. New storefront patterns can usually be added as targeted parser improvements.