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

2

Total users

1

Monthly active users

a day 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

  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.

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.

Other e-commerce scrapers