Shopify Store Product Scraper — Products, Variants & Prices avatar

Shopify Store Product Scraper — Products, Variants & Prices

Pricing

from $1.75 / 1,000 results

Go to Apify Store
Shopify Store Product Scraper — Products, Variants & Prices

Shopify Store Product Scraper — Products, Variants & Prices

Scrape products from any Shopify store: title, description, vendor, type, tags, all variants (SKU, price, compare-at, stock), images, options and store currency. Search, by collection, or full catalog. For price tracking, dropshipping and competitor research. Not affiliated with Shopify.

Pricing

from $1.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

18 hours ago

Last modified

Categories

Features

Limited permissions

Share

Shopify Store Product Scraper — Products, Variants, Prices & Stock 🛍️

Apify Actor Maintenance Output Format E-Commerce Intelligence Multi-Store

Extract complete product catalogs, variant pricing, stock availability, and high-resolution media from any Shopify store at scale — no coding, no login, and no browser overhead. This enterprise-grade Shopify store scraper extracts structured e-commerce intelligence across any Shopify storefront: product title, URL handle, brand vendor, product categorization, searchable tags, plain-text description, price min/max ranges, compare-at retail prices, on-sale discount flags, store currency, stock availability status, options (size, color, material), per-variant SKUs, and complete photo galleries.

Export structured product feeds directly to JSON, CSV, Excel, XML, or ingest programmatically via the Apify REST API and SDKs.

Built for dropshippers, e-commerce retailers, price monitoring teams, competitive intelligence analysts, catalog aggregators, and digital agency developers.


⚡ At a glance

FeatureSpecification
Platform CompatibilityAny public Shopify or Shopify Plus storefront globally
Extraction ModesFull catalog sweep, collection handle filtering, or targeted product search
Output FormatsJSON, CSV, XLSX, XML, RSS, HTML Table
Pagination VolumeUnlimited 1,000+ deep pagination (250 products per batch)
Variant GranularityFull variant array: SKU, variant price, compare-at price, available flag, options, weight
Pricing IntelligencepriceMin, priceMax, compareAtPriceMax, onSale, localized currency
Media ExtractionMain featured image URL, full multi-image array, total image count
Multi-Store SupportScrape multiple store domains in a single consolidated run
Execution Speed~100–250 products per second
Default ProxyDatacenter Apify Proxy (fully supported out of the box)

🔎 Why scrape Shopify storefronts?

Shopify powers millions of leading direct-to-consumer (DTC) brands and retail enterprises across the globe. From boutique apparel creators to multi-million-dollar footwear giants, these storefronts represent real-time consumer demand, retail pricing strategies, promotional schedules, and inventory velocity.

For digital commerce businesses, staying ahead requires live catalog monitoring:

  1. Dynamic Price Intelligence: Track competitor price drops, seasonal flash sales, and discount depth (compareAtPriceMax vs priceMin).
  2. Dropshipping & Catalog Feeds: Export verified product titles, structured variants (sizes, colors), and product descriptions ready for immediate re-import into Shopify, WooCommerce, or BigCommerce stores.
  3. Inventory & Stock Monitoring: Monitor which SKUs are actively selling out or restocking in real time via the available and inStock flags.
  4. Assortment Gap Analysis: Discover newly published product lines, expanding color palettes, and popular vendor brands across your competitive landscape.

Attempting to scrape Shopify catalogs with heavy headless browsers is notoriously slow, fragile, and expensive. This Shopify product scraper operates with streamlined HTTP requests, ensuring rapid, lightweight, and cost-effective extraction across thousands of items.


🚀 Key features & capabilities

  • 🌐 Any Shopify Store: Accepts any storefront URL or domain (e.g. https://www.allbirds.com, gymshark.com, kith.com) and automatically detects store currency and catalog endpoints.
  • 🎯 Three Flexible Extraction Modes:
    • Full Catalog: Automatically paginates through the entire product catalog (250 items per page) to harvest the whole store.
    • Collection Filter: Target specific collections by handle (e.g., mens-shoes, summer-sale, new-arrivals).
    • Product Search: Query specific keywords across the store's search system to isolate targeted product lines.
  • 📊 Multi-Variant Breakdown: Extracts detailed nested arrays for every product variant: unique variant ID, SKU, exact price, compare-at price, availability, grams weight, and options (Option 1, 2, 3).
  • 🏷️ Price & Discount Analytics: Surfaces calculated fields including lowest price, highest price, highest compare-at price, and a boolean onSale indicator.
  • 🖼️ High-Resolution Galleries: Collects high-res product imagery arrays for seamless media syndication and catalog migration.
  • 🏬 Multi-Store Processing: Provide multiple store URLs in a single run; the actor processes each store sequentially, tagging records with storeDomain and localized storeCountry and currency.
  • 🔄 Unlocked 1,000+ Deep Pagination: Smoothly pages through deep inventories without arbitrary caps, governed only by your specified maxItems or maxProductsPerStore.

📊 Extracted fields & data dictionary

📦 Product Master Data

FieldTypeDescriptionCoverage
productIdIntegerUnique Shopify product identifier🟢 High (100%)
titleStringProduct commercial title🟢 High (100%)
handleStringURL slug handle for canonical page resolution🟢 High (100%)
urlStringDirect link to the live product detail page🟢 High (100%)
vendorStringBrand or manufacturer name🟢 High (98%)
productTypeStringCategory or product type assigned by merchant🟢 High (95%)
tagsArray[String]Merchant tags for categorization and search🟢 High (95%)
descriptionStringClean plain-text product description (HTML stripped)🟢 High (98%)

💰 Pricing & Inventory Status

FieldTypeDescriptionCoverage
priceMinFloatLowest variant price available🟢 High (100%)
priceMaxFloatHighest variant price available🟢 High (100%)
compareAtPriceMaxFloatHighest original non-discounted compare-at price🟡 Conditional (Sale items)
onSaleBooleanTrue if any variant price is discounted below compare-at🟢 High (100%)
currencyStringThree-letter ISO currency code (e.g. USD, EUR, GBP)🟢 High (100%)
inStockBooleanTrue if at least one variant is available for purchase🟢 High (100%)
variantsCountIntegerTotal number of variants for this product🟢 High (100%)

🛠️ Variants, Options & Media

FieldTypeDescriptionCoverage
variantsArray[Object]Full variant array (ID, SKU, price, compare-at, available, weight)🟢 High (100% when enabled)
optionsArray[Object]Configured product options and value sets (e.g. Size, Color)🟢 High (100%)
featuredImageStringPrimary hero image URL🟢 High (98%)
imagesArray[String]Array of all gallery photo URLs🟢 High (98%)
imagesCountIntegerNumber of images attached to product🟢 High (100%)
publishedAtStringTimestamp when product was made visible🟢 High (100%)
storeNameStringOfficial registered name of the Shopify merchant🟢 High (95%)
storeDomainStringStore hostname (e.g. www.allbirds.com)🟢 High (100%)
scrapedAtStringISO 8601 data extraction timestamp🟢 High (100%)

💻 Sample output (JSON)

{
"productId": 7891234567890,
"title": "Men's Wool Runner 2",
"handle": "mens-wool-runner-2",
"url": "https://www.allbirds.com/products/mens-wool-runner-2",
"vendor": "Allbirds",
"productType": "Men's Shoes",
"tags": ["wool", "runners", "sustainable", "classic", "sale"],
"description": "Our iconic everyday sneaker made with soft ZQ Merino wool, featuring upgraded cushioning and enhanced durability.",
"priceMin": 89.0,
"priceMax": 110.0,
"compareAtPriceMax": 110.0,
"onSale": true,
"currency": "USD",
"inStock": true,
"variantsCount": 6,
"options": [
{ "name": "Size", "values": ["8", "9", "10", "11", "12", "13"] },
{ "name": "Color", "values": ["Natural Black", "Dapple Grey"] }
],
"variants": [
{
"variantId": 41234567890123,
"title": "Natural Black / 10",
"sku": "WR2-BLK-10",
"price": 89.0,
"compareAtPrice": 110.0,
"available": true,
"option1": "Natural Black",
"option2": "10",
"grams": 650,
"requiresShipping": true,
"taxable": true
}
],
"featuredImage": "https://cdn.shopify.com/s/files/1/1104/4168/products/wool_runner_hero.jpg",
"images": [
"https://cdn.shopify.com/s/files/1/1104/4168/products/wool_runner_hero.jpg",
"https://cdn.shopify.com/s/files/1/1104/4168/products/wool_runner_side.jpg"
],
"imagesCount": 2,
"publishedAt": "2024-03-15T08:00:00-07:00",
"createdAt": "2024-02-10T11:20:00-08:00",
"updatedAt": "2026-11-08T16:45:00-08:00",
"storeName": "Allbirds",
"storeDomain": "www.allbirds.com",
"storeCountry": "United States",
"scrapedAt": "2026-11-10T14:45:00.000Z"
}

🎯 High-impact use cases

1. Competitive Price Monitoring & MAP Enforcement

Track competitor pricing across dozens of rival Shopify stores. Schedule daily automated runs to detect when competitors discount products, change compare-at retail prices, or launch flash sales.

2. Dropshipping Catalog Sourcing & Migration

Export entire niche store catalogs with structured variants, SKU identifiers, descriptions, and CDN image URLs. Import the generated CSV directly into your own store, saving weeks of manual listing creation.

3. Inventory Stock Alerts & Restock Tracking

Identify which product variants are selling out and monitor when out-of-stock items become available again. Monitor supplier stock movements before placing bulk inventory orders.

4. Market Trend & Assortment Benchmarking

Analyze which product categories, colorways, and price brackets dominant brands in your industry focus on. Compare average product counts and pricing distributions across multiple direct-to-consumer competitors.

Ingest complete product photo galleries and structured descriptions into vector databases for visual search applications, AI recommendation engines, and automated merchandising systems.


⚙️ Input configuration

FieldTypeDefaultDescription
storeUrlsArray[String]["https://www.allbirds.com"]Shopify store URLs or domains to scrape.
searchTermsArray[String][]Optional keywords to search specific products within stores.
collectionsArray[String][]Optional collection handles (e.g. mens-shoes) to restrict extraction.
includeVariantsBooleantrueInclude detailed variant array (SKU, variant price, stock).
maxItemsInteger0Total maximum products across all stores. 0 = unlimited.
maxProductsPerStoreInteger0Maximum products per store. 0 = unlimited (governed by maxItems).
proxyConfigurationObjectDatacenterApify Proxy configuration. Datacenter proxy works reliably out of the box.

🛠️ Code examples

Python (apify-client)

import os
from apify_client import ApifyClient
client = ApifyClient(os.getenv("APIFY_TOKEN"))
run_input = {
"storeUrls": ["https://www.allbirds.com"],
"collections": ["mens-shoes"],
"includeVariants": True,
"maxItems": 150,
}
run = client.actor("haketa/shopify-store-scraper").call(run_input=run_input)
products = client.dataset(run["defaultDatasetId"]).list_items().items
for p in products:
print(f"[{p.get('currency')} {p.get('priceMin')}] {p.get('title')} (Variants: {p.get('variantsCount')})")

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('haketa/shopify-store-scraper').call({
storeUrls: ['https://www.allbirds.com'],
maxItems: 250,
maxProductsPerStore: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully extracted ${items.length} Shopify products!`);

💡 Practical tips for optimal runs

  • Extracting Specific Categories: If a store has 20,000+ items and you only need footwear, find the collection URL (e.g. /collections/footwear) and pass collections: ["footwear"].
  • Handling Multi-Currency Stores: When scraping regional storefronts (e.g. .com vs .ca vs .co.uk), pass each store URL separately; the scraper automatically captures each domain's distinct currency.
  • Lightweight Export: If you only need price trends and master product titles, you can set includeVariants: false to dramatically reduce dataset file sizes.
  • Protected Stores: A tiny minority of enterprise brands place custom firewall gates in front of their product feeds; the actor automatically detects these and gracefully skips them without interrupting the remaining crawl.

❓ Frequently asked questions (FAQ)

How do I know if a website is powered by Shopify?

Most Shopify stores include /products in their URLs, feature Shopify CDN links (cdn.shopify.com), or include Shopify.theme in page source code. You can simply paste any store domain into storeUrls — the actor validates the platform automatically.

How many products can I scrape from a store?

You can scrape the entire store catalog. With maxProductsPerStore: 0 and maxItems: 0, the scraper paginates through all available product batches (250 items per page) until the full inventory is extracted.

Can I scrape multiple stores at the same time?

Yes. You can supply an array of store domains in storeUrls (e.g., ["https://store-a.com", "https://store-b.com"]). The actor crawls each store sequentially, tagging each record with storeDomain and localized currency.

Does this scraper extract variant SKUs and barcodes?

Yes. When includeVariants is enabled (default), every variant object contains its assigned sku, unique variantId, price, compareAtPrice, and weight in grams.

What formats can I download the catalog data in?

From the Apify Console, you can download your scraped product data in CSV, Microsoft Excel (XLSX), JSON, XML, or HTML format with a single click.

Can I import the output CSV directly into another Shopify store?

Yes. The output fields closely match standard e-commerce schemas. With minor column renaming, you can import products and variants directly into Shopify, WooCommerce, or BigCommerce.

Does this scraper require a Shopify Partner account or API token?

No. The scraper queries public storefront catalog feeds without requiring API credentials, private app tokens, or merchant admin permissions.

How frequently should I monitor competitor prices?

Most e-commerce teams configure Apify Schedules to run the actor daily or weekly to capture promotional discounts and catalog updates.

Does the scraper work with Apify Proxy?

Yes. Apify Datacenter Proxy is supported and enabled by default, ensuring fast throughput and reliable connectivity.

Does it capture product reviews?

No. Product reviews are typically hosted by third-party apps (e.g., Yotpo, Judge.me, Okendo) rather than core Shopify catalog feeds. This actor focuses strictly on products, variants, pricing, options, and stock.


🔄 Integrations & automated workflows

Automated Price Drop Alerts (Slack / Email)

  1. Schedule a daily scraping run of competitor store URLs.
  2. Connect Apify to Make or Zapier with a filter for onSale == true.
  3. Post automated notifications to your e-commerce merchandising channel whenever a competitor launches a discount.

Automated Inventory Feeds (Google Sheets / Airtable)

  1. Use the Apify Google Sheets integration to stream scraped products into a master inventory sheet.
  2. Map title, priceMin, compareAtPriceMax, inStock, and url.
  3. Maintain an always-fresh competitor benchmark dashboard for your marketing team.

📈 Performance & scalability benchmarks

Catalog SizeExtraction ModeApprox. Execution TimeMemory RequiredEst. Cost Profile
100 productsCatalog / Collection~4–8 seconds512 MB~$0.001
500 productsFull Catalog~15–30 seconds512 MB~$0.005
1,000 productsFull Catalog~30–60 seconds512 MB~$0.010
5,000+ productsMulti-Store Sweep~2–4 minutes1024 MB~$0.035


📋 Changelog

v1.2 (2026-11)

  • Deep Pagination & Unlimited Extraction: Standardized maxProductsPerStore and maxItems to default 0 (unlimited, governed only by total products).
  • Graceful Empty Run Handling: Added fallback default store (https://www.allbirds.com), guaranteeing empty inputs return ~100 sample records.
  • Fast Prefill Optimization: Reduced prefill run duration to under 15 seconds for rapid testing.
  • Variant Processing Refinements: Enhanced price parsing, floating-point normalization, and compare-at discount calculations.
  • Multi-Currency Normalization: Enhanced currency resolution logic to capture local currency across multi-region storefronts.

v1.1

  • Added collection handle filtering (collections).
  • Added product search query mode (searchTerms).
  • Added multi-store sequential processing.

v1.0

  • Initial release featuring Shopify catalog extraction, variant pricing, options parsing, and JSON/CSV export.

🛍️ Dropshipping & catalog re-import guide

One of the most popular applications of the Shopify Store Scraper is exporting a product catalog for seamless import into a new e-commerce store. Follow these practical steps:

Exporting & Mapping Columns

  1. Execute the actor targeting your desired store URL and download the resulting dataset as CSV.
  2. If importing directly into another Shopify store, map the following standard columns:
    • handle ➔ Handle (unique product URL handle)
    • title ➔ Title (product commercial name)
    • description ➔ Body (HTML) (plain-text or formatted description)
    • vendor ➔ Vendor (brand or supplier name)
    • productType ➔ Type (product categorization)
    • tags ➔ Tags (search and collection tags)
    • priceMin ➔ Variant Price
    • compareAtPriceMax ➔ Variant Compare At Price
    • featuredImage ➔ Image Src
  3. Open your Shopify Admin dashboard, navigate to Products ➔ Import, upload your mapped CSV, and click Upload and preview.

Multi-Variant Product Structuring

When includeVariants is active, products with multiple sizes, colors, or materials include their full variant matrix. You can expand the variants array into individual rows in Excel or Google Sheets to maintain exact SKU barcodes, custom prices per size, and specific weight configurations for accurate shipping calculation.


📊 Price intelligence & promotional discount tracking

E-commerce pricing analysts use the actor's calculated price fields to detect marketing promotions:

  • onSale: Evaluated as true whenever compareAtPriceMax exceeds priceMin. This immediately flags discounted merchandise.
  • Discount Depth Calculation: Calculate percentage markdown dynamically: Discount % = ((compareAtPriceMax - priceMin) / compareAtPriceMax) * 100.
  • Price Range Variance: When priceMin != priceMax, the product has tiered variant pricing (e.g., larger sizes or premium materials carry a price surcharge).
  • Clearance Inventory Detection: Combine onSale: true with specific variant available: false flags to identify products being cleared out prior to seasonal phase-out.

🔒 Responsible scraping & trademark notice

This actor extracts purely publicly accessible product catalogs from online storefronts. This tool is an independent utility and is not officially affiliated with, endorsed by, or sponsored by Shopify Inc.

⌂ 换网址