Shopify Products Scraper - Prices, Stock, Variants ($0.50/1K)
Pricing
from $0.50 / 1,000 products
Shopify Products Scraper - Prices, Stock, Variants ($0.50/1K)
Scrape every product of any Shopify store or collection: prices, compare-at (sale) prices, stock availability, variants, SKUs, images, tags, vendor and currency. Filters for in-stock, on-sale and keywords. Only $0.50 per 1,000 products, no start fee.
Pricing
from $0.50 / 1,000 products
Rating
0.0
(0)
Developer
Víctor Carrión
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Shopify Products Scraper: prices, stock and variants for $0.50 per 1,000
Get every product of any Shopify store, or of one collection, with prices, compare-at (sale) prices, stock availability, variants, SKUs, options, images, tags, vendor, product type and store currency. Paste store domains and get a clean table or JSON in seconds.
- $0.50 per 1,000 products, with no start fee. Non-Shopify sites and products removed by your filters are free.
- All variants included: SKU, price, compare-at price, availability, options (size, color…) and weight.
- Ready-made filters: only in-stock, only on sale, title keywords.
- Works on collections (
/collections/sale,/collections/new-arrivals) as well as whole stores.
Use cases
- Competitor price monitoring: schedule daily runs and track price and stock changes of competitor stores.
- Dropshipping and product research: find best-sellers, new arrivals and discounts across stores.
- Catalog sync and migration: export a full catalog with variants and images.
- Market research: compare assortments, price points and vendors across a niche.
- Deal sites and affiliates: list only on-sale products from many stores.
How to use it
- In Shopify stores or collections, add store domains (
allbirds.com) or collection URLs (https://www.gymshark.com/collections/new-releases). - Optionally turn on Only in-stock or Only on sale, or add title keywords.
- Click Start and export the dataset as JSON, CSV or Excel, or use the API.
Input example
{"stores": ["allbirds.com", "https://www.gymshark.com/collections/new-releases"],"onlyAvailable": true,"maxProductsPerStore": 500}
Output example (one item per product)
{"status": "ok","store": "allbirds.com","storeName": "Allbirds","currency": "USD","productId": 7012345678901,"title": "Men's Tree Runners","url": "https://allbirds.com/products/mens-tree-runners","vendor": "Allbirds","productType": "Shoes","tags": ["mens", "runners"],"priceMin": 98.0,"priceMax": 98.0,"compareAtPriceMax": null,"onSale": false,"available": true,"variantsCount": 7,"options": ["Size"],"imageUrl": "https://cdn.shopify.com/…","variants": [{"variantId": 4012…, "title": "8", "sku": "TR3M…", "price": 98.0, "compareAtPrice": null, "available": true, "option1": "8"}],"images": ["https://cdn.shopify.com/…"],"createdAt": "2025-03-01T10:00:00-05:00","updatedAt": "2026-10-30T08:12:00-04:00","scrapedAt": "2026-10-31T12:00:00+00:00"}
Sites that are not Shopify, or that disabled the product feed, return a free item with status: "not_shopify". A wrong collection name returns collection_not_found.
Pricing
Pay per event: $0.0005 per product ($0.50 per 1,000), whatever the number of variants. No start fee. Free items: non-Shopify sites, missing collections and filtered-out products. You can cap the cost of a run in the run options, and the Actor stops cleanly when the cap is reached.
How it works
Every Shopify storefront publishes its product catalog as public JSON (/products.json). The Actor reads it page by page and politely: about 2 requests per second per store, with back-off if the store asks to slow down. It doesn't log in, doesn't use proxies and doesn't touch carts or checkouts.
Use it from code, Make, Zapier, n8n or an AI agent
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("Yakk000/shopify-products-scraper").call(run_input={"stores": ["allbirds.com"], "onlyOnSale": True})for p in client.dataset(run["defaultDatasetId"]).iterate_items():print(p["title"], p["priceMin"], p["currency"], p["available"])
FAQ
Does it get the exact stock quantity? Shopify's public feed exposes availability (in stock / sold out) per variant, not the exact unit count.
Which currency are prices in? The store's base currency, in the currency field.
Something not working for a store? Open an issue with the store URL.