Shopify Scraper
Pricing
Pay per event
Shopify Scraper
Scrape products, collections, and customer reviews from any Shopify store. Get prices, variants, images, and reviews from Yotpo, Judge.me, Stamped.io, and Okendo.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
6
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
Shopify Store Scraper
Scrape products, collections, and customer reviews from any Shopify-powered store. Get prices, variants, descriptions, images, availability, and reviews from Yotpo, Judge.me, Stamped.io, and Okendo — no API key required.
What does Shopify Store Scraper do?
Shopify Store Scraper extracts product, collection, and review data from any Shopify store. Just provide a store URL and get structured data back:
- Products — Title, price, compare-at price, description, vendor, type, tags, variants (sizes/colors), images, and availability
- Collections — Title, description, product count, and images
- Reviews — Rating, author, review text, date, verified buyer status, and images. Auto-detects the review platform (Yotpo, Judge.me, Stamped.io, Okendo)
Works on any store built on Shopify — from small boutiques to major brands like Allbirds, Gymshark, and ColourPop.
Why scrape Shopify stores?
Shopify powers 4.8M+ online stores worldwide. Structured product and review data is valuable for:
- 💰 Price monitoring — Track competitor pricing and discount patterns
- ⭐ Review analysis — Analyze customer sentiment, ratings, and feedback trends
- 📊 Market research — Analyze product catalogs, pricing tiers, and inventory
- 🔍 Product discovery — Find new products and trending items across stores
- 📈 Competitive intelligence — Monitor competitor product lines and customer satisfaction
- 🏷️ Catalog building — Aggregate products from multiple stores for comparison sites
- 📦 Inventory tracking — Monitor stock availability across variants
Use cases
- E-commerce brands monitoring competitor catalogs, pricing, and customer reviews
- Dropshippers finding products and evaluating supplier quality via reviews
- Price comparison sites aggregating data from multiple stores
- Market researchers studying product trends, pricing, and customer sentiment
- Brand managers tracking how products are reviewed and priced by retailers
- Data analysts building e-commerce and review datasets
How to scrape Shopify stores
- Go to Shopify Store Scraper on Apify Store
- Enter one or more Shopify store URLs
- Choose what to extract: products, collections, reviews, or all three
- Set the max products and reviews limits
- Click Start and wait for results
- Download data as JSON, CSV, or Excel
Data you can extract
Product data
| Field | Type | Description |
|---|---|---|
title | string | Product name |
price | string | Current price |
compareAtPrice | string | Original/compare price |
available | boolean | Whether in stock |
vendor | string | Brand/vendor name |
productType | string | Product category |
description | string | Product description (text) |
tags | array | Product tags |
imageUrl | string | Main product image |
imageCount | number | Total images |
variantCount | number | Number of variants |
variants | array | Size/color variants with prices and SKUs |
options | array | Option names (e.g., Size, Color) |
url | string | Product page URL |
createdAt | string | When product was added |
updatedAt | string | Last update date |
Review data
| Field | Type | Description |
|---|---|---|
productTitle | string | Product being reviewed |
author | string | Reviewer name |
rating | number | Star rating (1-5) |
title | string | Review title |
body | string | Full review text |
date | string | Review date |
verifiedBuyer | boolean | Whether reviewer is a verified buyer |
helpfulCount | number | Number of helpful votes |
imageUrls | array | Review images uploaded by customer |
reviewPlatform | string | Review platform (yotpo, judgeme, stamped, okendo) |
Collection data
| Field | Type | Description |
|---|---|---|
title | string | Collection name |
description | string | Collection description |
productsCount | number | Products in collection |
imageUrl | string | Collection image |
url | string | Collection page URL |
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
storeUrls | array | required | Shopify store URLs |
scrapeProducts | boolean | true | Extract products |
scrapeCollections | boolean | false | Extract collections |
scrapeReviews | boolean | false | Extract customer reviews |
maxProducts | integer | 100 | Max products per store |
maxReviewsPerProduct | integer | 50 | Max reviews per product |
Input example
{"storeUrls": ["https://www.allbirds.com"],"scrapeProducts": true,"scrapeReviews": true,"maxProducts": 50,"maxReviewsPerProduct": 20}
Output example
Product
{"type": "product","storeUrl": "https://www.allbirds.com","productId": 7091688144976,"title": "Women's Tree Dasher 2 - Rustic Brown","handle": "womens-tree-dashers-rustic-brown","vendor": "Allbirds","productType": "Shoes","price": "99.00","compareAtPrice": "140.00","available": true,"imageUrl": "https://cdn.shopify.com/s/files/...","imageCount": 5,"variantCount": 13,"variants": [{"variantId": 41814508675152,"title": "5","sku": "TD2-WRBR-5","price": "99.00","available": true,"option1": "5"}],"url": "https://www.allbirds.com/products/womens-tree-dashers-rustic-brown","scrapedAt": "2026-03-11T12:00:00.000Z"}
Review
{"type": "review","storeUrl": "https://www.allbirds.com","productId": 7091688144976,"productTitle": "Women's Tree Dasher 2 - Rustic Brown","productUrl": "https://www.allbirds.com/products/womens-tree-dashers-rustic-brown","reviewPlatform": "yotpo","reviewId": "814862892","author": "Katie L.","rating": 2,"title": "narrow opening","body": "Unfortunately these don't work for me. I have had Tree Dasher before...","date": "2026-02-27T17:09:27.000Z","verifiedBuyer": true,"helpfulCount": 0,"imageUrls": [],"scrapedAt": "2026-03-11T12:00:00.000Z"}
Supported review platforms
The scraper auto-detects which review platform a store uses by visiting one product page:
| Platform | Detection | API |
|---|---|---|
| Yotpo | Script loader URL or data-appkey | Public CDN API (JSON) |
| Judge.me | judge.me scripts, jdgm-widget elements | Public widget API |
| Stamped.io | StampedFn.init() or stamped.io scripts | Widget API with public key |
| Okendo | okendo.io scripts, data-oke- attributes | Storefront REST API |
If a store uses a different review platform (e.g., Loox), reviews will be skipped with a warning.
How much does it cost to scrape Shopify stores?
Shopify Store Scraper uses pay-per-event pricing:
| Event | Price |
|---|---|
| Run started | $0.005 |
| Product extracted | $0.003 per product |
| Collection extracted | $0.001 per collection |
| Review extracted | $0.001 per review |
Cost examples
| Scenario | Items | Cost |
|---|---|---|
| 50 products, no reviews | 50 | ~$0.155 |
| 50 products + 10 reviews each | 50+500 | ~$0.655 |
| 20 products + reviews from 3 stores | 60+600 | ~$0.785 |
Apify's free plan includes $5/month — enough for ~1,600 products or ~5,000 reviews.
Using Shopify Store Scraper with the Apify API
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/shopify-scraper').call({storeUrls: ['https://www.allbirds.com'],scrapeProducts: true,scrapeReviews: true,maxProducts: 50,maxReviewsPerProduct: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const products = items.filter(i => i.type === 'product');const reviews = items.filter(i => i.type === 'review');console.log(`${products.length} products, ${reviews.length} reviews`);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/shopify-scraper').call(run_input={'storeUrls': ['https://www.allbirds.com'],'scrapeProducts': True,'scrapeReviews': True,'maxProducts': 50,'maxReviewsPerProduct': 20,})dataset = client.dataset(run['defaultDatasetId']).list_items().itemsproducts = [i for i in dataset if i['type'] == 'product']reviews = [i for i in dataset if i['type'] == 'review']print(f"{len(products)} products, {len(reviews)} reviews")
cURL
curl "https://api.apify.com/v2/acts/automation-lab~shopify-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-X POST -H "Content-Type: application/json" \-d '{"storeUrls": ["https://www.allbirds.com"], "scrapeReviews": true, "maxProducts": 10}'
Integrations
- Scheduled runs — Monitor prices, inventory, and review trends daily
- Webhooks — Get notified when scraping completes
- Google Sheets — Export product catalogs and reviews to spreadsheets
- Slack — Alert on price changes or negative reviews
- Zapier / Make — Automate e-commerce data workflows
- Shopify → Google Sheets competitor catalog — Schedule weekly scrapes of competitor Shopify stores and auto-sync product catalogs to a spreadsheet for pricing analysis.
- Shopify reviews → Slack sentiment alerts — Get notified when a competitor receives negative reviews (rating < 3) so you can capitalize on their weak spots.
Tips
- 🏪 Any Shopify store works — If it's built on Shopify, you can scrape it
- ⭐ Review platform auto-detected — No need to specify which review app a store uses
- 📊 Compare prices — Use
compareAtPricevspriceto find discounted items - 📦 Track inventory — The
availablefield shows real-time stock status per variant - 🏷️ Filter by type — Use
productTypeto categorize products,typefield to separate products vs reviews - 🔄 Monitor changes — Schedule daily runs and compare datasets to detect price/stock/review changes
- 🛒 Multiple stores — Scrape several stores in one run by providing multiple URLs
How to tell if a store uses Shopify
Add /products.json to any store URL. If it returns JSON product data, it's a Shopify store. For example: https://www.allbirds.com/products.json
Is it legal to scrape Shopify stores?
This scraper uses Shopify's public product API (/products.json) and publicly accessible review widget APIs. It only accesses data that is already visible to any store visitor. Always review individual store terms of service before large-scale data collection.
Use with AI agents via MCP
Shopify Store Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Example prompts
Once connected, try asking your AI assistant:
- "Scrape all products from this Shopify store"
- "Get product reviews from this Shopify store"
- "Find all collections and their products on this store"
Learn more in the Apify MCP documentation.
Legality
Scraping publicly available data is generally legal according to the US Court of Appeals ruling (HiQ Labs v. LinkedIn). This actor only accesses publicly available information and does not require authentication. Always review and comply with the target website's Terms of Service before scraping. For personal data, ensure compliance with GDPR, CCPA, and other applicable privacy regulations.
FAQ
How do I know if a store uses Shopify?
Add /products.json to the store URL. If you get JSON data, it's Shopify.
Can I scrape any Shopify store? Most Shopify stores expose their product API by default. Some may have disabled it — those will return no results.
Which review platforms are supported? Yotpo, Judge.me, Stamped.io, and Okendo. The scraper auto-detects which platform a store uses. If a store uses a different platform, reviews will be skipped.
What about stores with thousands of products?
The scraper paginates automatically. Set maxProducts high (up to 10,000) for large catalogs.
Does it include variant details? Yes — each product includes all variants with sizes, colors, SKUs, prices, and availability.
Can I scrape only reviews without products?
Reviews require product data (IDs and handles), so products are always fetched. Set scrapeProducts: false and scrapeReviews: true to skip pushing product data to the dataset while still fetching reviews.
The scraper returns 0 products for a store I know is on Shopify. What happened?
Some Shopify stores disable the public /products.json API endpoint. If the store returns a 401 or empty response at that URL, the scraper cannot extract products. This is a store-level setting that cannot be bypassed.
Why are reviews missing even though the store has them? The scraper supports Yotpo, Judge.me, Stamped.io, and Okendo. If the store uses a different review platform (e.g., Loox, Shopify native reviews), reviews will be skipped. Check the run log for a warning message indicating the detected (or undetected) platform.
How do you scrape a Shopify store without getting blocked?
Shopify stores are actually easier to scrape than most e-commerce sites because Shopify exposes a public product API at /products.json on every store. This is an official, documented endpoint — not a hidden internal API — that Shopify includes on all stores by default for syndication and integration purposes.
To fetch all products from a Shopify store, you can simply request:
https://storename.com/products.json?limit=250
This returns up to 250 products per page in structured JSON with no authentication required and no JavaScript rendering needed. Shopify Store Scraper uses this endpoint, which means:
- No browser needed (fast HTTP requests only)
- No CAPTCHA challenges
- No IP bans from anti-bot systems
- Reliable, stable output format
The only anti-scraping risk is rate limiting if you make too many requests too quickly. The scraper paginates automatically and respects server response times.
The only case where stores can't be scraped is if a store owner has explicitly disabled the /products.json endpoint — some enterprise stores do this. If the endpoint returns a 401 or empty response, that store cannot be scraped with this tool.
How do you monitor competitor pricing on Shopify stores?
Competitive price monitoring on Shopify stores is one of the most actionable use cases for this scraper. Here's a production-ready setup:
Step 1: Identify your Shopify competitors
Add /products.json to a competitor's domain. If it returns JSON, the store is on Shopify and can be scraped.
Step 2: Set up a daily scheduled run
Add all competitor store URLs to Shopify Store Scraper with scrapeProducts: true. Use Apify Schedules to run every morning. Each run captures current prices, compare-at prices, and availability.
Step 3: Export to a comparison dashboard
Push results to Google Sheets via the Apify Google Sheets integration. The price, compareAtPrice, and available fields for each productId give you everything needed for a price comparison table.
Key signals to watch:
compareAtPrice > price— competitor is running a sale; you may want to match or undercutavailable: falseon variants — competitor is out of stock in popular sizes/colors; if you have stock, advertise it- Price increases — if a competitor raises prices, you have room to either hold your price (competitive advantage) or raise yours (margin improvement)
- New products appearing — early signal of competitor product launches
Cost for monitoring 5 competitor stores (100 products each) daily: 5 runs × ($0.005 start + 100 × $0.003) = $1.525/day = roughly $46/month.
What review platforms does Shopify Store Scraper support?
Shopify stores don't have a built-in native review system — they rely on third-party review apps installed from the Shopify App Store. The four most popular platforms each expose their review data through public widget APIs, and Shopify Store Scraper auto-detects which one a store uses by scanning for their JavaScript loaders on product pages.
Supported platforms:
- Yotpo — The most widely used enterprise review platform (Allbirds, Steve Madden, etc.). Reviews are accessible via a public CDN API using the store's public app key.
- Judge.me — Popular with mid-market Shopify stores. Uses a public widget API that requires no authentication.
- Stamped.io — Focused on product reviews and loyalty programs. Widget API accessible with the public store key.
- Okendo — Premium review platform with photo and video review support. Accessible via the storefront REST API.
What you get from reviews: Author name, star rating (1–5), review title, full review text, date, verified buyer status, helpful vote count, and any photo URLs the reviewer uploaded.
If a store uses a different platform (Loox, Fera, Shopify's own native reviews in newer stores, etc.), the scraper will skip reviews and log a warning. Check the run log for the message "Could not detect review platform".
Is it legal to scrape Shopify stores?
Yes, with important caveats. Shopify Store Scraper only accesses data through Shopify's public /products.json API endpoint and public review widget APIs — both of which are deliberately exposed for external access.
The legal basis:
- Shopify's public API endpoint is documented and intentionally accessible to anyone. It's the same mechanism used by Google Shopping, price comparison sites, and affiliate platforms.
- The US Ninth Circuit ruling in hiQ Labs v. LinkedIn (2022) confirmed that scraping publicly accessible data does not violate the CFAA.
- Review widget data is loaded client-side for any visitor; collecting it mirrors what a browser already does.
Caveats to be aware of:
- Individual stores' Terms of Service may prohibit scraping or commercial use of their data. For large-scale competitor intelligence operations, review the specific store's ToS.
- GDPR applies to review data if it contains personal information about EU residents used for commercial purposes.
- Some stores disable their public API endpoint — respect that signal and don't attempt workarounds.
- Do not use scraped product data to misrepresent your own products (e.g., copying product descriptions as your own content without disclosure).
For competitor price monitoring, market research, and catalog analysis, scraping Shopify's public endpoints is standard industry practice.
How do you find all Shopify stores in a niche?
Before you can scrape Shopify stores, you need to know which ones to target. Several approaches work well:
Google search operators:
Search for site:myshopify.com "[niche keyword]" to find stores on Shopify's subdomain. Many stores use a custom domain in production but still have a storename.myshopify.com alias. Also try inurl:myshopify.com [product category].
The /products.json test:
Once you have a candidate store domain, add /products.json to the URL. A JSON response confirms it's Shopify. An error or HTML page means it's a different platform or the endpoint has been disabled.
Built-with / technology databases: Services like BuiltWith, Wappalyzer, and SimilarTech let you search by technology stack. Filter for Shopify to get a curated list of stores in any category.
Competitor backlink analysis: If you know one major player in a niche, run their domain through a backlink tool (Ahrefs, Semrush). Competing stores often link to each other through supplier relationships, review sites, and industry directories.
App marketplaces: Review apps like Judge.me publish publicly visible stores on their own site — you can browse by category to discover stores using that platform.
Once you have your target list, feed all the URLs into Shopify Store Scraper's storeUrls array in a single run.
Other e-commerce scrapers
- Amazon Scraper — Scrape product data and reviews from Amazon
- eBay Scraper — Extract listings and prices from eBay
- Walmart Scraper — Scrape product data from Walmart
- Target Scraper — Extract products and prices from Target
- Newegg Scraper — Scrape electronics and product data from Newegg