Shopify Products Scraper & Price Monitor
Pricing
from $1.00 / 1,000 row returneds
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
Maintained by CommunityActor 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
- Paste one or more store URLs, e.g.
https://www.allbirds.comorgymshark.com. - Set Max products per store to
0for everything. - 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)
- Turn on Monitor mode: return only what changed since the last run.
- Set Max products per store to
0so removed products can be detected. - Schedule the Actor (daily or hourly). The first run saves the baseline and returns the full catalog; every later run returns only the changes.
- 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
| changeType | Meaning |
|---|---|
baseline | First run for this store: nothing to compare with yet |
new | Product (or variant) was not there last run |
price_drop / price_increase | Lowest price changed; see previousPrice, priceChange, priceChangePct |
back_in_stock / sold_out | Availability changed |
variant_change | A single size/color changed price or stock while the product's lowest price and overall stock stayed the same; details are in variantChanges |
removed | Product was in the last run and is gone now (needs a full catalog run) |
unchanged | Nothing 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.