Shopify Products Scraper - Prices, Variants, Stock & Inventory
Pricing
from $0.56 / 1,000 products
Shopify Products Scraper - Prices, Variants, Stock & Inventory
Export all products from any Shopify store to CSV/JSON: prices, variants, SKUs, stock, images, discounts. Headless stores, new-product and price-change monitoring. $0.70 per 1,000 products; non-Shopify or blocked stores are free, no login.
Pricing
from $0.56 / 1,000 products
Rating
0.0
(0)
Developer
TinyRex
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
17 hours ago
Last modified
Categories
Share
Shopify Products Scraper: export products, prices, variants and stock from any Shopify store
Export every product from any Shopify store to CSV, Excel or JSON in seconds. Enter a store domain, a collection URL or a product URL and get prices, discounts, variants (size, color), SKUs, stock status, images, tags and descriptions as one clean table. It reads the public product feed every Shopify store provides (no browser, no login). $0.70 per 1,000 products; non-Shopify, blocked or password-protected stores and products removed by your filters are free.
What you get from the Shopify Products Scraper
- The full catalog of any Shopify store: title, vendor, product type, tags, price, compare-at price, discount %, variants with SKU and availability, options, images, dates and description. Works on headless stores too: the scraper finds the store's
*.myshopify.comdomain and reads the feed from there, and it continues through collections for stores above Shopify's 25,000-product listing limit. - Spreadsheet-ready output: one row per product (variants nested) or one row per variant (flat, best for price tracking), plus optional stock quantity and barcode per variant when the store exposes them.
- Price and new-product monitoring built in: schedule it with Monitoring mode and each run returns only new products, or new products plus price and stock changes with the previous values.
Sample output (JSON)
{"storeName": "Allbirds","currency": "USD","productId": 7205191974992,"url": "https://www.allbirds.com/products/mens-dasher-nz-anthracite","title": "Men's Dasher NZ - Anthracite (Dark Anthracite Sole)","vendor": "Allbirds","productType": "Shoes","price": 140,"compareAtPrice": null,"onSale": false,"available": true,"availableVariants": 3,"variantsCount": 13,"options": [{ "name": "Size", "values": ["8", "8.5", "9"] }],"featuredImage": "https://cdn.shopify.com/s/files/1/1104/4168/files/...png","variants": [{ "id": 41271176757328, "title": "8", "sku": "A12417M080", "price": 140, "available": false }],"publishedAt": "2026-08-24T09:53:01-07:00"}
Download as JSON, CSV, Excel or HTML, or send it to Google Sheets, Make, Zapier, n8n, Slack, webhooks or the Apify API. Each run also writes a STORES report (status per input: ok, not_shopify, blocked, password_protected, unreachable, not_found, plus the method used) and a SUMMARY record to the key-value store.
How to configure the Shopify Products Scraper
- Add Shopify stores, collections or products (one per line): a domain (
allbirds.com), a collection (https://www.allbirds.com/collections/mens) or a single product (https://colourpop.com/products/lip-locked). - Optional filters: keywords, exclude keywords, vendors, product types, price range, only in stock, only on sale, published in the last N days.
- Pick products or variants output, then run, or schedule it with Monitoring mode on.
Example input: in-stock products from two stores
{"stores": ["deathwishcoffee.com", "https://www.allbirds.com/collections/mens"],"outputMode": "products","onlyAvailable": true,"maxProductsPerStore": 500}
| Setting | Default | Notes |
|---|---|---|
| stores | deathwishcoffee.com | Store domain, *.myshopify.com domain, collection URL or product URL |
| maxProductsPerStore | 50 | 0 = all products |
| outputMode | products | products (variants nested) or variants (one row per variant) |
| keywords / excludeKeywords | none | Match title, tags, vendor or type |
| vendors / productTypes | none | Partial match, e.g. Allbirds, Shoes |
| minPrice / maxPrice | none | In the store currency |
| onlyAvailable / onlyOnSale | false | In-stock only / discounted only |
| publishedWithinDays | 0 (any) | Only recently published products |
| descriptionFormat | text | text, html, both or none |
| includeInventory | false | Stock quantity, inventory policy and barcode where exposed (separate event) |
| monitorMode / stateKey | off / default | new or changes; use one state key per schedule |
| maxConcurrency | 5 | Stores in parallel |
| proxyConfiguration | no proxy | Turn on Apify Proxy if a store blocks or rate-limits |
Common use cases
- Competitor price monitoring: track a rival's prices, discounts and stock daily and get only the changes.
- Ecommerce market research: catalog size, price ranges, vendors and product types across many DTC brands.
- Product feeds and dropshipping catalogs: pull a supplier's full catalog with SKUs and images into a spreadsheet or your own store.
- Lead generation for ecommerce agencies and apps: find which Shopify brands launch new products or run sales, then reach out.
Pricing (pay per product, failures free)
- Product (
product): $0.0007 per product saved to your dataset ($0.70 per 1,000; per variant row in variant mode), $0.00063 on Silver and $0.00056 on Gold. - Stock details (
inventory-details): $0.0005 per product, only with Add stock quantity and barcode on and only where stock data was actually found. - Free: stores that are not Shopify, blocked or password-protected stores, unreachable sites and filtered-out products.
Set a maximum cost per run and the Actor stops gracefully when it is reached. See the Pricing tab for current tier discounts.
Limitations
- Only data the store publishes in its public storefront is available. Reviews, sales numbers and cost prices are not.
- Stock quantity is only available when the store exposes it. Many stores do not.
- Some headless stores hide their Shopify domain. These are reported as
not_shopifyorblockedand are not charged. - For stores with more than 25,000 products, products that are not in any public collection can be missing.
Use with AI agents (MCP)
This Actor works as a tool for AI agents through the Apify MCP server at https://mcp.apify.com. Connect Claude, Cursor, VS Code, n8n or any other MCP client to https://mcp.apify.com?tools=tinyrex/shopify-products-scraper and ask, for example: "Export all products under $50 from allbirds.com". Results come back as structured JSON at the same pay-per-product price; failed inputs stay free.
📘 Step-by-step guide with Python, JavaScript, curl and MCP examples: How to export all products from any Shopify store to CSV or JSON
FAQ
How do I export all products from a Shopify store? Enter the store domain (for example allbirds.com) and set Max products per store to 0. The Actor reads the store's public product feed and gives you every product as CSV, Excel or JSON, with variants nested or as separate rows.
Can I scrape a Shopify store I don't own? Yes, for public product data. Every Shopify store publishes its product catalog for browsers, apps and search engines; this Actor reads that public data only. It does not log in, does not access customer or order data, and does not bypass passwords. Use the data in line with the store's terms and your local law.
How do I track a competitor's Shopify prices? Set Monitoring mode to New products and price/stock changes, schedule the Actor daily, and connect an integration (email, Slack, Google Sheets). The first run is the baseline; later runs return only new products and changes, with previousPrice and previousAvailable.
How do I know if a website is a Shopify store? Just add it: non-Shopify sites are reported as not_shopify in the STORES record and are free. For a long domain list, run the Tech Stack Detector with its onlyIfUses filter set to Shopify first.
Does it work on headless Shopify stores? Usually yes. The scraper finds the store's *.myshopify.com domain and reads the feed from there, and switches to it automatically if the storefront starts blocking. You can also pass the xxx.myshopify.com domain directly.
How fast is it? In our test, 30 stores with about 66,000 products took under 2 minutes. Speed depends on store size and response times.
Related actors
- WooCommerce Products Scraper: The same product export for WooCommerce stores.
- Tech Stack Detector: Find out which domains are Shopify stores first (
onlyIfUses: Shopify), then feed them here. - Contact Details Extractor: Company emails, phones and social links for the brands you found.
- ATS Jobs Scraper: See which brands are hiring: jobs from Greenhouse, Lever, Ashby, Personio and more.
Missing a field?
If a field you need is missing or wrong, please open an issue on the Issues tab. I read every issue and usually reply the same day.