Shopify Products Scraper - Prices, Variants, Stock & Inventory avatar

Shopify Products Scraper - Prices, Variants, Stock & Inventory

Pricing

from $0.56 / 1,000 products

Go to Apify Store
Shopify Products Scraper - Prices, Variants, Stock & Inventory

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

TinyRex

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

17 hours ago

Last modified

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.com domain 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

  1. 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).
  2. Optional filters: keywords, exclude keywords, vendors, product types, price range, only in stock, only on sale, published in the last N days.
  3. 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
}
SettingDefaultNotes
storesdeathwishcoffee.comStore domain, *.myshopify.com domain, collection URL or product URL
maxProductsPerStore500 = all products
outputModeproductsproducts (variants nested) or variants (one row per variant)
keywords / excludeKeywordsnoneMatch title, tags, vendor or type
vendors / productTypesnonePartial match, e.g. Allbirds, Shoes
minPrice / maxPricenoneIn the store currency
onlyAvailable / onlyOnSalefalseIn-stock only / discounted only
publishedWithinDays0 (any)Only recently published products
descriptionFormattexttext, html, both or none
includeInventoryfalseStock quantity, inventory policy and barcode where exposed (separate event)
monitorMode / stateKeyoff / defaultnew or changes; use one state key per schedule
maxConcurrency5Stores in parallel
proxyConfigurationno proxyTurn 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_shopify or blocked and 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.

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.