Shopify Store Products Scraper: Prices, Variants, Stock
Pricing
from $0.68 / 1,000 product rows
Shopify Store Products Scraper: Prices, Variants, Stock
Get every product of any public Shopify store: title, prices and compare-at prices, sale flag and discount %, in-stock flag, all variants with SKU, options, images, vendor, type, tags and dates. Whole store or one collection, product or variant rows, keyword and on-sale filters.
Pricing
from $0.68 / 1,000 product rows
Rating
0.0
(0)
Developer
Larkmoor Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Export the full product catalog of any public Shopify store into a clean table: product title and URL, price range, compare-at price, an on-sale flag with the discount percentage, an in-stock flag, every variant (size, color, SKU, price, availability), options, images, vendor, product type, tags, description and the created / published / updated dates.
Paste store home pages or collection links. No login, no browser, no proxy: the data comes from the public product catalog every Shopify storefront serves.
What you can use it for
- Competitor price monitoring: track prices, discounts and new arrivals of rival stores every day
- Dropshipping and product research: find what a store sells, at what price, and which items are on sale or sold out
- Market and assortment analysis: count products by vendor, type and tag across a whole niche
- Catalog migration and backups: export your own store's products with variants, SKUs and images
- Deal and sale alerts: run on a schedule with "only on sale" and send new discounts to Slack or email
- Lead generation: qualify Shopify stores by catalog size, price range and brands carried
Why this one
- Whole store or one collection: give
kith.com/collections/mens-footwearto export only that collection - Product or variant rows: nested variants for analysis, or flat size/color rows for spreadsheets and feeds
- Sale math done for you:
onSaleandmaxDiscountPercentfrom compare-at prices, plus min and max price - Stock at a glance:
availableper product,availableVariantCount, and per-variant availability - Filters before you pay: in-stock only, on-sale only, keywords, and "updated in the last N days" (new items, price changes, restocks)
- Store currency and name read from the store itself
- Polite by design: 250 products per request, a pause between pages, automatic back-off on rate limits, robots.txt respected
Input
| Field | What it does | Default |
|---|---|---|
storeUrls | Store home pages or collection URLs | required |
maxProductsPerStore | Row limit per store | 1,000 |
outputMode | product (variants nested) or variant (flat rows) | product |
onlyAvailable | Skip sold-out products/variants | false |
onlyOnSale | Keep only discounted products | false |
keywords | Keep products matching any word | all |
updatedSinceDays | Only products updated recently | all |
includeDescription | Plain-text description | true |
descriptionMaxChars | Description length | 1,000 |
includeAllImages | Full list of image URLs | false |
maxResults | Total row limit | 5,000 |
delaySeconds | Pause between catalog pages | 1 |
Example input:
{"storeUrls": ["https://www.allbirds.com", "https://gymshark.com", "https://kith.com/collections/mens-footwear"],"maxProductsPerStore": 500,"onlyOnSale": true}
Output
| Field | Meaning |
|---|---|
store, storeName, collection | Store root URL, its name, and the collection (if you gave one) |
productId, title, handle, url | Product identity and link |
vendor, productType, tags | Brand, category and tags |
priceMin, priceMax, currency | Price range across variants |
compareAtPriceMax, onSale, maxDiscountPercent | Original price, sale flag and biggest discount |
available, variantCount, availableVariantCount | Stock status |
options, variants | Option names/values; each variant's id, title, SKU, price, compare-at price, availability, weight |
imageUrl, imageCount, images | First image, count, and (optionally) all images |
description | Plain-text description |
createdAt, publishedAt, updatedAt | Dates from the store |
In variant mode each row also carries variantId, variantTitle, variantSku, variantPrice, variantCompareAtPrice, variantAvailable, variantOption1–3.
Sample rows from a test run (October 2026):
[{"store": "https://gymshark.com", "storeName": "Gymshark US", "title": "Gymshark Leather Lifting Straps - Spiced Brown","priceMin": 19.6, "priceMax": 19.6, "compareAtPriceMax": 28.0, "onSale": true, "maxDiscountPercent": 30.0,"currency": "USD", "available": true, "variantCount": 1},{"store": "https://www.allbirds.com", "storeName": "Allbirds", "title": "Men's Canvas Runner NZ - Deep Navy","priceMin": 100.0, "priceMax": 100.0, "onSale": false, "available": true, "variantCount": 13}]
How much does it cost?
Pay per result: $0.80 per 1,000 product rows on the Free plan, plus $0.001 per run start, with automatic discounts on paid Apify plans. Platform compute is included. Products removed by your filters are not charged, and a store that is not a public Shopify catalog costs nothing.
Worked examples:
- One mid-size store, 1,200 products: $0.96
- Daily sale watch on 20 competitors, "only on sale" keeps about 40 products each: 800 rows = $0.64 a day
- Variant-level export of a 300-product apparel store with 6 sizes each: 1,800 rows = $1.44
FAQ
Which stores work? Stores that run on Shopify and have an open storefront. Password-protected stores and stores that turned off their public catalog are reported in the log ("not a public Shopify catalog") and cost nothing.
Does it show exact stock quantities? No. Shopify's public catalog says whether each variant is available, not how many units are left.
Why do prices differ from what I see in my country? The catalog shows the store's base currency and prices. Stores with local pricing may show you converted prices in the browser.
Can I get only new or changed products? Use updatedSinceDays: 1 on a daily schedule: new products, price changes and restocks update a product's date.
Is it legal? It reads the product catalog that Shopify storefronts publish openly (the same data on the public product pages), checks each store's robots.txt first, pauses between pages and backs off when asked. It collects product data only, no customer or personal data, and never logs in or checks out. Use the data in line with the store's terms and applicable law; don't republish product photos or descriptions as your own.
Can I schedule it? Yes: save a task per competitor list and run it daily; send the dataset to Google Sheets, Slack, a webhook or your BI tool.
Integrations
Run it through the Apify API, on a schedule, or from Make, Zapier, n8n, Google Sheets, webhooks and AI agents (Apify MCP server). Export the dataset as JSON, CSV, Excel, XML or HTML.
Changelog
- 0.1 (October 2026): first release: whole-store and collection export, product and variant rows, sale and stock flags, keyword and date filters.