Shopify Scraper avatar

Shopify Scraper

Pricing

Pay per event

Go to Apify Store
Shopify Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

3

Monthly active users

2 days ago

Last modified

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

  1. Go to Shopify Store Scraper on Apify Store
  2. Enter one or more Shopify store URLs
  3. Choose what to extract: products, collections, reviews, or all three
  4. Set the max products and reviews limits
  5. Click Start and wait for results
  6. Download data as JSON, CSV, or Excel

Data you can extract

Product data

FieldTypeDescription
titlestringProduct name
pricestringCurrent price
compareAtPricestringOriginal/compare price
availablebooleanWhether in stock
vendorstringBrand/vendor name
productTypestringProduct category
descriptionstringProduct description (text)
tagsarrayProduct tags
imageUrlstringMain product image
imageCountnumberTotal images
variantCountnumberNumber of variants
variantsarraySize/color variants with prices and SKUs
optionsarrayOption names (e.g., Size, Color)
urlstringProduct page URL
createdAtstringWhen product was added
updatedAtstringLast update date

Review data

FieldTypeDescription
productTitlestringProduct being reviewed
authorstringReviewer name
ratingnumberStar rating (1-5)
titlestringReview title
bodystringFull review text
datestringReview date
verifiedBuyerbooleanWhether reviewer is a verified buyer
helpfulCountnumberNumber of helpful votes
imageUrlsarrayReview images uploaded by customer
reviewPlatformstringReview platform (yotpo, judgeme, stamped, okendo)

Collection data

FieldTypeDescription
titlestringCollection name
descriptionstringCollection description
productsCountnumberProducts in collection
imageUrlstringCollection image
urlstringCollection page URL

Input parameters

ParameterTypeDefaultDescription
storeUrlsarrayrequiredShopify store URLs
scrapeProductsbooleantrueExtract products
scrapeCollectionsbooleanfalseExtract collections
scrapeReviewsbooleanfalseExtract customer reviews
maxProductsinteger100Max products per store
maxReviewsPerProductinteger50Max 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:

PlatformDetectionAPI
YotpoScript loader URL or data-appkeyPublic CDN API (JSON)
Judge.mejudge.me scripts, jdgm-widget elementsPublic widget API
Stamped.ioStampedFn.init() or stamped.io scriptsWidget API with public key
Okendookendo.io scripts, data-oke- attributesStorefront 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:

EventPrice
Run started$0.005
Product extracted$0.003 per product
Collection extracted$0.001 per collection
Review extracted$0.001 per review

Cost examples

ScenarioItemsCost
50 products, no reviews50~$0.155
50 products + 10 reviews each50+500~$0.655
20 products + reviews from 3 stores60+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 ApifyClient
client = 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().items
products = [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 compareAtPrice vs price to find discounted items
  • 📦 Track inventory — The available field shows real-time stock status per variant
  • 🏷️ Filter by type — Use productType to categorize products, type field 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

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 undercut
  • available: false on 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".

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