Shopify Store Scraper - Products, Prices, Stock & Store Leads
Pricing
from $0.56 / 1,000 products
Shopify Store Scraper - Products, Prices, Stock & Store Leads
Scrape any Shopify store: full product catalog with prices, discounts, variants, SKUs and stock, plus store profile (location, currency, theme, apps, emails, socials). Monitor mode returns only new products, price drops and stock changes. No API key.
Pricing
from $0.56 / 1,000 products
Rating
0.0
(0)
Developer
Get Anything
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Scrape any public Shopify store in seconds: the full product catalog with prices, compare-at prices, discounts, variants, SKUs and stock, plus a store profile for lead lists (location, currency, product count, ships-to countries, theme, detected apps, public emails and social links).
Turn on Monitor mode and schedule it: each run returns only what changed (new products, price drops, sales starting or ending, back-in-stock, out-of-stock and removed products).
No API key, no login, no browser. Fast and cheap.
What you can do with it
- Competitor price monitoring: track a rival's prices, discounts and stock every day.
- Product research and dropshipping: pull whole catalogs, vendors, product types and tags.
- Shopify store leads: check a list of domains and get the store profile, the apps it uses (Klaviyo, Judge.me, Recharge, Gorgias, Attentive...), emails and socials. Useful for agencies and Shopify app vendors.
- Back-in-stock and sale alerts: combine Monitor mode with a schedule and a webhook, Slack, email or Make/Zapier.
- AI agents (ChatGPT, Claude, Cursor via Apify MCP): "What's on sale at colourpop.com right now?" Results are compact by default.
Input
| Field | Description |
|---|---|
storeUrls | Domains or URLs. Accepts allbirds.com, a store URL, a collection URL (/collections/sale) or a product URL (/products/handle). |
maxProductsPerStore | Cap per store (default 100). 0 = whole catalog. |
includeProducts | Scrape products (default on). |
includeStoreProfile | Add one store/lead row per store (default on). |
onlyChanges | Monitor mode: only changes since the last run. |
includeDescription | Add product descriptions as plain text (default off). |
oneRowPerVariant | One row per size/colour variant instead of a nested list. |
Example:
{"storeUrls": ["allbirds.com", "https://colourpop.com/collections/lips"],"maxProductsPerStore": 50,"onlyChanges": false}
Output
Product row
{"resultType": "product","store": "allbirds.com","storeName": "Allbirds","title": "Men's Tree Runner - Jet Black (White Sole)","url": "https://allbirds.com/products/mens-tree-runners","vendor": "Allbirds","productType": "Shoes","price": 100.0,"compareAtPrice": null,"onSale": false,"discountPercent": null,"currency": "USD","available": true,"variantsCount": 12,"variantsAvailable": 9,"variants": [{ "title": "8", "sku": "TR3MJBW080", "price": 100.0, "available": true }],"image": "https://cdn.shopify.com/...","publishedAt": "2025-03-01T10:00:00-08:00"}
In Monitor mode each row also has changeTypes (new, price_drop, price_increase, sale_started, sale_ended, back_in_stock, out_of_stock, removed), plus previousPrice and previousAvailable.
Store profile row
{"resultType": "store","store": "colourpop.com","name": "ColourPop","city": "Oxnard","country": "US","currency": "USD","productsCount": 1063,"shipsToCountriesCount": 180,"theme": { "name": "Colourpop/Main", "schemaName": "Colourpop" },"apps": ["Klaviyo", "Yotpo", "Okendo", "Gorgias", "Attentive", "Klarna"],"emails": [],"socials": { "instagram": "https://instagram.com/colourpopcosmetics", "tiktok": "https://www.tiktok.com/@colourpopco" }}
Domains that aren't Shopify stores, or whose catalog is disabled, return a free error row, so you can also use this to check which domains run Shopify.
How Monitor mode works
The Actor saves a snapshot per store (or per collection) in a named key-value store, shopify-store-monitor. The first run returns every product as new. Later runs return only the differences. Removed products are detected when the whole catalog or collection was fetched (maxProductsPerStore: 0, or fewer products than the cap). Schedule it daily in Apify Schedules and connect a webhook or integration for alerts.
Use it from ChatGPT, Claude & AI agents
This Actor works as a tool for AI assistants through the Apify MCP server, and the inputs are designed so an agent can fill them in.
-
Claude (claude.ai / Desktop), ChatGPT, Cursor, VS Code, Windsurf: add the MCP server URL below as a custom connector / MCP server and sign in with your Apify account:
https://mcp.apify.com/?tools=get_anything/shopify-store-scraper -
Claude Desktop / Cursor config file:
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com/?tools=get_anything/shopify-store-scraper" } } } -
Any LLM framework or GPT Action (REST): one call runs the Actor and returns the results as JSON:
POST https://api.apify.com/v2/acts/get_anything~shopify-store-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN -
No-code: Make, Zapier, n8n, LangChain and LlamaIndex have Apify integrations.
Then just ask, for example: "What's on sale at allbirds.com right now, and which apps does the store use?"
Pricing
Pay per event: you pay per product row and per store profile. Non-Shopify domains are free. See the Pricing tab for current prices.
FAQ
Does it work on every Shopify store? It works on any store that serves the standard public /products.json feed, which is almost all of them. A few stores disable it, and you'll get a clear error row.
Do I need a proxy? Usually not. For very large or frequent runs you can enable Apify Proxy.
Is it legal? It reads only public storefront data that Shopify serves to every visitor. Don't use it to collect personal data beyond public business contacts, and follow the store's terms.