Shopify Store Scraper — Products, Collections & App Detection avatar

Shopify Store Scraper — Products, Collections & App Detection

Pricing

from $2.00 / 1,000 product scrapeds

Go to Apify Store
Shopify Store Scraper — Products, Collections & App Detection

Shopify Store Scraper — Products, Collections & App Detection

Extract products, variants, prices, and collections from any Shopify store. Detect 50+ installed apps across 11 categories: email marketing, subscriptions, loyalty, live chat, reviews & more. No browser or proxy needed.

Pricing

from $2.00 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

extractmaster01

extractmaster01

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Shopify Store Scraper

Shopify Store Scraper — Products, Collections & App Detection 🛒

Extract products, variants, prices, collections, and detect 50+ installed apps from any Shopify store.

Fast, reliable, and proxy-free. Built for e-commerce intelligence, competitor tracking, and B2B lead generation.


✨ What makes this different?

  • App Detection (50+ apps, 11 categories) — Detects which Shopify apps are installed by analyzing the store's homepage and product pages. Covers Klaviyo, Recharge, Gorgias, Yotpo, Okendo, Loox, Postscript, Stamped, Attentive, and many more. Perfect for SaaS sales teams targeting stores by their tech stack.
  • Full variant data — Every product includes the complete variant array with per-variant price, compareAtPrice, discountPercent, SKU, barcode, weight, and availability. Competitors return only a count.
  • Competitor-aligned schema — Field names match the Apify Shopify scraper ecosystem (priceMin, priceMax, featuredImage, onSale, available, fullyOutOfStock, requiresShipping, weightAndUnit).
  • Multi-store parallelism — Scrape dozens of stores in a single run with configurable concurrency.
  • No browser, no proxy required — Lightning fast, no headless browser, no anti-bot friction.
  • Named datasets — App detection results go to a dedicated apps dataset, keeping the default dataset exclusively for products and collections (uniform schema → clean CSV/Excel exports).

💰 Pricing

Pay-per-event — you only pay for what you successfully extract.

EventPrice
Product scraped$2.00 / 1K ($0.002 / product)
Collection scraped$1.00 / 1K ($0.001 / collection)

Example: 3 stores × 500 products each = 1,500 products = $3.00 total. No subscriptions, no hidden fees.


🎯 Use Cases

  • Competitor price monitoring — Track prices, discounts, and stock availability across multiple stores daily.
  • B2B SaaS lead generation — Find all Shopify stores using Klaviyo, Recharge, or any other app and pitch your product.
  • Market research — Analyze product catalogs, pricing tiers, discount patterns, and inventory at scale.
  • Dropshipping research — Evaluate catalog depth, vendor diversity, and product availability before entering a niche.
  • Tech stack intelligence — Build lists of stores segmented by their installed app stack.

⚙️ Input Parameters

FieldTypeDefaultDescription
startUrlsArrayrequiredShopify store URLs, product URLs (/products/{handle}), or collection URLs (/collections/{handle}). Standard Apify URL list format: [{ "url": "https://..." }].
scrapeProductsBooleantrueExtract products with variants, prices, images, and options.
sortByStringbest_sellingProduct sort order: best_selling (default), price_asc, price_desc, newest, title.
scrapeCollectionsBooleanfalseExtract store collections with title, description, and product count.
mapProductCollectionsBooleanfalseAdd a collections array to each product. Requires extra requests (slower).
detectAppsBooleanfalseDetect 50+ installed Shopify apps across 11 categories. Results in dedicated apps dataset.
maxProductsPerStoreInteger0Max matched products per store (0 = unlimited).
maxItemsInteger1000Global item limit across all stores and types.
queryString""Optional keyword filter. Case-insensitive. Matches title, tags, vendor, productType, and description.
maxRecommendationsPerProductInteger0Max product recommendations to fetch per scraped product (0-10).
storeConcurrencyInteger3Stores processed in parallel (max 10).
proxyConfigurationObject{ useApifyProxy: false }Optional proxy config. Most stores respond to /products.json without a proxy. Enable Residential proxies only if a store returns HTTP 403 — this typically affects large brands (Gymshark, Allbirds, MVMT) that block datacenter IP ranges. Residential proxies consume Apify proxy credits.

Example Input

{
"startUrls": [
{ "url": "https://allbirds.com" },
{ "url": "https://gymshark.com/products/t-shirt" },
{ "url": "https://gymshark.com/collections/mens-shorts" }
],
"query": "wool",
"scrapeProducts": true,
"scrapeCollections": false,
"detectApps": true,
"sortBy": "best_selling",
"maxProductsPerStore": 0,
"maxItems": 1000,
"storeConcurrency": 3,
"maxRecommendationsPerProduct": 5
}

📊 Output

Results are split across three datasets, each with a uniform schema:

  • Default dataset — products only (scrapeProducts: true)
  • collections dataset — collections only (scrapeCollections: true)
  • apps dataset — app detection results, one record per store (detectApps: true)

Separating products and collections into their own datasets means each dataset has a consistent schema — no mixed types that truncate fields when exported as CSV or viewed in the Apify table UI.

Accessing datasets: All three datasets are accessible directly from the run's Output tab via the dataset selector dropdown: Products, Collections, and App Detection.

Product

{
"type": "product",
"storeUrl": "https://allbirds.com",
"store": "allbirds.com",
"productId": 7123456789,
"url": "https://allbirds.com/products/mens-wool-runners",
"title": "Men's Wool Runners",
"handle": "mens-wool-runners",
"description": "Crafted from ZQ-certified merino wool, breathable and naturally odor resistant.",
"vendor": "Allbirds",
"productType": "Shoes",
"tags": ["wool", "running", "men"],
"priceMin": 98.00,
"priceMax": 98.00,
"compareAtPrice": null,
"discountPercent": null,
"onSale": false,
"available": true,
"fullyOutOfStock": false,
"currency": "USD",
"variantCount": 12,
"availableVariantCount": 10,
"options": [{ "name": "Size", "values": ["8", "9", "10", "11"] }],
"variants": [
{
"id": 39876543,
"title": "Natural Grey / 10",
"price": 98.00,
"compareAtPrice": null,
"discountPercent": null,
"sku": "M-WR-GRY-10",
"barcode": null,
"available": true,
"option1": "Natural Grey",
"option2": "10",
"option3": null,
"weight": 0.28,
"weightUnit": "kg"
}
],
"requiresShipping": true,
"weightAndUnit": "0.28 kg",
"imageCount": 5,
"featuredImage": "https://cdn.shopify.com/s/files/...",
"imageAltTexts": ["Men's Wool Runners in Natural Grey", "Side view"],
"images": ["https://cdn.shopify.com/s/files/..."],
"recommendedProductIds": [7123456790, 7123456791],
"collections": [],
"createdAt": "2024-03-01T00:00:00-05:00",
"updatedAt": "2026-05-15T12:00:00-05:00",
"publishedAt": "2024-03-01T00:00:00-05:00",
"scrapedAt": "2026-06-14T10:00:00.000Z"
}

App Detection (in apps dataset)

{
"domain": "allbirds.com",
"storeUrl": "https://allbirds.com",
"reviews": ["yotpo"],
"email_marketing": ["klaviyo"],
"popups": null,
"subscriptions": ["recharge"],
"loyalty": null,
"live_chat": ["gorgias"],
"search": ["algolia"],
"page_builder": null,
"currency_converter": null,
"upsell": ["reconvert"],
"analytics": ["hotjar"],
"all": ["yotpo", "klaviyo", "recharge", "gorgias", "algolia", "reconvert", "hotjar"],
"count": 7,
"scrapedAt": "2026-06-14T10:00:00.000Z"
}

Collection (when scrapeCollections: true)

{
"type": "collection",
"storeUrl": "https://allbirds.com",
"store": "allbirds.com",
"collectionId": 254789012,
"collectionUrl": "https://allbirds.com/collections/mens",
"title": "Men's",
"handle": "mens",
"description": "",
"productsCount": 98,
"publishedAt": "2019-10-01T00:00:00-05:00",
"updatedAt": "2026-05-15T12:00:00-05:00",
"scrapedAt": "2026-06-14T10:00:00.000Z"
}

🔍 Detected Apps — Categories

When detectApps: true, the scraper checks for 50+ apps across 11 categories:

CategoryExamples
ReviewsJudge.me, Yotpo, Loox, Stamped, Okendo, Junip, Reviews.io, Trustpilot, Shopify Product Reviews
Email MarketingKlaviyo, Omnisend, Mailchimp, Drip, Attentive, Postscript, Braze, Iterable, Bloomreach Engagement
PopupsPrivy, Justuno, OptiMonk
SubscriptionsRecharge, Bold Subscriptions, Appstle
LoyaltySmile.io, LoyaltyLion, Yotpo Loyalty
Live ChatGorgias, Zendesk, Tidio, Intercom, Drift
SearchAlgolia, Searchanise, Klevu
Page BuilderShogun, PageFly, GemPages, Zipify Pages
Currency ConverterCurrency Converter Plus, Weglot, LangShop
UpsellReConvert, Rebuy, Bold Upsell, In Cart Upsell
AnalyticsHotjar, Google Tag Manager, Google Analytics, Facebook Pixel, TikTok Pixel, Pinterest Tag, Snapchat Pixel

❓ FAQ

Q: Do I need proxies? A: Most stores respond to /products.json without one. Enable Residential proxies only if a store returns HTTP 403 — this typically affects large brands (Gymshark, Allbirds, MVMT) that block datacenter IP ranges. Residential proxies consume Apify proxy credits.

Q: Does it work on any Shopify store? A: Yes, on any standard Shopify store. Stores with heavily restricted or customized storefronts may return fewer results.

Q: How does app detection work? A: The scraper analyzes each store and cross-references against our signature database of 50+ apps. False negatives are possible for stores with heavily customized themes or apps configured to load lazily.

Q: Can I scrape multiple stores in one run? A: Yes — add as many URLs as you need to startUrls. Use storeConcurrency (default 3, max 10) to control how many are processed in parallel.

Q: Can I schedule daily runs? A: Yes — use Apify's built-in scheduler. Combine with webhooks or Google Sheets integration for automated monitoring.

Q: Does keyword search use Shopify's native search engine? A: No, it filters the full product list client-side. The actor fetches all products from the store (respecting maxProductsPerStore) and filters by the query matching the title, vendor, tags, product type, or description. This means for very large stores, all products are fetched before filtering, which is still fast and doesn't incur extra proxy costs.

Q: Can I scrape specific products or collections? A: Yes! Simply pass the product URL (e.g. https://store.com/products/item) or collection URL (e.g. https://store.com/collections/sale) in the startUrls array. The scraper will handle them correctly. A product URL results in 1 product record. A collection URL results in N product records (all products in that collection). A store URL results in a full catalog crawl.

Q: How do I find Shopify stores in a niche? A: Tools like BuiltWith, Koala Inspector, or the Apify Shopify Store Finder let you search for Shopify stores by niche or category. Then paste the URLs here and run.