Shopify Competitor Insights: Price & Stock
Pricing
from $8.00 / 1,000 competitor store checks
Shopify Competitor Insights: Price & Stock
Monitor competitor Shopify stores for meaningful price and stock changes, with history that reveals repeated movements, reversions, stockouts, restocks, and store-wide pricing shifts.
Pricing
from $8.00 / 1,000 competitor store checks
Rating
0.0
(0)
Developer
Kibira
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Shopify Competitor Insights: Price & Stock watches named competitor Shopify stores over repeated checks and tells you which price and stock changes are worth your attention. It doesn't just report that something changed. It compares each check against what it saw before. A price drop might be a one-off, the second cut in two weeks, or a return to a price the product held before. A product coming back in stock has a real number of days behind it, not just a guess.
What does it do?
You give this Actor one or more public Shopify store web addresses. It checks each store's public product catalog and remembers what it saw. On the first check, it records a starting point. On every check after that, it compares the current catalog against your store's history and reports meaningful price and stock activity: price movements of 15% or more, repeated movements, prices returning to a level they held before, stockouts, and restocks.
No store login is required, and no private customer or account data is involved. This Actor only reads the same public catalog information any shopper could see on the store's website. You control when and how often it runs. It checks a store once per run; it does not monitor continuously in the background unless you schedule repeated runs yourself, for example with Apify's built-in Scheduler.
What can you use it for?
- Competitor pricing monitoring. Know when a named competitor drops or raises prices by a meaningful amount.
- Promotion and markdown awareness. Catch pricing activity across a competitor's catalog as it happens, check by check.
- Stockout and restock monitoring. See when a competitor's product runs out and how long it stays unavailable.
- Spotting repeated pricing behavior. Know when a price cut is the second one in two weeks, not just the first one you happened to notice.
- Recognizing price reversions. Know when a price returned to where it used to be, instead of tracking it yourself in a spreadsheet.
- Reading store-wide pricing moves. See when a competitor runs a broad, store-wide price change instead of one product at a time.
How it works
- You provide a list of competitor store web addresses.
- Each time you run this Actor, it fetches the public product catalog for every store you listed.
- It compares what it just collected against that store's own history from previous runs.
- It classifies what actually changed using fixed rules (explained below), so a small, ordinary price edit doesn't get reported as a meaningful event.
- Results are written to the Dataset for that run, in plain English.
Quick start
- Open the Input tab and add the competitor store web addresses you want to track, for example
https://allbirds.com. You can list up to 10 stores. - Optionally set Maximum products per store if you want to limit how much of a catalog is checked, for example while testing.
- Run the Actor. The first run for each store records a starting point. It does not report any price or stock changes yet, since there is nothing earlier to compare against.
- Run it again later, whenever fits how often the store tends to change, whether that's an hour, a day, or a week after the first run. From this run onward, you'll see real price and stock results based on what changed since the last check.
- Keep running it on whatever schedule works for you. Apify's built-in Scheduler can do this automatically.
- Open the Dataset tab to see your results. The Overview view shows plain-English results; switch to Details / technical if you need exact field names and raw values.
Understanding the first check
The first time this Actor checks a store, there is nothing earlier to compare against, so it cannot yet report a price or stock change. Instead, it records a starting point:
"Starting point recorded for 1,719 products. Price and stock history will build up starting with your next run."
This is a successful result, not an empty one and not a failure. Once billing is active, a successful first check is charged the same as any other successful check, the same as every later check where the store was reached and read correctly.
Understanding later checks
From your second check for a store onward, this Actor compares the fresh catalog against that store's history and can report:
- A price movement of 15% or more in either direction, for example "Price decreased 18%."
- A repeated movement, when a price change is the second (or later) qualifying move in the same direction within 14 days, for example "Second price reduction in 14 days."
- A price reversion, when a price returns to a value it held before, for example "Price returned to its previous level."
- A stockout, once a product has been continuously in stock for at least 14 days and then goes unavailable, for example "Out of stock after 15 days in stock."
- A restock, when a product that was out of stock becomes available again, for example "Back in stock after 6 days unavailable."
- A store-wide price movement, when a large share of a store's catalog moves in the same direction in one check (see below), for example "Widespread price decreases across 612 of 1,720 products (35.6%)."
- No meaningful change, when the check succeeds but nothing crosses these rules (see "Quiet successful checks" below).
The examples above are illustrative. They show the kind of language this Actor uses, not a claim about what any specific real competitor has done.
What counts as meaningful intelligence
To keep results useful instead of noisy, this Actor only reports price movements of 15% or more. Smaller day-to-day price edits are not surfaced as meaningful price intelligence. This is a deliberate choice to reduce noise, not a promise that every price change with commercial significance will always meet the threshold or be caught between the exact times you happen to check.
A stockout is only reported once a product has been observed continuously in stock for at least 14 days beforehand, so this Actor never reports a stockout it cannot back up with its own observed history.
Clearly identified gift cards and ancillary protection products, such as return or shipping coverage add-ons, are excluded from price and stock intelligence so they don't distort a store's real pricing and stock signals. They are not treated as ordinary catalog products for this purpose.
Store-wide price movements
When 30% or more of a store's tracked products show the same directional price movement in one check, this Actor reports one store-wide result instead of flooding your Dataset with hundreds or thousands of near-identical individual rows. A store-wide result still reflects every affected product; it is simply reported as one summary rather than one row per product. For billing, a store-wide result counts as a single intelligence result, regardless of how many underlying products it summarizes.
Pricing
This Actor uses separate charges for successful store checks and the meaningful intelligence results it finds.
Competitor store check: $0.008 per successful check. Charged once for every store that is successfully and reliably checked during a run, whether or not anything changed. That works out to $8 per 1,000 successful competitor store checks.
Intelligence result: $0.012 per result. Charged once for each meaningful price movement, stock change, or store-wide result this Actor reports for a store, up to a maximum of 40 intelligence results per store per check. If a check finds more than 40 results, you still receive all of them in your Dataset. Only the first 40 are billed for that check.
That means the most a single successful store check can cost is $0.008 + (40 × $0.012) = $0.488.
A few things to know:
- A failed store check costs $0. If a store cannot be reached or read reliably, you are not charged for it.
- There are no per-product charges and no hidden processing fees. The two charges above are the whole pricing model.
- A quiet check, where the store is checked successfully but nothing meaningful is found, is not charged an intelligence-result fee. The competitor store check charge still applies, because the store was still checked successfully.
- A first check for a store is billed the same as any other successful check.
Pricing examples
| Result | Charge |
|---|---|
| Successful check, 0 intelligence results | $0.008 |
| Successful check, 1 intelligence result | $0.020 |
| Successful check, 5 intelligence results | $0.068 |
| Successful check, 10 intelligence results | $0.128 |
| Successful check, 40 or more intelligence results | $0.488 (maximum billed) |
| Failed check | $0 |
Understanding the results
Every result in the default Dataset view is written in plain English. Each row tells you the store, what happened, and when it was detected. Depending on the kind of result, you may also see the affected product, the size of the price movement, extra context (such as a repeated movement or a reversion), and a link to the product page. Fields that don't apply to a particular kind of result are simply left blank.
The kinds of results you'll see are: a starting point (first check), a price movement, a stock change, a store-wide price movement, and a quiet check with no meaningful change. Switch to the Details / technical view if you need the exact underlying field names for automation or integrations.
Quiet successful checks
Not every check finds something worth reporting, and that's expected. When a check succeeds but nothing crosses this Actor's meaningful-change rules, you'll see a result like this:
No meaningful changes detected The store was checked successfully. No meaningful price or stock changes were found since the previous check. No intelligence-result charge applies to this check.
This is a successful outcome, not a failure and not an empty run. The store was reached and read correctly; it just didn't have anything to report this time. The competitor store check charge still applies to a quiet check, since checking the store is exactly what happened. Only the intelligence-result charge is waived, because no intelligence result was produced.
Examples
{"recordType": "price_movement","eventLabel": "Second price reduction in 14 days","store": "example-store.com","productTitle": "Running Shoe X","direction": "decrease","percentChange": -18.2,"oldPriceCents": 8500,"newPriceCents": 6953,"isRepeated": true,"priceChangeLabel": "Price decreased 18%","contextLabel": null,"detectedAt": "2026-09-16T00:00:00.000Z","evidenceUrl": "https://example-store.myshopify.com/products/running-shoe-x?variant=123"}
When a movement is a repeat or a reversion, eventLabel leads with that context, for example "Second price reduction in 14 days," while priceChangeLabel always keeps the plain movement fact ("Price decreased 18%") next to it.
You can download the Dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Meaning |
|---|---|
eventLabel | Plain-English summary of what happened. |
store | The competitor store's domain. |
productTitle | The affected product's name, when there is one product involved. |
direction / eventType | increase/decrease for a price result, stockout/restock for a stock result. |
percentChange | Signed percent price change. |
contextLabel | Extra context, such as a repeated movement, a reversion to a previous price, or an explanation of a quiet check. |
durationDays | Days in stock before a stockout, or days unavailable before a restock. |
evidenceUrl | A link to the specific product page, when there is one product involved. |
Limitations
- Works with Shopify stores only. It does not support other e-commerce platforms.
- Uses public catalog information only. It does not access private data, customer data, or authenticated store areas.
- Reports what changed between the runs you schedule. It does not monitor continuously in real time, and what it can report depends on how often you check a store.
- The first check for a store establishes history only. It cannot report a price or stock change until there is a prior check to compare against.
- A price change of less than 15% is not reported as meaningful price intelligence, even if it happened.
- Historical intelligence, such as repeated-movement and reversion detection, is based on a 90-day rolling window of this Actor's own observations for a store.
- Some Shopify stores structure or restrict catalog access in ways this Actor cannot work around.
- This Actor reports what changed. It does not recommend prices or reprice anything on your behalf.
- There is no guarantee that a short-lived change between two checks will be observed, since this Actor only sees the catalog at the moments you choose to run it.
- There is no AI or machine learning involved. Every result comes from deterministic rules applied to what was actually observed.
Privacy and data access
This Actor does not require a Shopify login, and it never asks for or uses competitor account credentials. It does not access private customer data, order data, or any authenticated area of a store. It reads the same publicly available catalog information any visitor could see on the store's website, for the store web addresses you provide.
Technical information
Input. storeUrls (required): the competitor store web addresses to check, up to 10. maxProductsPerStore (optional): limits how many products are checked per store, useful for testing or keeping costs predictable.
Output record types. Every Dataset item has a recordType: baseline_established (first check), price_movement, stock_change, store_rollup (store-wide movement), or no_meaningful_change (a quiet, successful later check). Fields that don't apply to a given record type are present and explicitly null, so nothing renders as an unexplained blank due to a missing field.
History. This Actor keeps a 90-day rolling window of its own observations per store to power repeated-movement detection, reversion detection, and stockout/restock duration. It does not retain an unlimited historical record.
Run-health records. Alongside your results, this Actor also keeps its own internal per-check technical summaries (collection status, product counts, and similar operational detail) in a separate, non-customer-facing Dataset, so they never appear mixed in with your price and stock results.
Feedback
This Actor is under active development. If something looks wrong or you have a suggestion, use the Issues tab on this Actor's Apify Store page.