Shopify Store Products Scraper
Pricing
$1.00 / 1,000 results
Go to Apify Store
Shopify Store Products Scraper
Extract full product catalogs from any Shopify store: titles, prices, sale prices, variants, SKUs, stock and images. Export to Excel.
Shopify Store Products Scraper
Pricing
$1.00 / 1,000 results
Extract full product catalogs from any Shopify store: titles, prices, sale prices, variants, SKUs, stock and images. Export to Excel.
Shopify store URLs to scrape. Use full URLs, e.g. https://www.allbirds.com, or a collection URL (e.g. https://store.com/collections/sale) to scrape only that collection's products.json. Note: when calling the Apify API directly (not the Console UI), this field's editor rejects bare domains like 'allbirds.com' - use the 'Store domains' field below instead if you only have bare domains.
Optional additional stores, merged with 'Store URLs' above. Unlike 'Store URLs', this field accepts bare domains (e.g. colourpop.com) with no 'https://' prefix required - useful when calling the Apify API directly, since the 'Store URLs' editor rejects bare domains there.
[]Maximum number of products to fetch from each store. Set to 0 for unlimited (scrape the entire catalog).
If enabled, the dataset will contain one row per product variant (with product fields flattened onto each variant). If disabled (default), the dataset contains one row per product with a nested 'variants' array and summary price/availability fields.
Optional proxy configuration. Using Apify Proxy (residential or datacenter) is recommended for scraping many or large stores to avoid IP blocking.
{ "useApifyProxy": false}Maximum number of stores to scrape in parallel.
Optional delay in milliseconds between consecutive page requests to the same store, to reduce the chance of being rate-limited or blocked.
If enabled, the actor saves a compact snapshot of each store's products (price, compare-at price, availability, title) in a named key-value store, and compares it to the snapshot from the previous run with this same 'Monitor name'. Differences are output as extra dataset rows with type 'change' (new/removed products, price drops/increases, sales starting/ending, stock changes). The first run with a given monitor name only saves a baseline - it has nothing to compare against yet, so it reports no changes.
Name identifying this monitoring setup, used to pick which saved snapshot to compare against (and update) on each run. Only relevant when 'Track changes between runs' is enabled. Leave empty to auto-derive one from the store URLs - but set a fixed value if you plan to change the list of store URLs between runs and still want continuous tracking.
'All' outputs product/variant rows plus change rows (when change tracking is on). 'Changes only' suppresses product/variant rows and outputs only change rows - useful once you only care about what moved, not the full catalog. Store summary and error rows are controlled separately and are not affected by this setting.
If enabled (default), each store gets one extra dataset row of type 'storeSummary' with aggregate insights: product/variant counts, % on sale, average discount, price min/median/max, in-stock %, top vendors and product types, newest products, currency, and a cheap store-wide collection count. Charged as a single result, same as any other row.