Shopify Products Scraper & Price Monitor avatar

Shopify Products Scraper & Price Monitor

Pricing

from $1.00 / 1,000 row returneds

Go to Apify Store
Shopify Products Scraper & Price Monitor

Shopify Products Scraper & Price Monitor

Scrape all products from any Shopify store: prices, sale prices, stock, variants, SKUs and images. Monitor mode returns only what changed since the last run: new products, price drops, price increases, back in stock, sold out, removed. One row per product or per variant. Export to CSV, Excel, JSON.

Pricing

from $1.00 / 1,000 row returneds

Rating

0.0

(0)

Developer

CANCAP

CANCAP

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape every product from any Shopify store and, on later runs, get only what changed: new products, price drops, price increases, back in stock, sold out and removed products.

No coding, no API key and no Shopify account needed. Paste a store URL, click Start, and export to Excel, CSV, JSON or Google Sheets.

What you get for each product

  • Prices: current price, highest variant price, compare-at (crossed-out) price, discount %, on-sale flag, currency
  • Stock: in stock / sold out, number of available variants
  • Variants & SKUs: every size and color with its own SKU, price and stock, either inside the product row or as one row per variant
  • Catalog data: title, vendor, product type, tags, options, images, product URL, created / published / updated dates, optional description
  • Changes since your last run: changeType (new, price_drop, price_increase, back_in_stock, sold_out, variant_change, removed), previous price, price change and % change

Who uses this

  • Store owners & brands watching competitor prices, sales and new launches.
  • Dropshippers & resellers finding new and restocked products before others.
  • Agencies & analysts exporting a full catalog for research, pricing studies or migration.
  • Deal and price-comparison sites that need a daily feed of price drops.
  • Developers who want clean product JSON through an API, Zapier, Make or n8n.

How to use

Export a full catalog

  1. Paste one or more store URLs, e.g. https://www.allbirds.com or gymshark.com.
  2. Set Max products per store to 0 for everything.
  3. Click Start and download the results.

To scrape one collection only, paste the collection URL: https://www.allbirds.com/collections/mens.

Monitor prices and stock (change feed)

  1. Turn on Monitor mode: return only what changed since the last run.
  2. Set Max products per store to 0 so removed products can be detected.
  3. Schedule the Actor (daily or hourly). The first run saves the baseline and returns the full catalog; every later run returns only the changes.
  4. Connect the dataset to Slack, email, Google Sheets or your own app.
{
"storeUrls": ["https://www.allbirds.com", "gymshark.com/collections/sale"],
"maxProductsPerStore": 0,
"onlyChanges": true,
"rowPerVariant": false
}

Output example

{
"store": "acme-shoes.example",
"storeName": "Acme Shoes",
"productId": 7340901859408,
"title": "Wool Runner",
"handle": "wool-runner",
"url": "https://www.acme-shoes.example/products/wool-runner",
"vendor": "Acme",
"productType": "Shoes",
"tags": ["wool", "mens"],
"price": 84,
"maxPrice": 98,
"compareAtPrice": 98,
"discountPct": 14,
"onSale": true,
"currency": "USD",
"available": true,
"variantsCount": 2,
"availableVariants": 1,
"mainImage": "https://cdn.shopify.com/s/files/wool-runner.jpg",
"variants": [
{ "variantId": 1001, "variantTitle": "8", "sku": "WR-8", "price": 84, "compareAtPrice": 98, "discountPct": 14, "available": true, "options": { "Size": "8" } },
{ "variantId": 1002, "variantTitle": "9", "sku": "WR-9", "price": 98, "compareAtPrice": null, "discountPct": null, "available": false, "options": { "Size": "9" } }
],
"createdAt": "2026-03-02T10:00:00-05:00",
"updatedAt": "2026-09-30T08:12:44-04:00",
"changeType": "price_drop",
"changes": ["price_drop"],
"previousPrice": 98,
"priceChange": -14,
"priceChangePct": -14.3,
"previousAvailable": true,
"scrapedAt": "2026-10-01T10:00:00.000Z"
}

Change types

changeTypeMeaning
baselineFirst run for this store: nothing to compare with yet
newProduct (or variant) was not there last run
price_drop / price_increaseLowest price changed; see previousPrice, priceChange, priceChangePct
back_in_stock / sold_outAvailability changed
variant_changeA single size/color changed price or stock while the product's lowest price and overall stock stayed the same; details are in variantChanges
removedProduct was in the last run and is gone now (needs a full catalog run)
unchangedNothing changed (not returned in Monitor mode)

A summary with the counts per store is saved to the run's key-value store under SUMMARY.

Pricing: built for cheap daily monitoring

Two simple fees:

  • Row returned: one product, or one variant when One row per variant is on.
  • Product checked: a very small fee for each product read from a store's catalog.

In Monitor mode unchanged products are not returned, so you pay only the small checking fee plus the rows that actually changed. Watching a large catalog every day costs a fraction of scraping it in full each time. Stores that fail are free. Set a maximum cost per run in the run options and the Actor stops cleanly at your limit.

Filters

Keywords (title, tags, type, vendor, SKU), minimum and maximum price, only on sale, only in stock. Filters decide which rows you receive; monitoring always tracks the whole catalog, so changing a filter later does not break your history.

FAQ

Does it work on every Shopify store? It works on stores with the standard public product feed, which is the large majority. Password-protected stores and stores that disabled the feed are listed under FAILED_STORES in the run's key-value store and not charged.

Can I see exact inventory quantities? No. Shopify stores publish only in stock / sold out per variant.

Which currency are prices in? The store's own default currency, shown in currency.

How are changes remembered? A small snapshot (product ID, price, stock) is saved in your own Apify account in the key-value store shopify-products-monitor-state. Delete that store to reset all baselines.

How do I find Shopify stores to monitor? Use Shopify Store Leads Finder to discover stores by product keyword, with contacts and installed apps.

Responsible use

This Actor reads only public product information that stores publish for shoppers. It uses no logins and bypasses no protection. Requests are paced to be polite to the stores.