Shopify Product Scraper | $3/1K | Any Store, Full Catalog avatar

Shopify Product Scraper | $3/1K | Any Store, Full Catalog

Pricing

from $3.00 / 1,000 product scrapeds

Go to Apify Store
Shopify Product Scraper | $3/1K | Any Store, Full Catalog

Shopify Product Scraper | $3/1K | Any Store, Full Catalog

Scrape any Shopify store's entire product catalog via the public /products.json endpoint. Get title, price, variants, SKUs, images, inventory. No login, no API key.

Pricing

from $3.00 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Apivault Labs

Apivault Labs

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

🛒 Shopify Product Scraper | $3/1K | Any Store, Full Catalog, No Limits

Scrape any Shopify-powered store in real-time. Get the entire product catalog — title, price, variants, SKUs, images, inventory, tags, options. Uses Shopify's public /products.json endpoint (available on every Shopify store by default). No login, no API key, no scraping gimmicks.

✨ Why this is special

  • 100x faster than browser-based scrapers — direct JSON API
  • 🎯 Structured data — no AI guessing, exact fields from Shopify
  • 📦 Full catalog — pagination handles thousands of products
  • 🧬 All variants — every size/color/flavor with SKU, price, stock
  • 🖼️ All image URLs per product
  • 🏷️ Tags, vendor, product type, options
  • 💰 Compare-at-price — spot discounts
  • 🔒 Zero antibot issues — works on every Shopify store

Works on

Any store built on Shopify — literally millions:

  • Allbirds, Gymshark, Bombas, Kith, Death Wish Coffee
  • Your favorite niche DTC brands
  • Your competitors' stores
  • Any custom domain hosted on Shopify Plus

Not sure if a store is Shopify? Try appending /products.json to its URL. If you get JSON, it works.

Input

Scrape entire catalog

{
"storeUrls": ["https://allbirds.com"],
"maxProducts": 500
}

Scrape specific products

{
"storeUrls": [
"https://allbirds.com/products/wool-runner-mizzle-natural-white",
"https://gymshark.com/products/vital-seamless-2-0-sports-bra"
]
}

Flat mode (one row per variant — best for CSV export)

{
"storeUrls": ["https://allbirds.com"],
"flattenVariants": true,
"onlyAvailable": true
}

Multi-store competitive analysis

{
"storeUrls": [
"https://allbirds.com",
"https://rothys.com",
"https://vessiofficial.com"
],
"maxProducts": 100,
"maxConcurrency": 3
}

Input Parameters

FieldTypeRequiredDescription
storeUrlsstring[]Store domains, product URLs, or bare domains. Mix freely.
maxProductsintLimit per store (0 = unlimited). Default: 250
perPageintProducts per API page, max 250 (default: 250)
flattenVariantsboolOne row per variant (true) or per product with variants nested (false, default)
onlyAvailableboolSkip products where all variants are out of stock
extractTitle / extractVendor / extractProductType / extractPrice / extractComparePrice / extractSku / extractDescription / extractTags / extractImages / extractVariants / extractOptions / extractDates / extractHandleboolToggle fields (all default true)
maxConcurrencyintParallel store fetches (default: 3)
timeoutintHTTP timeout per request (default: 30)

Output

Aggregate mode (one row per product — default)

{
"success": true,
"productId": 6616124981328,
"handle": "trino-cozy-crew-heathered-onyx",
"productUrl": "https://allbirds.com/products/trino-cozy-crew-heathered-onyx",
"title": "Trino® Cozy Crew - Heathered Onyx",
"vendor": "Allbirds",
"productType": "Socks",
"description": "The Trino Cozy Crew is a breathable, odor-reducing sock...",
"tags": "allbirds::carbon-score => 5.9, FINAL SALE, shoprunner",
"price": "12.00",
"comparePrice": "24.00",
"priceMin": 12.00,
"priceMax": 12.00,
"sku": "PCC1HONU301",
"mainImage": "https://cdn.shopify.com/.../front.png",
"images": "https://cdn.shopify.com/.../front.png, https://cdn.shopify.com/.../back.png",
"options": "Size: [S (W5-7), M (W8-10 / M8), L (W11 / M9-12), XL (M13-14)]",
"variantsCount": 4,
"variants": [
{ "id": 39574630924368, "title": "S (W5-7)", "price": "12.00", "sku": "PCC1HONU301", "available": true, ... },
...
],
"publishedAt": "2026-04-21T12:39:05-07:00",
"updatedAt": "2026-05-10T17:46:58-07:00",
"available": true
}

Flat mode (one row per variant)

{
"productId": 6616124981328,
"title": "Trino® Cozy Crew - Heathered Onyx",
"variantId": 39574630924368,
"variantTitle": "S (W5-7)",
"price": "12.00",
"comparePrice": "24.00",
"sku": "PCC1HONU301",
"option1": "S (W5-7)",
"option2": "",
"option3": "",
"variantAvailable": true,
"variantGrams": 140,
"vendor": "Allbirds",
...
}

Use Cases

🏪 Dropshipping / Resellers

  • Pull entire competitor catalogs in seconds
  • Find products with high margin to resell
  • Track price changes daily to spot discounts

📊 Competitive Intelligence

  • Diff your catalog vs. competitor stores monthly
  • Identify which SKUs competitors added/dropped
  • Analyze pricing strategies across niches

🏷️ Price Monitoring & MAP Enforcement

  • Brands: monitor retailers hosting your products on Shopify
  • Detect price violations automatically
  • Track compare-at-price for discount analysis

🛠️ Product Catalog Migration

  • Export any Shopify store to your own platform
  • Create affiliate sites with real product data
  • Build price-comparison sites

🧬 Product Research

  • Analyze which vendor has the richest catalog
  • Find trending product types across stores
  • Mine SKU patterns for manufacturer intelligence

Pricing

  • $0.003 per product ($3 per 1,000 products)
  • No monthly fees, no subscriptions
  • Pay only for successfully fetched products
  • 10,000 products = $30 (~30 seconds runtime)

How it works

Shopify stores expose a public /products.json endpoint by default. This actor:

  1. Normalizes your input (store domain, product URL, or bare domain)
  2. Paginates through /products.json?limit=250&page=N until exhausted or cap hit
  3. Parses structured product JSON (no AI, no browser)
  4. Optionally flattens variants to one row each

Speed: ~1 second per 250 products on good networks. 10,000 products = under a minute.

Reliability: 100% — this is an official Shopify endpoint, not scraping. As long as the store is on Shopify and hasn't disabled the endpoint (rare), you get the data.

Notes

  • Shopify sites that disable /products.json (some enterprise customers) will return 404
  • Inventory quantities (inventory_quantity) are NOT exposed publicly — only availability (in/out of stock)
  • Product reviews are not part of this endpoint — use a dedicated reviews scraper
  • Customer data is never exposed via /products.json — this is product-only

Pro tips

  • Daily monitoring: run on a schedule (Apify Scheduler), diff updatedAt → spot changes
  • Cross-store search: dump multiple competitors into one dataset, use Apify's filters
  • Flatten + CSV: for spreadsheets, always use flattenVariants: true
  • Store detection: to check if a domain is Shopify, test domain.com/products.json?limit=1 manually first