Shopify Competitor Monitor & Product Research
Pricing
from $9.00 / 1,000 change detecteds
Shopify Competitor Monitor & Product Research
Monitor competitor Shopify stores for price changes, new product launches, and app stack updates. Run it on a schedule - you only see what changed, delivered as an AI digest.
Pricing
from $9.00 / 1,000 change detecteds
Rating
5.0
(1)
Developer
Phantom Coder
Maintained by CommunityActor stats
2
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Know what your competitors launched, discounted, or changed this week - before your customers do.
E-commerce brands, D2C teams, and agencies use this Actor to:
- Catch competitor product launches the week they happen - not three weeks later when you notice them on social media
- Know when a competitor drops prices so you can decide in hours, not days
- See which apps competitors are adding - a new SMS tool or loyalty program is a signal about where they're investing
A Shopify price tracker and store monitor that goes further than raw data - it only shows you what actually changed since the last run.
Who is it for
- D2C brands - track what competitors in your category are launching and pricing
- E-commerce agencies - monitor client competitors across dozens of stores on a single schedule
- Retail buyers and merchandisers - watch market pricing signals across a curated set of brands
- Wholesale and private label brands - see which products competitors are discontinuing (potential gaps to fill)
- Growth and marketing teams - track when competitors add or drop retention tools like Klaviyo, Attentive, or ReCharge
Why it's different: smart baseline comparison
Most Shopify scrapers give you the full product catalog every run - thousands of items you have to diff yourself.
This Actor doesn't work that way.
On the first run for each store, it saves a snapshot of the full catalog. On every subsequent run, it compares the current state against that snapshot and only surfaces what changed - new products, price moves, discontinued lines, and app stack changes.
This means:
- A store with 50,000 products generates the same-size change feed as one with 500 - you only see what moved
- You only see changes that happened since your last run
- Your dataset only contains actionable intelligence - not a data dump
The baseline persists across runs indefinitely, so your feed stays fresh no matter how long you've been monitoring.
What it detects
New product launches
Detects new products by cross-referencing your saved baseline - only products that genuinely weren't there before are surfaced.
Example:
Gymshark added "Apex Seamless Leggings - Focus Pink" at $68. Category: Leggings.
Example:
Allbirds launched 3 new colorways of the Tree Runner at $109 each.
Price changes
Every variant price is tracked. When the minimum price on any product changes, a price_change event is recorded with the old and new price, plus the percentage change.
Example:
Allbirds dropped Men's Tree Runners from $98 to $78 (-20%).
Example:
Gymshark raised the Crest Hoodie from $60 to $70 (+17%).
App stack changes
Recognizes 30+ common Shopify apps by their digital footprint. When an app appears or disappears, it records the change.
Example:
Fashion Nova added Attentive (SMS marketing). First time they've had an SMS tool.
Example:
Allbirds removed Hotjar.
Collection filtering (for large stores)
Stores like Fashion Nova have 25,000+ products across 500+ collections. Instead of fetching everything, you can specify exactly which collections to monitor - dresses, tops, bottoms - and the Actor only tracks changes within those collections.
Use listCollections: true to discover what collection handles a store uses before setting up monitoring.
Pricing
Pay Per Event - you only pay for what gets processed.
| Event | Free | Starter | Scale | Business |
|---|---|---|---|---|
| Actor start | $0.00005 | $0.00005 | $0.00005 | $0.00005 |
| Store analyzed | $0.0080 | $0.0070 | $0.0060 | $0.0050 |
| Per 1,000 products fetched | $0.0040 | $0.0030 | $0.0020 | $0.0010 |
| Change detected | $0.0120 | $0.0110 | $0.0100 | $0.0090 |
What triggers each charge:
- Actor start - once per run
- Store analyzed - once per store per run, whether or not anything changed
- Per 1,000 products fetched - every run, based on catalog size. A 5,000-product store = 5 charges per run. Disable price tracking if you only care about new launches - the Actor will then only fetch products that are new since the last run, which is usually just a handful
- Change detected - only when a change is actually found. Zero charges on a quiet week
Typical monthly cost (Starter plan, weekly runs):
| Setup | Monthly |
|---|---|
| 3 stores, small catalogs | ~$0.25 |
| 10 stores, mixed sizes | ~$0.80 |
| 20 stores with collection filtering | ~$2.10 |
| 50 stores with collection filtering | ~$4.00 |
Compare to alternatives:
- PPSPY: $79/month
- Snoopie: $19/month (limited stores)
- Storeleads: $200+/month
- This Actor: ~$4/month for 50 stores, with no store limit
The first run charges for Actor start, store analysis, and product fetching only - no change-detection charges, since there is no previous baseline to compare against yet.
Setup
- Open the Actor and click Start
- Add the Shopify store URLs you want to monitor under Competitor store URLs
- Optional: run once with List available collections enabled to discover collection handles for large stores, then add the ones you care about to Collections to monitor
- Click Start to save the baseline snapshot
- Go to Settings - Schedules and create a weekly schedule
- Optional: add your Groq API key under Settings - Environment variables to get an AI-written digest at the end of each run
The first run produces no change events. It only saves a baseline snapshot. Changes appear from the second run onwards - this is expected behavior, not an error.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
stores | string[] | required | Shopify store URLs to monitor |
collections | string[] | - | Collection handles to limit monitoring (e.g., leggings, dresses). Leave empty for full catalog |
listCollections | boolean | false | Discovery mode - lists all available collection handles instead of monitoring |
trackProductChanges | boolean | true | Detect new and discontinued products |
trackPriceChanges | boolean | true | Detect price changes. Disable if you only care about new launches - uses a faster, cheaper fetch method that only pulls new products rather than the full catalog |
trackAppStack | boolean | true | Detect added/removed apps |
maxProductsPerStore | integer | - | Cap the product fetch per store - useful for controlling costs on huge catalogs |
Environment variables
Set once in Actor settings, not per run:
| Variable | Description |
|---|---|
GROQ_API_KEY | Groq API key for AI digest at end of each run. Free at console.groq.com. The model is preconfigured - no other variables needed. |
Output schema
Product change:
{"store": "https://gymshark.com","storeDomain": "gymshark.com","changeType": "new_product","productTitle": "Apex Seamless Leggings - Focus Pink","productType": "Leggings","productUrl": "https://gymshark.com/products/apex-seamless-leggings-focus-pink","oldValue": null,"newValue": 68.00,"changePercent": null,"detectedAt": "2026-06-01T08:00:00.000Z"}
Price change:
{"store": "https://allbirds.com","storeDomain": "allbirds.com","changeType": "price_change","productTitle": "Men's Tree Runners","productUrl": "https://allbirds.com/products/mens-tree-runners","oldValue": 98.00,"newValue": 78.00,"changePercent": -20,"detectedAt": "2026-06-01T08:00:00.000Z"}
App stack change:
{"store": "https://fashionnova.com","storeDomain": "fashionnova.com","changeType": "app_added","appName": "Attentive","detectedAt": "2026-06-01T08:00:00.000Z"}
Run summary (always the last item):
{"changeType": "run_summary","storesChecked": 10,"totalChanges": 14,"message": "Checked 10 stores, found 14 changes."}
If GROQ_API_KEY is set and changes were found, an AI digest is included before the summary:
- Gymshark launched 4 new products in the seamless leggings category at $58-68
- Allbirds dropped prices on 4 running shoe variants by 15-20%, likely a seasonal clearance
- Fashion Nova added Attentive - their first SMS marketing tool
On the first run, each store produces a baseline_saved item confirming how many products and apps are being tracked, and a run_summary at the end. No changes are reported.
On subsequent runs where nothing changed, each store produces a no_changes item so you can confirm the store was checked even when the output is quiet.
Collection discovery (when listCollections: true):
{"storeDomain": "gymshark.com","handle": "leggings","title": "Leggings","productsCount": 142}
You can download the dataset in JSON, CSV, Excel, or HTML from the Storage tab.
Limitations
- Works only on Shopify stores - not WooCommerce, Magento, or other platforms.
- App detection identifies apps by their digital footprint on the store homepage. Apps loaded exclusively via server-side rendering or injected after a user interaction may not be detected.
- The first run for each store saves a baseline only - no changes are reported until the second run.
- Discontinued products are detected by their absence from the catalog. If a product is temporarily out of stock but not removed, it will not appear as discontinued.
- Collection filtering requires knowing the exact collection handles in advance. Run with List available collections first if you are unsure.
- Stores that block automated requests entirely will produce a
store_errorentry rather than change data.
Scheduling
Weekly runs are sufficient for most use cases - competitor product launches and meaningful price changes happen on weekly cycles.
Recommended schedule (every Monday at 8am):
0 8 * * 1
Daily monitoring (if you track fast-moving categories like flash sales):
0 8 * * *
Set schedules under Settings - Schedules in the Apify Console. The Actor will run automatically and only add new items to your dataset when something changes.
Privacy and ethical use
This Actor accesses publicly available product and pricing data on Shopify storefronts - the same data visible to any shopper. It does not access private accounts, order data, customer information, or anything behind a login.
Use it only for legitimate competitive research. Do not use it to scrape personal data or target stores in ways that violate their terms of service. Rate limiting is built in to avoid placing unnecessary load on monitored stores.
FAQ
How often should I run it? Weekly for most e-commerce use cases - product launches and significant price changes happen on weekly cycles. Daily is supported but rarely necessary.
What happens on the first run?
The Actor fetches the full catalog for each store and saves a baseline snapshot. You get a baseline_saved confirmation per store but no change events. From the second run onwards, only what changed appears in the dataset.
Is this the same as a Shopify spy tool? It does what PPSPY or Snoopie do, but as a scriptable Actor you can schedule, filter by collection, pipe results to Slack or Notion via webhooks, and query the data via API. You own everything.
What if a store has too many products? When a store has a very large catalog, the results will include a recommendation to use the Collections to monitor field or set Max products per store. Both options let you monitor the categories you actually care about without fetching tens of thousands of irrelevant products.
Does this work on any Shopify store?
Any store on the Shopify platform, including custom domains. If a store blocks data access entirely, a store_error row appears in the dataset so you know which ones need attention.
Found a bug or want to request an app fingerprint? Open an issue in the Issues tab. Custom solutions and enterprise monitoring setups are available on request.