Shopify Scraper & Price Monitor avatar

Shopify Scraper & Price Monitor

Pricing

$1.00 / 1,000 products

Go to Apify Store
Shopify Scraper & Price Monitor

Shopify Scraper & Price Monitor

Scrape every product of any Shopify store: prices, variants, SKU, stock and images. Schedule it to catch new products, price drops and restocks between runs. No API key, no login. $1 per 1,000 products.

Pricing

$1.00 / 1,000 products

Rating

0.0

(0)

Developer

jérémy PINSON

jérémy PINSON

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Share

Shopify Scraper & Price Monitor: Products, Prices, Stock & Changes

Shopify Scraper & Price Monitor extracts the full product catalog of any Shopify store (prices, variants, SKU, stock, images) and tells you what changed since the last run: new products, price drops, price increases, restocks and sold-out items.

No API key, no browser, no login: it reads the public product feed that every Shopify store exposes, so it is fast, cheap and very reliable. A 10,000-product catalog is scraped in minutes.

What does Shopify Scraper & Price Monitor do?

  • 🛍️ Scrapes all products of one or hundreds of Shopify stores: title, vendor, product type, tags, description, images, options.
  • 💰 Returns min/max price, compare-at price, discount % and whether the product is on sale.
  • 📦 Returns stock status per product and per variant (size, color, SKU).
  • 🔔 Detects changes between runs: NEW, PRICE_DROP, PRICE_INCREASE, BACK_IN_STOCK, OUT_OF_STOCK, VARIANTS_CHANGED, REMOVED.
  • 💸 Pay only for changes: enable Output only changed products and schedule it daily.

Who is it for?

  • E-commerce brands and dropshippers: monitor competitor prices and promotions every day.
  • Product researchers: spot the new launches and bestsellers of successful Shopify stores.
  • Resellers and collectors: get restock alerts for limited drops (sneakers, collectibles, fashion).
  • Agencies and analysts: sync catalogs or run market studies across hundreds of stores.

How much does it cost to scrape a Shopify store?

You pay $1 per 1,000 products in the output (see the Pricing tab for the exact price of your plan).

Use caseProducts in outputCost
Try it on one store, 50 products50$0.05
Full catalog of a 1,000-product store1,000$1
Daily price monitor of a 1,000-product store, Output only changed products onusually 10 to 50 per daya few cents per day

Apify's free plan includes monthly credits, which are enough to test the Actor on several stores.

How to scrape a Shopify store

  1. Paste one or more store URLs (any page of the store works, e.g. https://www.allbirds.com).
  2. Keep Track changes between runs enabled.
  3. Click Start. The first run creates the baseline: every product is marked FIRST_SEEN.
  4. Schedule it daily or hourly. Each run reports what changed.
  5. Get alerts with a webhook, Slack, email or Google Sheets integration.

Input

FieldWhat it does
storeUrlsShopify stores to scrape, any page of the store
maxProductsPerStoreLimit per store, 0 = whole catalog (needed to detect REMOVED)
trackChangesCompare with the previous run and flag changes
onlyChangesOutput only new or changed products (cheaper monitoring)
includeVariantsAdd the list of variants with price, SKU and stock
proxyConfigurationUsually not needed
{
"storeUrls": [{ "url": "https://www.allbirds.com" }, { "url": "https://gymshark.com" }],
"trackChanges": true,
"onlyChanges": true,
"includeVariants": true
}

Output

You can download the dataset as JSON, CSV, Excel, XML or HTML, or read it with the API.

{
"store": "https://www.allbirds.com",
"productId": 6604351651920,
"title": "Men's Tree Runners",
"url": "https://www.allbirds.com/products/mens-tree-runners",
"vendor": "Allbirds",
"priceMin": 79,
"priceMax": 98,
"compareAtPriceMax": 98,
"onSale": true,
"discountPercent": 19,
"available": true,
"variantsCount": 14,
"variantsAvailable": 11,
"changeType": "PRICE_DROP",
"changes": ["min price 98 -> 79"],
"previousPriceMin": 98,
"scrapedAt": "2026-10-27T08:00:00.000Z"
}
FieldDescription
store, productId, url, handleWhere the product lives
title, vendor, productType, tags, description, imagesProduct details
priceMin, priceMax, compareAtPriceMax, onSale, discountPercentPricing
available, variantsCount, variantsAvailable, variantsStock, per product and per variant
changeType, changes, previousPriceMinWhat changed since the previous run

Integrations and API

  • Run it from your code with the Apify API or the JavaScript and Python clients.
  • Connect it to Make, Zapier, n8n, Google Sheets, Slack or any webhook.
  • AI agents can find and run it through the Apify MCP server.
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("<username>/shopify-scraper").call(run_input={"storeUrls": [{"url": "https://www.allbirds.com"}], "maxProductsPerStore": 50})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["priceMin"], item["available"])

FAQ

Does it work with every store? It works with any store running on Shopify whose catalog is public, which is the vast majority. Password-protected stores and non-Shopify sites are skipped with a warning.

Is it legal to scrape Shopify stores? The Actor only reads public product information that the store publishes for every visitor. It does not collect personal data. Check the terms of the stores you monitor for your own use case.

How is "REMOVED" detected? By comparing with the snapshot of the previous run. It is only reported when the whole catalog is fetched (Max products per store = 0), and a sudden drop of more than half the catalog is treated as a fetch error rather than a mass removal.

Do I need proxies? Usually not. Enable Apify Proxy if a store rate-limits you.

Can I monitor hundreds of stores? Yes. Paste all the URLs in one run, or split them across several scheduled tasks.

Support

Found a bug or need a field? Open an issue in the Issues tab, I usually reply within 24 h.