Shopify Product Scraper | $3/1K | Any Store, Full Catalog
Pricing
from $3.00 / 1,000 product scrapeds
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
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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
| Field | Type | Required | Description |
|---|---|---|---|
storeUrls | string[] | ✅ | Store domains, product URLs, or bare domains. Mix freely. |
maxProducts | int | ❌ | Limit per store (0 = unlimited). Default: 250 |
perPage | int | ❌ | Products per API page, max 250 (default: 250) |
flattenVariants | bool | ❌ | One row per variant (true) or per product with variants nested (false, default) |
onlyAvailable | bool | ❌ | Skip products where all variants are out of stock |
extractTitle / extractVendor / extractProductType / extractPrice / extractComparePrice / extractSku / extractDescription / extractTags / extractImages / extractVariants / extractOptions / extractDates / extractHandle | bool | ❌ | Toggle fields (all default true) |
maxConcurrency | int | ❌ | Parallel store fetches (default: 3) |
timeout | int | ❌ | HTTP 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:
- Normalizes your input (store domain, product URL, or bare domain)
- Paginates through
/products.json?limit=250&page=Nuntil exhausted or cap hit - Parses structured product JSON (no AI, no browser)
- 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=1manually first