Competitor Price, Stock, and Changelog Monitor

live$0.0025/change rowSignal Detection

Last updated October 21, 2026

Watch competitor stores and SaaS sites and get only what changed since your last run: price, sale price, and stock changes per product, new and removed products, plan price changes on a pricing page, and new changelog entries. Shopify, WooCommerce, and any pricing page. Clay ready.

Features

  • Watch competitor stores and SaaS sites and get only what changed since your last run: price, sale price, and stock changes per product, new and removed products, plan price changes on a pricing page, and new changelog entries.
  • Shopify, WooCommerce, and any pricing page.
  • Clay ready.
  • Pay per event: Change row at $0.0025.
  • Pay per event: Site check at $0.003.
  • Pay per event: Snapshot row at $0.001.

Input

sitesarrayrequired

Sites. Competitor sites to watch, one per line: a domain (deathwishcoffee.com, linear.app) or a URL. A URL with a path is read as that page: a pricing page, a changelog page, or a product page. Up to 200 sites per run.

site_typestringoptional

Site type. auto (default) reads the public Shopify product feed or the WooCommerce Store API when the site has one, and otherwise reads the pricing and changelog pages it links to.

watcharrayoptional

What to watch. Any of: prices, stock, products, plans, changelog. prices covers price and compare at price per variant; stock covers in stock and out of stock; products covers new and removed products; plans covers plan names and prices on a pricing page; changelog covers new changelog entries. Empty means all five.

product_urlsarrayoptional

Product page URLs (optional). Product pages on a store that is not Shopify or WooCommerce. Each page is read for its schema.org Product price and availability.

pricing_urlsarrayoptional

Pricing page URLs (optional). Pricing pages to read, when the site does not link to its pricing page from the homepage.

changelog_urlsarrayoptional

Changelog page URLs (optional). Changelog or release notes pages to read, when the site does not link to one from the homepage. An RSS or Atom feed the page declares is read first.

max_productsstringoptional

Max products per store. Products read from a store catalog per run, up to 5000. A store with more products than this is compared on the products read, and removed products are not reported for it.

min_price_change_pctstringoptional

Minimum price change (percent). Report a price change only when it is at least this many percent. 0 reports every change.

max_changes_per_sitestringoptional

Max change rows per site. Change rows returned per site per run, up to 1000. The rest are counted in changes_found.

include_snapshotstringoptional

Include snapshot rows. true to also return one snapshot row per product variant, plan, and changelog entry on the first check of a site. Each snapshot row is billed as a snapshot row.

state_keystringoptional

State key. Names the saved state, so separate schedules keep separate baselines. Runs with the same state key and site compare against each other.

reset_statestringoptional

Reset state. true to ignore the saved state and record a new baseline for every site.

max_charge_usdstringoptional

Maximum charge (USD). Optional. The run stops before it would charge more than this.

proxy_modestringoptional

Proxy mode. auto (default) sends requests directly and moves a host to the Apify proxy default pool only when that host refuses. A reliability setting: proxy use adds nothing to your price.

Output schema

json
{
  "row_type": "string",
  "input_key": "string",
  "site": "string",
  "site_type": "string",
  "change_type": "null",
  "page_url": "null",
  "item_id": "null",
  "product_title": "null",
  "variant_title": "null",
  "sku": "null",
  "plan_name": "null",
  "changelog_title": "null",
  "changelog_date": "null",
  "field_changed": "null",
  "old_value": "null",
  "new_value": "null",
  "old_price": "null",
  "new_price": "null",
  "price_change_pct": "null",
  "currency": "null",
  "in_stock": "null",
  "products_tracked": "integer",
  "variants_tracked": "integer",
  "plans_tracked": "null",
  "changelog_entries_tracked": "null",
  "changes_found": "integer",
  "previous_check_at": "string",
  "pricing_url": "null",
  "changelog_url": "null",
  "row_status": "string",
  "error_reason": "null",
  "billable_events_json": "string",
  "checked_at": "string"
}

Pricing

$0.0025per change row

Pay-per-event billing on the Apify platform. You are charged only when the actor returns a result. No subscription, no seat license.

Free-tier Apify accounts include monthly free compute. Upgrade for higher concurrency and volume.

Available on