Shopify Competitor Change Monitor avatar

Shopify Competitor Change Monitor

Under maintenance

Pricing

from $8.00 / 1,000 change detecteds

Go to Apify Store
Shopify Competitor Change Monitor

Shopify Competitor Change Monitor

Under maintenance

Monitor Shopify competitors for new and removed products, variant price changes, and stock changes. First run builds a baseline; later runs return only changes.

Pricing

from $8.00 / 1,000 change detecteds

Rating

0.0

(0)

Developer

Lâm Đỗ

Lâm Đỗ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Monitor public Shopify storefronts and receive only product changes since the previous compatible run—not another full catalog dump. This Shopify competitor monitor produces structured, API-friendly price, stock, and product-change records without Shopify credentials.

FIRST RUN CREATES THE BASELINE AND NORMALLY RETURNS ZERO DATASET ITEMS. Run it again later with the same configuration to receive detected changes.

What it monitors

  • NEW_PRODUCT — a product appears in a complete comparison.
  • PRODUCT_REMOVED — a product disappears from a complete comparison.
  • PRICE_DROP — a variant price decreases.
  • PRICE_INCREASE — a variant price increases.
  • OUT_OF_STOCK — a variant becomes unavailable for purchase.
  • BACK_IN_STOCK — a variant becomes available again.

Price and availability changes are tracked by stable Shopify variant IDs. This makes the Actor useful as a Shopify price monitor, Shopify price tracker, and Shopify stock monitor without treating product renames or variant reordering as changes.

How it works

Run 1 → establish baseline → return zero changes
Run 2+ → compare with baseline → return changes only

The Actor checks public storefront sitemaps and Shopify's public product data. It supports multiple stores and automatically manages the latest compatible baseline.

Who is this for?

  • E-commerce operators monitoring competitor assortments and availability.
  • Shopify merchants tracking market price movements.
  • Competitive-intelligence and pricing teams.
  • Agencies monitoring multiple client or competitor stores.
  • Data and API workflows that need structured Shopify product changes.

Input

{
"storeUrls": [
"https://example-store.com",
"https://another-store.myshopify.com"
],
"maxProducts": 500
}

storeUrls accepts 1–20 public HTTP(S) storefronts. maxProducts applies per store, defaults to 500, which is also the V1 maximum, and can be lowered for small tests.

Output

The default dataset contains only detected changes. Stable product and variant IDs and human-facing URLs remain available in raw JSON.

Price change:

{
"changeType": "PRICE_DROP",
"storeUrl": "https://example-store.com",
"productId": "329678821",
"handle": "red-rain-coat",
"title": "Red Rain Coat",
"productUrl": "https://example-store.com/products/red-rain-coat",
"variantId": "794864229",
"variantTitle": "Small",
"previousPriceMinor": 12900,
"currentPriceMinor": 10900,
"detectedAt": "2026-08-26T10:00:00.000Z"
}

Stock change:

{
"changeType": "OUT_OF_STOCK",
"storeUrl": "https://example-store.com",
"productId": "329678821",
"handle": "red-rain-coat",
"title": "Red Rain Coat",
"productUrl": "https://example-store.com/products/red-rain-coat",
"variantId": "794864229",
"variantTitle": "Small",
"previousAvailable": true,
"currentAvailable": false,
"detectedAt": "2026-08-26T10:00:00.000Z"
}

Product-level change:

{
"changeType": "NEW_PRODUCT",
"storeUrl": "https://example-store.com",
"productId": "329678999",
"handle": "new-jacket",
"title": "New Jacket",
"productUrl": "https://example-store.com/products/new-jacket",
"detectedAt": "2026-08-26T10:00:00.000Z"
}

Prices use Shopify's exact integer minor-unit representation. Currency formatting is intentionally left to the consumer.

How to monitor automatically

Create an Apify Task with the desired input, then schedule that Task in Apify Console. Executions of the same Task share an isolated monitoring baseline. The Actor does not create schedules itself.

Important behavior

  • The first compatible run normally returns zero changes and creates the baseline.
  • Later compatible runs return changes only.
  • Changing maxProducts establishes a new compatible baseline context.
  • If the previous extraction was incomplete, unsafe NEW_PRODUCT events are suppressed.
  • If the current extraction is incomplete, unsafe PRODUCT_REMOVED events are suppressed.
  • Directly observed matching variants can still produce reliable price and availability changes.
  • Dataset delivery is at least once: a rare persistence failure after output may cause duplicate changes on retry rather than permanently losing events.

Limits

  • Only publicly accessible Shopify storefront data is supported.
  • Private, password-protected, malformed, or merchant-blocked storefronts may fail.
  • Availability means storefront purchasability, not physical inventory quantity.
  • No CAPTCHA bypass, authentication bypass, private API, or anti-bot evasion is used.
  • V1 monitors at most 500 products per store.
  • Large catalogs intentionally use conservative request pacing for reliability.
  • A best-effort stale-write guard exists, but overlapping runs are not transactionally locked.

Pricing

Platform usage is included. Customers are not charged underlying compute, storage, or data-transfer usage separately.

EventPriceCharged when
Actor start$0.00005Once per run
Product checked$0.00005For each successfully fetched and validated Shopify product
Change detected$0.008For each change result written to the dataset

That is $0.05 per 1,000 successfully checked products and $8 per 1,000 detected changes. A quiet scheduled run still costs product-check fees because the catalog must be checked to determine that nothing changed.

Examples:

  • 10 products and no changes: $0.00055.
  • 500 products and no changes: $0.02505.
  • 500 products and one detected change: $0.03305.
  • 500 products and five detected changes: $0.06505.

Local development

npm install
npm run build
npm run typecheck
npm test
npm start