Shopify Price & Restock Monitor for Variants avatar

Shopify Price & Restock Monitor for Variants

Pricing

from $10.00 / 1,000 product checks

Go to Apify Store
Shopify Price & Restock Monitor for Variants

Shopify Price & Restock Monitor for Variants

Track Shopify product prices and variant restocks. Export before/after prices, percentage changes, sold-out events and public availability. Persistent watches, failure-safe snapshots and one clear fee per successful product check. No login or API key.

Pricing

from $10.00 / 1,000 product checks

Rating

0.0

(0)

Developer

Victor Diaz

Victor Diaz

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Watch specific Shopify products for price drops, price increases, restocks and sold-out variants. Each variant includes its previous price, current price, currency, percentage change and public availability. Use the dataset with Apify schedules, webhooks, n8n, Make or your own application.

This is a targeted product monitor: paste product URLs instead of crawling an entire catalog. One successful product check includes all variants returned by Shopify, up to its 250-variant response limit.

Who this is for

Shopify competitor prices and restock tracking. Use the Shopify price tracker for a short list of products you actually follow. Compare variant prices and public availability across runs, then send returned changes into a restock feed or competitor-pricing workflow. Availability is what the public endpoint reports, not a stock-quantity estimate.

Quick start

  1. Paste 1–50 public Shopify product URLs into Shopify product URLs.
  2. Run with All current records for an immediate export.
  3. To monitor, choose a Watch ID, reuse it on future runs and select Changes only. The first run saves a baseline without variant alerts; later runs return new variants and changed variants. Every check also returns a summary.
{
"productUrls": ["https://www.allbirds.com/products/mens-tree-runners-kaikoura-white"],
"watchId": "competitor-footwear",
"outputMode": "changes"
}

The example product is a public source for testing. Its continued availability is not guaranteed.

Output

Filter recordType=variant for product data; check_summary reports check health, counts and variant IDs missing from the latest response. source_error explains failed checks. SUMMARY in the run's key-value store lists all checks and whether the spending limit stopped the run.

Illustrative changed-variant record:

{
"recordType": "variant",
"title": "Example sneaker",
"variantTitle": "Size 9",
"variantId": "123456",
"currency": "USD",
"priceRaw": 8000,
"previousPriceRaw": 10000,
"priceChangePercent": -20,
"available": true,
"previousAvailable": false,
"changeType": "changed",
"events": ["price_drop", "restocked"]
}

Prices ending in Raw are the integer monetary values returned by Shopify's Ajax API. For USD, 8000 means $80.00. Preserve the currency and apply its storefront formatting rules; do not assume every currency uses two decimal places. Currency is checked through the public locale-aware cart.js endpoint. A currency change is reported separately and never treated as a price drop or increase.

available means Shopify exposes the variant as available to purchase. It is not an inventory quantity or proof of sales. This Actor does not estimate revenue or units sold. compareAtPriceRaw is the published reference price, when present. Subscription/selling-plan prices are outside the scope.

Pricing

$0.01 per successfully checked product, plus $0.00005 per run start at the fixed 512 MB memory setting. Platform usage is included in the event price. All returned variants and summary rows are included; there is no per-row fee.

A successful unchanged or sold-out product still counts as a check. Failed requests and unsupported products do not trigger a product-check charge. Set Maximum cost per run to cap spending; the Actor checks the remaining event budget before requesting the next product.

Examples: 10 products checked once cost $0.10005. Checking those 10 products daily for 30 days costs $3.0015. These are buyer costs, not developer earnings.

Tracking and limitations

  • Use non-overlapping schedules for the same Watch ID. Persistent snapshots live in a named key-value store in the caller's account. A new ID starts a new baseline.
  • Failed checks never replace the last successful snapshot. A 404 or blocked request is an error, not a sold-out signal.
  • Removed variant IDs appear in the summary as missing, not as a claim that an item was discontinued. When Shopify returns 250 variants, variantLimitReached warns that the source may be truncated.
  • Supports public Shopify theme storefronts and optional locale prefixes such as /en-us/products/handle. Store homepages, non-Shopify stores, password-protected stores and custom headless storefronts are unsupported. No login, cookies, API key or proxy is required.
  • The Actor reads public JSON endpoints with bounded requests. It does not bypass access controls. Geo-dependent prices can differ from a customer's browser; reuse the same locale URL for consistent comparisons.

Source reference: Shopify Ajax Product API.

For hiring signals, see ATS Job Watch. For new articles by keyword, see Google News Keyword Watch.

Try one source before scheduling

  1. Open the Input tab and use one supported source with outputMode: "all" for an immediate export.
  2. Check the returned records and the check summary. Confirm the source, coverage and price suit your workflow.
  3. To monitor, set a stable Watch ID and outputMode: "changes". The first successful run establishes a silent baseline.
  4. Reuse that Watch ID on later runs. A summary without change records means the check completed without matching changes.
  5. Add an Apify schedule after the manual checks work. Avoid overlapping runs with the same Watch ID. Use Maximum cost per run to cap event charges.

Public-data monitors by the same developer: browse the catalog.