Shopify Products Scraper: Prices & Variants
Pricing
from $0.80 / 1,000 products
Shopify Products Scraper: Prices & Variants
Get all products from any Shopify store: title, vendor, type, tags, images, description, min and max price, currency, availability and every variant with SKU, price and compare-at price. Give store URLs, get JSON, CSV or Excel. No browser, no proxy, fast. $0.80 per 1,000 products.
Pricing
from $0.80 / 1,000 products
Rating
0.0
(0)
Developer
Beike
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
What you get
This Actor reads the product catalog of any public Shopify store and gives you one clean item per product:
- title, vendor, product type, tags and a plain-text description;
- all image URLs and the product options (for example Size and Color with their values);
- the lowest and highest price, the store currency, and whether the product is available;
- every variant with its ID, title, SKU, price, compare-at price (the "was" price), availability and options;
- the product URL and the created, updated and published dates.
It uses the store's own public products.json feed, so there is no browser, no proxy and no HTML parsing. That makes it fast and cheap: one request returns up to 250 products.
Pricing
You pay $0.80 per 1,000 products: one result event per product stored in the dataset.
- 1,000 products = $0.80
- 10,000 products = $8.00
- a store with 700 products = $0.56
You can set a maximum cost per run in Apify Console. When that budget is reached, the Actor stops and keeps everything it collected so far.
How to use it
- Open the Actor in Apify Console and go to the Input tab.
- Add one or more store addresses under Store URLs. Any page of the store works, with or without
https://: the Actor only keeps the store address. - Set Maximum number of products. This is a total across all stores; stores are scraped in the order you list them.
- Click Start and download the results as JSON, CSV or Excel from the Output tab, or read them through the Apify API.
Input and output example
Input:
{"startUrls": ["https://www.allbirds.com"],"maxItems": 10}
One output item (shortened):
{"shopUrl": "https://www.allbirds.com","productId": 7340901859408,"handle": "womens-allbirds-flip-flop-dusty-pink","url": "https://www.allbirds.com/products/womens-allbirds-flip-flop-dusty-pink","title": "Women's Allbirds Flip Flop - Dusty Pink","vendor": "Allbirds","productType": "Shoes","tags": ["..."],"descriptionText": "Sun on your feet. Comfort underneath. ...","images": ["https://cdn.shopify.com/s/files/..."],"options": [{"name": "Size", "values": ["5", "6", "7", "8", "9", "10", "11"]}],"priceMin": 25.0,"priceMax": 25.0,"currency": "USD","available": true,"variants": [{"variantId": 42146889039952,"title": "5","sku": "A12513W050","price": 25.0,"compareAtPrice": 50.0,"available": false,"option1": "5","option2": null,"option3": null}],"createdAt": "2026-03-27T14:03:50-07:00","updatedAt": "2026-10-05T04:53:56-07:00","publishedAt": "2026-09-25T16:58:13-07:00","scrapedAt": "2026-10-05T12:00:00+00:00"}
Supported stores
Every Shopify store whose storefront is public and whose products.json feed is switched on. That includes stores on their own domain (such as www.allbirds.com) and stores on a myshopify.com address. Stores built on other platforms (WooCommerce, Magento, BigCommerce) are not supported; the Actor tells you so in the log.
Limitations
- Availability only, no stock quantities. The public feed says whether a variant can be bought (
availabletrue or false), not how many are in stock. - At most 25,000 products per store. Shopify itself stops the feed there. The Actor then stops for that store with a warning and keeps the 25,000 products.
- No password-protected stores. A store with a storefront password gives an error in the log and is skipped.
- No proxy. A store that blocks the request (HTTP 403) is skipped with an error; try again later.
- Prices in the store's currency. Prices are not converted. The
currencyfield tells you which currency it is; if the store does not share it,currencyis null. - Reviews, collections and customer data are not collected.
FAQ
Why do some stores fail? The log says why for each store: password-protected, not a Shopify store, products feed disabled, or blocked. The other stores in the same run continue.
Does it collect personal data? No. It only returns product fields that the store publishes itself, never customer data. The description is passed on as plain text, as the store wrote it.
What happens when my maximum cost is reached? The run stops, succeeds, and keeps all products collected so far.
Can I scrape only new products? Not in this version. Every run reads the whole catalog up to your maximum number of products.