Shopify Store Scraper
Pricing
from $0.80 / 1,000 results
Shopify Store Scraper
Extract products, variants, prices, inventory, images, and collections from any Shopify store via the public /products.json and /collections.json endpoints. No API key, no login, no browser.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
Aurenic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract products, variants, prices, inventory, images, and collections from any Shopify store via the public /products.json and /collections.json endpoints. No API key, no login, no browser.
What does Shopify Store Scraper do?
Scrape any of the 4.2 million+ Shopify stores in one actor:
- Products — full catalog with title, handle, vendor, product type, tags, price range, compare-at price, calculated discount, availability, and every variant with SKU, barcode, price, weight, and options.
- Variants — full variant array per product (sizes, colors, materials).
- Collections — all collections with handle, title, description, image, and product count.
- Store metadata — store name, description, country, currency, myshopify domain.
- Optional per-collection filtering — restrict product scraping to specific collections (e.g.
sale,best-sellers).
Every Shopify store exposes its catalog at the public canonical endpoint /products.json — the same endpoint that powers Shopify's own product pickers, search APIs, and feed-export integrations. No anti-bot, no browser, no proxy needed.
Output fields
Product
| Field | Description |
|---|---|
| storeHost / storeOrigin | Store domain |
| productId | Shopify product ID |
| title | Product title |
| handle | URL-safe slug |
| url | Direct product page URL |
| vendor | Brand / vendor |
| productType | Shopify product type |
| tags | Comma-separated tags |
| bodyHtml | HTML-stripped description (when includeProductDetails: true) |
| publishedAt / createdAt / updatedAt | Timestamps |
| priceMin / priceMax | Variant price range |
| compareAtPriceMin | Lowest compare-at price |
| discountPercent | Calculated discount percentage |
| available | True if any variant is in stock |
| variantCount | Number of variants |
| variants | Full variant array with SKU, barcode, price, weight, options |
| imageCount / featuredImage / images | Image metadata and URLs |
| options | Product options (Size, Color, Material) |
Collection
| Field | Description |
|---|---|
| collectionId | Shopify collection ID |
| title / handle / url | Collection identity |
| description | HTML-stripped description |
| productsCount | Number of products in the collection |
| imageUrl | Collection image |
| sortOrder | Manual / best-selling / price-asc / price-desc |
Store metadata
| Field | Description |
|---|---|
| shopId | Shopify shop ID |
| name / description | Store name and description |
| primaryDomain / myshopifyDomain | Store domains |
| country / currency | Locale |
| moneyFormat | Currency display format |
Diagnostic
Emitted once per store when a domain is not a Shopify store or has /products.json disabled. Not charged.
Who is it for?
- Dropshippers and product researchers scanning winning products across thousands of stores
- Price intelligence teams monitoring competitor catalogs and discount rates
- E-commerce aggregators building multi-store product feeds
- Brand and MAP monitoring teams enforcing minimum advertised price
- D2C analytics teams detecting Shopify stores in a sales pipeline
- Recommendation engine builders training on structured ecommerce data
Pricing
$0.90 per 1,000 results. No subscription.
| Results | Cost |
|---|---|
| 100 | $0.09 |
| 1,000 | $0.90 |
| 10,000 | $9.00 |
How to use it
- Paste one or more Shopify Store URLs (bare domains or full URLs).
- Optionally restrict to specific Collection Handles.
- Toggle Store Metadata, Collections, and Product Descriptions.
- Set Max Products per Store (default 1000) and Max Requests per Second (default 2).
- Click Start.
Output example
{"recordType": "product","storeOrigin": "https://www.allbirds.com","storeHost": "www.allbirds.com","productId": 4521803710580,"title": "Men's Wool Runner Go","handle": "mens-wool-runner-go","url": "https://www.allbirds.com/products/mens-wool-runner-go","vendor": "Allbirds","productType": "Shoes","tags": ["men", "sneakers", "wool"],"bodyHtml": "Our lightest everyday sneaker, made with ZQ Merino wool...","publishedAt": "2024-08-12T14:23:00-07:00","priceMin": 100.0,"priceMax": 100.0,"compareAtPriceMin": 120.0,"discountPercent": 16.7,"available": true,"variantCount": 9,"variants": [{"id": 41234567890123,"title": "8 / Natural Black","sku": "A10543-080","price": 100.0,"compareAtPrice": 120.0,"available": true,"grams": 320,"weight": 0.32,"weightUnit": "kg","barcode": "810010000000","option1": "8","option2": "Natural Black","option3": null,"position": 1}],"imageCount": 6,"featuredImage": "https://cdn.shopify.com/s/files/1/0044/4360/7925/products/...","images": ["https://cdn.shopify.com/..."],"options": [{ "name": "Size", "position": 1, "values": ["8", "9", "10", "11"] },{ "name": "Color", "position": 2, "values": ["Natural Black", "Natural White"] }],"scrapedAt": "2026-09-21T12:00:00.000Z"}
Technical details
- No API key, no login, no browser. Uses Shopify's canonical public endpoints.
- Endpoints used:
/products.json,/collections.json,/meta.json, and/collections/{handle}/products.json. - Pagination: 250 products per page, up to 200 pages per store.
- Per-host rate limit: 2 requests/second by default (Shopify throttles aggressive crawlers above ~40 req/min per IP).
- Multi-store: pass up to dozens of stores in one run.
- Graceful diagnostics: non-Shopify domains or stores with
/products.jsondisabled emit a single diagnostic record and are not charged. - No proxy required. Datacenter IPs work on 99% of stores.
Known limits
- Only published products appear in
/products.json. Draft and unpublished products are not exposed. - Inventory quantity is not in the public feed. Per-variant stock is reported as the boolean
available. - Some stores disable
/products.json. Those return a diagnostic record witherrorCode: NOT_SHOPIFY_OR_DISABLED. - Price is a string in Shopify's feed. The actor parses it to a number (
priceMin,priceMax, per-variantprice). body_htmlis truncated at 5,000 characters after HTML stripping.
FAQ
Do I need a Shopify API key? No. The /products.json endpoint is public by design — it's the same endpoint Shopify uses for product pickers and feed exports.
Do I need a proxy? No. Datacenter IPs work on almost every store. Enable proxy only if a specific store blocks you.
Why did my store return a diagnostic record? Either the domain isn't Shopify, or the store disabled /products.json. The errorCode field tells you which.
How many products can I get per store? Up to 50,000 (200 pages × 250 per page). For larger catalogs, run multiple times with maxProductsPerStore and dedupe by productId.
Can I scrape reviews too? Not in this version. Review platforms (Judge.me, Yotpo, Okendo) each require their own endpoint — planned for a follow-up.
How do I export data? After a run, go to Storage → Export as JSON, CSV, Excel.
Support
Open an issue on the Actor's page for bugs or feature requests.