Shopify Scraper avatar

Shopify Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Shopify Scraper

Shopify Scraper

Monitor any Shopify store - products, prices, variants, availability, collections, and reviews. Extract DTC storefront and competitor catalog intelligence with no API key, via public Shopify endpoints.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Dev Patel

Dev Patel

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape any Shopify store — products, prices, variants, availability, collections, and reviews — with no API key. Built on Shopify's public storefront endpoints, so it's fast, cheap, and works on any Shopify storefront.

Great for competitor catalog monitoring, price/availability tracking, and DTC storefront intelligence.

What it does

  • 🛍️ Products — every product with title, vendor, type, tags, description, all variants (price, compare-at price, SKU, availability, options), images, and on-sale flag
  • 🗂️ Collections — all collections/categories with handle, description, product count, image
  • Reviews — auto-detects the review app (Yotpo, Judge.me, Shopify Product Reviews, Stamped.io, Okendo, Loox) and pulls reviews where the store exposes them
  • 💱 Detects the store currency automatically
  • 🔑 No API key — uses public /products.json and /collections.json

Input

FieldTypeDescription
storeUrlsarrayRequired. Shopify store URLs (e.g. https://www.deathwishcoffee.com). Blank rows are skipped.
scrapeProductsbooleanExtract products. Default true.
scrapeAllProductsbooleanScrape the ENTIRE catalog, ignoring maxProducts. Default false.
scrapeCollectionsbooleanExtract collections. Default false.
scrapeReviewsbooleanExtract product reviews (auto-detects platform). Default false.
maxProductsintegerMax products per store. Default 100. Ignored when scrapeAllProducts is on.
maxReviewsPerProductintegerMax reviews per product. Default 50.
proxyConfigurationobjectResidential by default — keep it. See the warning below.

Example: scrape every product in the store

{
"storeUrls": ["https://beminimalist.co/"],
"scrapeProducts": true,
"scrapeAllProducts": true
}

Pages through the whole catalog 250 at a time (verified: 76 products from beminimalist.co, 256 from thedermaco.com).

⚠️ Use Residential proxy (important)

Many Shopify stores soft-block datacenter IPs: /products.json returns HTTP 200 with an empty product list instead of an error. That looks like "0 product(s) found" even though the store is perfectly scrapable.

Measured on beminimalist.co (3 runs each):

ProxyProducts found
Datacenter0, 0, 0
Residential76, 76, 76

Residential is now the default. The actor also retries an empty result on fresh IPs and, if page 1 still comes back empty, fails with a clear error instead of silently reporting zero.

Output

Each item has a type (product or collection). Product example:

{
"type": "product",
"storeUrl": "https://www.deathwishcoffee.com",
"id": 7457029947447,
"title": "Death Wish Coffee — Ground",
"handle": "death-wish-ground-coffee",
"url": "https://www.deathwishcoffee.com/products/death-wish-ground-coffee",
"vendor": "Death Wish Coffee Co.",
"productType": "Coffee",
"tags": ["Coffee", "Ground"],
"description": "The world's strongest coffee...",
"price": 19.99,
"priceMax": 59.99,
"currency": "USD",
"available": true,
"onSale": false,
"variantsCount": 3,
"variants": [
{ "id": 123, "title": "14 oz", "sku": "DW-14", "price": 19.99, "compareAtPrice": null, "available": true, "options": ["14 oz"] }
],
"options": [{ "name": "Size", "values": ["14 oz", "5 lb"] }],
"image": "https://cdn.shopify.com/....jpg",
"images": ["https://cdn.shopify.com/....jpg"],
"reviewPlatform": "yotpo",
"reviewsCount": 128,
"rating": 4.7,
"reviews": [{ "author": "Jane D.", "rating": 5, "title": "Amazing", "body": "...", "date": "2026-01-02", "verifiedBuyer": true }]
}

Notes on reviews

Product/variant/price/collection data is always reliable (it comes from Shopify's own JSON). Review extraction is best-effort and depends on the store's review app:

  • Judge.me and the free Shopify Product Reviews app — reviews extracted directly.
  • Yotpo / Stamped.io — extracted when the store exposes the public widget key in its storefront. Some stores hide it; in that case the review platform is still reported (and product data is unaffected), but individual reviews may come back empty.
  • For unsupported/hidden setups, reviewPlatform tells you what the store uses so you can decide next steps.

If you only need catalog, price, availability, and collections, leave scrapeReviews off — that path is 100% reliable on any Shopify store.