To track Shopify prices and availability, copy the product URL for the exact size, color or pack and enter it into the Shopify Price Tracker and Stock Monitor. Set the market country and expected currency, run once to establish a baseline, then repeat the same Task to see changes.
Start with one variant. A plain product link selects all its variants, a collection URL selects a category, and a store root requests the public catalog. Those are different scopes with different costs and coverage requirements.
A useful first result: the exact variant, its options and SKU, confirmed country, currency, price and public availability. Once these match your intended offer, schedule repeat checks. The Actor reports observations and changes; your notification workflow decides where to send them.
Find the exact Shopify variant you want to watch
Select the size, color or pack on the storefront. If the address changes to a product URL with ?variant=123, copy that link with its real numeric ID. A product's displayed starting price does not prove that a particular size is selected.
- If the storefront does not expose a usable variant link, open the Actor through Try for free, sign in and go to its editable Input form.
- Enter one plain product URL, without a variant selector. Clear optional SKU and named-option selectors.
- Choose Export / discover variants and One row per variant.
- Run once, then inspect
variantId,sku,selectedOptionsand the direct varianturl. - Copy the desired variant URL into a new monitor setup.
Discovery uses normal check pricing but does not write monitor history. It includes sold-out variants when exposed by the source. Use the actual returned option names and values; do not guess translated labels or assume that the same SKU identifies equivalent packs across stores.
Configure a first monitor in Apify Console
- Replace the example in Shopify URLs with your exact variant URL.
- Set Market country, such as US, and Expected currency, such as USD.
- Keep Track price and stock changes selected. Leave the initial snapshot enabled so you can inspect the first verified offer.
- Review the live Pricing tab and set a Run options spending cap.
- Start, then open Readable change and source-health report, source coverage and the variant observations.
- Verify the selection before saving the Task and adding an Apify schedule.

This is a read-only field reference. Enter values in the editable Console form. The example below comes from the Actor documentation; it illustrates an exact variant selection, not a guarantee that the merchant still sells that offer. Replace the URL with your reviewed product.
{
"urls": [
"https://www.deathwishcoffee.com/products/valhalla-java-single-serve-pods?variant=392715452"
],
"country": "US",
"expectedCurrency": "USD",
"mode": "monitor",
"monitorId": "coffee-watch",
"outputMode": "all"
}For a saved Task, omit monitorId to use the Task's identity automatically. For API or manual checks, reuse a stable name and give independent watchlists different names. Keep that identity and the target scope stable for later comparisons.
Keep market, currency and selection consistent
country requests the storefront market. expectedCurrency checks the response; it does not convert prices or switch markets by itself. A mismatched response fails verification and preserves prior history. For localized paths, explicitly set country or language rather than relying only on the URL.
Exact SKU and named-option filters can be used instead of a variant URL. Restrictions combine: a URL for size M plus an option filter for size L produces NO_MATCH. The Actor does not silently replace your selection. Review suggested variants before changing the watchlist.
Suppose a store sells 250 g and 1 kg bags. Record their separate IDs and prices. Comparing Friday's 1 kg price with Monday's 250 g price would create a false change even if both came from the same base product URL. Preserve store, variant ID, selected options, applied country and currency together.
Read observations, changes and source health separately
| Record | Meaning |
|---|---|
observation | Current values for one selected variant. |
product_observation | A product with its variants nested in variants. |
change | An event with eventId, before/after values and variant link. |
source_status | Verification, coverage, market and source issues. |
comparison | Reviewed offer-group comparison and eligibility. |
check_receipt | Successful check units and requested fees. |
Prices are decimal strings. Keep price, compareAtPrice, currency, appliedCountry, availableForSale, availability and backorder. Availability does not guarantee exact inventory quantities or immediate shipping. A purchasable backorder is different from an in-stock offer.
The first complete monitor check creates a baseline. With default changesOnly, later quiet checks return health and receipts without price alerts. Choose outputMode: "all" for current observations on every successful monitor check. A quiet successful check is still billed.
Export a watchlist or import one from a spreadsheet
For a current price export without history writes, use snapshot mode. One-row-per-variant output is easier for CSV. Compact JSON groups variants and can use fewer billable units for large products or catalogs. Console views select columns; filter recordType explicitly in your own import.
To import a watchlist, paste CSV into Import a CSV watchlist and clear both Shopify URLs and Advanced targets. Use only one populated format. Supported columns include URL, exact variant ID or SKU, country and expected currency. Keep IDs as text so Excel does not round them or use scientific notation.
The watchlist accepts up to 100 targets. Preview mode checks parsing and requested selections without store requests or product/catalog check units; startup still applies. Preview cannot verify that a variant exists, that the market works or what the complete live check will cost.
Schedule useful price and availability alerts
Save one Task and attach a schedule in Apify. Keep the same identity for repeat checks. Set minimumPriceChangePercent to the string "1" for a cumulative 1% threshold, or "0" for every price move. Availability events do not depend on this threshold.
PRICE_DECREASEandPRICE_INCREASEdescribe qualifying price moves.SOLD_OUTandRESTOCKEDdescribe exposed availability transitions.- Failed or incomplete checks preserve the last successful history.
- Disappearance requires consecutive successful absence checks; the default is two.
NO_MATCH,MARKET_UNSUPPORTED,SOURCE_FAILEDandPARTIALneed source-health review.
Read REPORT for the digest and SUMMARY for coverage. The digest is bounded, so fetch the paginated dataset when every event is needed. Deduplicate notifications by eventId; replayed delivery must not create duplicate messages. Forward events using your application or webhook consumer. The Actor does not send notifications itself.
Compare competitor offers and understand check costs
Use explicitly reviewed comparison groups with exactly one variant per member and the same verified country and currency. Confirm model, pack quantity and purchase terms. Barcode match suggestions require review and do not automatically become ranked offers.
The comparison does not calculate shipping, duties, checkout discounts, currency conversion or profit margin. Backorders remain visible but are excluded from ranking by default. A failed or ambiguous source should not produce a best-price recommendation.
Billing uses check units, not simply the number of alerts. Product and catalog targets have different rates and bucket sizes; flat variant exports can require more units than compact JSON. Baselines, quiet checks and verified empty selections can be billed. Review the live pricing and BILLING before expanding a watchlist.
Use Apify MCP and your AI agent for the watchlist
Authorize a compatible agent at https://mcp.apify.com using the Apify MCP connection instructions. Give it a product you have reviewed and state the exact market and selection.
Inspect x_guru/shopify-price-stock-monitor
through Apify MCP. Use my supplied exact
variant URL, country US and currency USD.
Set callOptions.maxTotalChargeUsd to 0.10.
Run one monitor check with all observations.
Use monitorId reviewed-watch-us.
Read REPORT, SUMMARY and BILLING.
Show variantId, selectedOptions, price,
currency, appliedCountry and availability.
Read all dataset pages. Separate changes,
source issues and observations in exports.
Do not create a schedule automatically.The agent should inspect with fetch-actor-details, launch with call-actor, check status using get-actor-run, retrieve reports with get-key-value-store-record and paginate get-dataset-items. On later checks, reuse the monitor identity and exact scope.
For an application-driven integration, see the Actor run and Dataset export guide. To select a different source, use the Actor directory.



