Shopify Store Products Scraper: Prices, Variants, Stock avatar

Shopify Store Products Scraper: Prices, Variants, Stock

Pricing

from $0.68 / 1,000 product rows

Go to Apify Store
Shopify Store Products Scraper: Prices, Variants, Stock

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

Larkmoor Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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-footwear to 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: onSale and maxDiscountPercent from compare-at prices, plus min and max price
  • Stock at a glance: available per 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

FieldWhat it doesDefault
storeUrlsStore home pages or collection URLsrequired
maxProductsPerStoreRow limit per store1,000
outputModeproduct (variants nested) or variant (flat rows)product
onlyAvailableSkip sold-out products/variantsfalse
onlyOnSaleKeep only discounted productsfalse
keywordsKeep products matching any wordall
updatedSinceDaysOnly products updated recentlyall
includeDescriptionPlain-text descriptiontrue
descriptionMaxCharsDescription length1,000
includeAllImagesFull list of image URLsfalse
maxResultsTotal row limit5,000
delaySecondsPause between catalog pages1

Example input:

{
"storeUrls": ["https://www.allbirds.com", "https://gymshark.com", "https://kith.com/collections/mens-footwear"],
"maxProductsPerStore": 500,
"onlyOnSale": true
}

Output

FieldMeaning
store, storeName, collectionStore root URL, its name, and the collection (if you gave one)
productId, title, handle, urlProduct identity and link
vendor, productType, tagsBrand, category and tags
priceMin, priceMax, currencyPrice range across variants
compareAtPriceMax, onSale, maxDiscountPercentOriginal price, sale flag and biggest discount
available, variantCount, availableVariantCountStock status
options, variantsOption names/values; each variant's id, title, SKU, price, compare-at price, availability, weight
imageUrl, imageCount, imagesFirst image, count, and (optionally) all images
descriptionPlain-text description
createdAt, publishedAt, updatedAtDates 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.