Shopify Store Scraper - Products & Collections Extractor avatar
Shopify Store Scraper - Products & Collections Extractor

Pricing

Pay per usage

Go to Apify Store
Shopify Store Scraper - Products & Collections Extractor

Shopify Store Scraper - Products & Collections Extractor

Extract products, collections & inventory from any Shopify store. Multi-currency support, stock detection, anti-bot bypass. Fast, reliable & easy to use.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

xquantify

xquantify

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

2 days ago

Last modified

Share

Extract comprehensive product data, collections, and inventory information from any Shopify store. This powerful Apify Actor supports multi-currency pricing, stock status detection, and advanced anti-bot protection bypass.

๐ŸŽ‰ FREE Tier: 500 Products/Month - No Credit Card Required!

Pay-Per-Event Pricing:

  • โœ… 500 FREE products every month
  • โœ… 50 FREE collections every month
  • โœ… $0 monthly rental fee
  • ๐Ÿ’ฐ After free tier: Just $2 per 1,000 products
  • ๐Ÿ“Š Scale from free to enterprise seamlessly

./PRICING.md

Features

Core Capabilities

  • Extract All Products: Scrape complete product catalogs from any Shopify store
  • Collection Scraping: Fetch all collections with product counts and metadata
  • Single Product Mode: Extract detailed data from specific product URLs
  • Multi-Currency Support: Get prices in any currency (USD, EUR, GBP, etc.)
  • Stock Status Detection: Automatically detect InStock/OutOfStock status for products
  • Variant Support: Extract all product variants with individual pricing and inventory
  • Image Extraction: Get all product images in high resolution
  • Anti-Bot Protection: Advanced techniques to bypass Shopify's gateway restrictions

Advanced Features

  • Currency Passthrough: Automatic currency conversion using Shopify's API
  • Inventory Tracking: Real-time stock quantities for each variant
  • Pagination Handling: Automatically handles stores with thousands of products
  • Rate Limiting: Smart delays and retry logic to avoid blocks
  • Residential Proxies: Built-in proxy support for restricted stores
  • Comprehensive Data: Extract titles, descriptions, prices, SKUs, tags, vendors, and more

Use Cases

  • Price Monitoring: Track competitor pricing across multiple Shopify stores
  • Market Research: Analyze product trends and inventory levels
  • Dropshipping: Find trending products and monitor stock availability
  • Product Database: Build comprehensive product catalogs
  • Inventory Management: Monitor stock levels across multiple stores
  • E-commerce Analytics: Gather data for business intelligence

Input Configuration

Basic Setup

{
"startUrls": [
{ "url": "https://example.myshopify.com" }
],
"mode": "PRODUCTS",
"currency": "USD",
"checkStock": true
}

Input Parameters

ParameterTypeRequiredDescription
startUrlsArrayYesList of Shopify store URLs to scrape
modeStringYesScraping mode: PRODUCTS, COLLECTIONS, SINGLE_PRODUCT, or ALL
currencyStringNoISO currency code (e.g., USD, EUR, GBP)
collectionUrlsArrayNoSpecific collection URLs to scrape products from
productUrlsArrayNoSpecific product URLs (for SINGLE_PRODUCT mode)
maxProductsIntegerNoMaximum number of products to scrape
maxCollectionsIntegerNoMaximum number of collections to scrape
includeVariantsBooleanNoInclude all product variants (default: true)
includeImagesBooleanNoInclude product images (default: true)
includeDescriptionBooleanNoInclude full descriptions (default: true)
includeCategoriesBooleanNoInclude categories/collections each product belongs to (default: false)
checkStockBooleanNoCheck stock status (default: true)
proxyConfigurationObjectNoProxy settings (recommended: residential proxies)

Scraping Modes

1. All Products Mode (PRODUCTS)

Extracts all products from the store or specific collections.

{
"startUrls": [{ "url": "https://store.myshopify.com" }],
"mode": "PRODUCTS",
"currency": "USD"
}

2. Collections Mode (COLLECTIONS)

Extracts only collection information without products.

{
"startUrls": [{ "url": "https://store.myshopify.com" }],
"mode": "COLLECTIONS"
}

3. Single Product Mode (SINGLE_PRODUCT)

Extracts detailed data for specific products.

{
"startUrls": [{ "url": "https://store.myshopify.com" }],
"mode": "SINGLE_PRODUCT",
"productUrls": [
"https://store.myshopify.com/products/awesome-product"
],
"checkStock": true
}

4. Everything Mode (ALL)

Extracts both collections and all products.

{
"startUrls": [{ "url": "https://store.myshopify.com" }],
"mode": "ALL",
"currency": "EUR"
}

Output Format

Product Data - Complete Field List

All products include the following fields:

Basic Information:

  • type: "product"
  • id: Unique product ID
  • title: Product title/name
  • handle: URL-friendly product handle
  • url: Full product URL
  • vendor: Brand/vendor name
  • productType: Product type/category
  • tags: Array of product tags
  • createdAt: Product creation date
  • publishedAt: Product publish date
  • updatedAt: Last update date

Pricing:

  • price: Minimum variant price
  • priceMax: Maximum variant price (if different)
  • compareAtPrice: Minimum compare-at price (original price)
  • compareAtPriceMax: Maximum compare-at price (if different)
  • currency: ISO currency code (USD, EUR, GBP, etc.)
  • onSale: Boolean indicating if product is on sale

Availability & Stock:

  • stockStatus: "InStock" or "OutOfStock"
  • availableForSale: Boolean availability flag
  • totalInventory: Total inventory count (if checkStock enabled)
  • availableVariants: Number of available variants
  • totalVariants: Total number of variants

Taxability:

  • taxable: Boolean indicating if any variant is taxable
  • allVariantsTaxable: Boolean indicating if all variants are taxable
  • taxCodes: Array of unique tax codes (if available)

SKUs:

  • skus: Array of all unique SKUs across variants

Categories:

  • categories: Array of collections/categories this product belongs to (if includeCategories enabled)
  • categoriesCount: Number of categories

Images:

  • images: Array of all product images with metadata
  • featuredImage: URL of the main product image
  • imagesCount: Total number of images

Variants: (if includeVariants enabled)

  • variants: Array of all product variants
  • variantsCount: Total number of variants

Options:

  • options: Product option configurations (Size, Color, etc.)

Description:

  • description: Plain text description (if includeDescription enabled)
  • descriptionHtml: HTML formatted description (if includeDescription enabled)

Example Product Output

{
"type": "product",
"id": 1234567890,
"title": "Amazing Product",
"handle": "amazing-product",
"url": "https://store.myshopify.com/products/amazing-product",
"vendor": "Brand Name",
"productType": "Electronics",
"tags": ["new", "featured", "sale"],
"createdAt": "2024-01-15T10:30:00Z",
"publishedAt": "2024-01-16T08:00:00Z",
"updatedAt": "2024-03-20T15:45:00Z",
"price": "99.99",
"priceMax": "149.99",
"compareAtPrice": "129.99",
"compareAtPriceMax": "159.99",
"currency": "USD",
"onSale": true,
"stockStatus": "InStock",
"availableForSale": true,
"totalInventory": 150,
"availableVariants": 3,
"totalVariants": 6,
"taxable": true,
"allVariantsTaxable": true,
"skus": ["ABC-001", "ABC-002", "ABC-003"],
"description": "Full product description...",
"descriptionHtml": "<p>Full product description...</p>",
"featuredImage": "https://cdn.shopify.com/...",
"imagesCount": 5,
"images": [
{
"id": 12345,
"src": "https://cdn.shopify.com/...",
"alt": "Product image",
"width": 2048,
"height": 2048
}
],
"variantsCount": 6,
"variants": [
{
"id": 98765,
"title": "Small / Black",
"sku": "ABC-001",
"barcode": "123456789012",
"price": "99.99",
"compareAtPrice": "129.99",
"available": true,
"inventoryQuantity": 45,
"inventoryManagement": "shopify",
"inventoryPolicy": "deny",
"taxable": true,
"taxCode": null,
"option1": "Small",
"option2": "Black",
"option3": null,
"weight": 500,
"weightUnit": "g",
"requiresShipping": true,
"fulfillmentService": "manual"
}
],
"options": [
{
"name": "Size",
"position": 1,
"values": ["Small", "Medium", "Large"]
},
{
"name": "Color",
"position": 2,
"values": ["Black", "White", "Red"]
}
],
"categoriesCount": 2,
"categories": [
{
"id": 111111,
"handle": "best-sellers",
"title": "Best Sellers",
"url": "https://store.myshopify.com/collections/best-sellers"
},
{
"id": 222222,
"handle": "electronics",
"title": "Electronics",
"url": "https://store.myshopify.com/collections/electronics"
}
]
}

Collection Data

{
"type": "collection",
"id": 123456,
"handle": "best-sellers",
"title": "Best Sellers",
"url": "https://store.myshopify.com/collections/best-sellers",
"description": "Our top selling products...",
"productsCount": 24,
"updatedAt": "2024-03-15T12:00:00Z"
}

Anti-Bot Protection Bypass

This actor implements multiple techniques to bypass Shopify's anti-bot protection:

  1. Randomized Headers: Uses realistic browser headers that rotate with each request
  2. User-Agent Rotation: Cycles through multiple modern browser user agents
  3. Rate Limiting: Smart delays between requests (1-3 seconds)
  4. Retry Logic: Exponential backoff for rate-limited requests
  5. Proxy Support: Compatible with Apify's residential proxy network
  6. JSON API Access: Uses Shopify's public JSON endpoints (faster and more reliable)

For stores with strict bot protection, use residential proxies:

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Currency Support

The actor supports Shopify's multi-currency feature. Simply specify the desired currency code:

{
"currency": "EUR"
}

Supported currencies include: USD, EUR, GBP, CAD, AUD, JPY, and all other ISO 4217 currency codes.

Stock Status Detection

The actor automatically detects product availability:

  • InStock: Product or at least one variant is available
  • OutOfStock: All variants are unavailable

Stock detection includes:

  • Variant-level availability
  • Inventory quantities
  • Inventory management settings
  • Product-level availability flags

Performance & Limits

  • Speed: ~500-1000 products per minute (depending on store and proxy)
  • Scalability: Handles stores with 100,000+ products
  • Memory: ~256MB RAM recommended
  • Timeout: 30 seconds per request with automatic retries

Best Practices

  1. Use Proxies: Enable residential proxies for stores with strict protection
  2. Limit Products: Use maxProducts for testing to avoid long runs
  3. Currency: Always specify currency for accurate pricing
  4. Rate Limiting: The actor automatically handles rate limiting - don't reduce delays
  5. Error Handling: Check actor logs for any failed requests

Troubleshooting

Access Denied (403 Error)

  • Enable residential proxies in proxy configuration
  • Some stores block datacenter IPs

Rate Limited (429 Error)

  • The actor automatically handles this with exponential backoff
  • Consider reducing concurrent requests if issues persist

Missing Products

  • Some products may be unlisted or password-protected
  • Check if the store requires authentication

Incorrect Prices

  • Verify the currency code is correct
  • Some stores may not support all currencies

SEO Keywords

shopify scraper, shopify product scraper, shopify data extraction, shopify api scraper, ecommerce scraper, product price monitoring, shopify inventory scraper, shopify collection scraper, shopify store data, extract shopify products, shopify web scraping, apify shopify, shopify crawler, shopify product extractor, shopify data mining

Support & Feedback

  • Issues: Report bugs via GitHub or Apify Console
  • Feature Requests: Suggest improvements in the actor discussion
  • Documentation: Full API docs available on Apify

License

Apache-2.0


Ready to extract Shopify data? Click the "Try for free" button and start scraping in minutes!