Competitor Intelligence & Price Monitor avatar

Competitor Intelligence & Price Monitor

Pricing

Pay per usage

Go to Apify Store
Competitor Intelligence & Price Monitor

Competitor Intelligence & Price Monitor

Extract product data, prices, and availability from e-commerce pages. Track price changes, stock status, and promotions across repeated runs.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Quintin McLaughlin

Quintin McLaughlin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

An Apify Actor that extracts structured product data, prices, availability, and promotions from public web pages. Track changes across repeated runs for competitor analysis.

Features

  • Multi-source extraction: JSON-LD, OpenGraph, and semantic HTML parsing
  • Change detection: Compare results across runs to identify price drops, availability changes, and promotions
  • Keyword matching: Filter and tag pages based on relevant keywords
  • Structured output: Clean JSON dataset ready for analysis or AI consumption
  • Respectful crawling: Configurable request delays, duplicate URL handling, graceful error handling

Usage

Input Schema

FieldTypeDescriptionDefault
startUrlsArray<{url: string}>Required. List of public web page URLs to analyze-
keywordsstring[]Optional keywords to match against page content[]
maxPagesnumberMaximum pages to process (0 = unlimited)100
requestDelayMsnumberDelay between requests in ms (higher = gentler)1000
extractModestringExtraction aggressiveness: auto, strict, or lenientauto
proxyConfigobjectProxy configuration (optional){}

Output Schema

Each record in the dataset contains:

FieldTypeDescription
sourceUrlstringURL that was requested
finalUrlstringFinal URL after redirects
domainstringSource website domain
productNamestringProduct name extracted from page
pricenumberCurrent price
currencystringISO 4217 currency code
availabilitystringin_stock, out_of_stock, preorder, or unknown
originalPricenumberList/original price before discounts
discountnumberDiscount percentage (0-100)
promotionTextstringPromotional text found on page
descriptionstringProduct description
imageUrlstringMain product image URL
keywordsMatchedstring[]Input keywords that matched
scrapedAtstringISO 8601 timestamp
changeDetectedbooleanWhether changes detected vs. previous run
changesarrayList of detected changes
extractionMethodstringHow data was extracted
errorstringError message if extraction failed

Change Detection

The Actor stores historical data and compares new results. Changes are detected for:

  • Price - Price increases or decreases
  • Availability - Stock status changes
  • Product name - Title/name changes
  • Description - Description text changes
  • Promotion text - Promotional messaging changes

For AI Agent Consumption

Output is designed for easy AI agent consumption:

  • All fields are JSON-compatible
  • changeDetected and changes fields enable "what changed?" queries
  • availability field identifies out-of-stock items
  • discount field identifies promotions
  • keywordsMatched helps filter relevant results

Example queries AI agents can answer:

  • "What changed since last run?" → Filter by changeDetected: true
  • "Which competitor lowered price?" → Look for changes with field: 'price' and newValue < oldValue
  • "Which products are unavailable?" → Filter by availability: 'out_of_stock'
  • "Which competitors have promotions?" → Filter by discount > 0

Limitations

  • Only extracts from publicly accessible pages
  • JavaScript-heavy pages may need lenient mode or browser-based crawler
  • Change detection requires previous runs against same URLs
  • Extraction accuracy depends on page structure
  • Does not bypass authentication, CAPTCHAs, or anti-bot measures

Compliance

This Actor only collects publicly accessible information. Users are responsible for:

  • Complying with applicable website terms of service
  • Respecting robots.txt where applicable
  • Not exceeding reasonable request rates (use requestDelayMs)
  • Complying with applicable data protection laws
  • Not using extracted data for unauthorized purposes

Development

Install Dependencies

$npm install

Build

$npm run build

Run Tests

$node --test tests/test-utils.js tests/test-input-validation.js tests/test-change-detection.js

Run Locally (with Apify CLI)

# Set up input.json with your test URLs
apify run

Monetization

This Actor uses the Pay-per-event (PPE) pricing model:

  • Primary event: product-analyzed - charged per successfully processed page
  • Always pushes data to dataset BEFORE charging (critical for user trust)

License

ISC