Shopify Store Scraper - Free Product & Store Data Extractor
Pricing
$5.00 / 1,000 result scrapeds
Shopify Store Scraper - Free Product & Store Data Extractor
Scrape Shopify store products, collections, and metadata. Returns: product title, variants, prices, images, description, and inventory. Ideal for competitor product research and e-commerce analysis.
Pricing
$5.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Web Data Labs
Actor stats
1
Bookmarked
3
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Shopify Store Scraper — Extract Products, Prices & Variants
Scrape any Shopify store's full product catalog via the public products.json endpoint. Returns product titles, prices, images, variants, and inventory data — no API key or authentication needed.
Works with any of the 4+ million Shopify stores worldwide. Just provide a store URL and get structured product data in seconds.
Key Features
- No API key required — uses Shopify's public product endpoint
- Full product data — titles, prices, images, variants, SKUs, tags
- Inventory tracking — variant availability and stock status
- Works with any Shopify store — custom domains and myshopify.com URLs
- Structured JSON output — clean, consistent data ready for analysis
- Export to any format — JSON, CSV, Excel, XML, or RSS
Use Cases
1. Competitor Price Monitoring
Track competitor product catalogs and pricing in real-time. Schedule daily runs to detect price changes, new product launches, and discontinued items.
2. Product Research & Market Validation
Before launching a product, research what similar stores are selling. Analyze pricing tiers, variant strategies, and product descriptions to position your offering.
3. Dropshipping Research
Identify high-demand products across Shopify stores. Analyze product types, pricing, and variant options to find winning products for your own store.
4. Inventory Intelligence
Monitor variant availability across competitor stores. Track which sizes, colors, and options sell out fastest to inform your own inventory decisions.
5. Catalog Analysis
Export entire product catalogs for comparison. Analyze product counts, pricing distribution, and category breakdowns across multiple stores.
Input Parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
storeUrl | string | Yes | — | URL of the Shopify store (e.g. https://gymshark.com) |
maxProducts | integer | No | 5 | Maximum products to scrape (max 10,000) |
Input Examples
Basic usage:
{"storeUrl": "https://gymshark.com","maxProducts": 50}
Full catalog export:
{"storeUrl": "https://allbirds.com","maxProducts": 1000}
Output Format
| Field | Type | Description |
|---|---|---|
productId | integer | Shopify product ID |
title | string | Product title |
vendor | string | Product vendor/brand |
productType | string | Product category |
handle | string | URL slug |
url | string | Full product URL |
price | number | Current price |
compareAtPrice | number | Original price (if on sale) |
currency | string | Currency code |
imageUrl | string | Primary product image URL |
tags | array | Product tags |
variants | array | Size/color/option variants with prices and availability |
Sample Output
{"productId": 7654321098,"title": "Vital Seamless 2.0 T-Shirt","vendor": "Gymshark","productType": "Tops","handle": "vital-seamless-2-0-t-shirt","url": "https://gymshark.com/products/vital-seamless-2-0-t-shirt","price": 30.00,"compareAtPrice": null,"currency": "GBP","imageUrl": "https://cdn.shopify.com/s/files/...","tags": ["mens", "tops", "training"],"variants": [{"id": 12345,"title": "S / Black","price": "30.00","available": true,"sku": "GS-VST-BK-S"}],"createdAt": "2026-01-15T10:00:00Z","updatedAt": "2026-03-20T14:30:00Z"}
Code Examples
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("cryptosignals/shopify-scraper").call(run_input={"storeUrl": "https://gymshark.com","maxProducts": 100,})for product in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{product['title']} - ${product['price']} ({len(product.get('variants', []))} variants)")
Compare pricing across stores:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")stores = ["https://gymshark.com", "https://allbirds.com", "https://bombas.com"]for store in stores:run = client.actor("cryptosignals/shopify-scraper").call(run_input={"storeUrl": store,"maxProducts": 50,})products = list(client.dataset(run["defaultDatasetId"]).iterate_items())prices = [p["price"] for p in products if p.get("price")]if prices:avg = sum(prices) / len(prices)print(f"{store}: {len(products)} products, avg ${avg:.2f}")
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('cryptosignals/shopify-scraper').call({storeUrl: 'https://gymshark.com',maxProducts: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const product of items) {console.log(`${product.title} - $${product.price}`);}
cURL
curl -X POST "https://api.apify.com/v2/acts/cryptosignals~shopify-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"storeUrl": "https://gymshark.com", "maxProducts": 50}'
Integrations
Connect this scraper to 5,000+ apps via Apify's built-in integrations:
- Google Sheets — export product data to spreadsheets
- Zapier — trigger workflows when prices change or new products appear
- Make (Integromat) — build automated price monitoring pipelines
- Slack / Email — get notified about competitor changes
- Webhooks — send results to any HTTP endpoint in real-time
Pricing
This actor uses pay-per-result pricing. You only pay for products successfully extracted.
| Usage | Estimated Cost |
|---|---|
| 50 products | ~$0.50-$1.00 |
| 200 products | ~$1.50-$3.00 |
| 1,000 products | ~$3.00-$6.00 |
Free tier available: Apify's free plan includes $5/month in platform credits.
FAQ
Does this work with any Shopify store?
It works with any Shopify store that hasn't disabled the public /products.json endpoint. The vast majority of stores have it enabled by default.
Do I need a Shopify API key?
No. This scraper uses the public product endpoint that Shopify stores expose by default.
Can I monitor prices over time?
Yes. Use Apify Schedules to run the scraper daily or weekly and compare results across runs.
Can I scrape custom domains?
Yes. Both store.myshopify.com and custom domain URLs are supported.
Related Actors
- cryptosignals/amazon-scraper — Scrape Amazon for price comparison
- cryptosignals/etsy-scraper — Scrape Etsy handmade/vintage products
- cryptosignals/google-search-scraper — Find Shopify stores via search
⭐ Like this actor? Leave a review!
If this scraper saved you time, please leave a quick review on the Apify Store listing. Even a one-line review helps other developers find this tool.
How to review: Go to the actor page -> scroll to Reviews -> click Write a review.