Shopify Product Scraper: Prices, Variants & Stock
Pricing
from $0.60 / 1,000 product scrapeds
Shopify Product Scraper: Prices, Variants & Stock
Scrape products from any Shopify store or collection: title, vendor, type, tags, prices, compare-at prices, discount %, availability, variants, SKUs and images. Product or variant rows, in the market currency you choose. No login.
Pricing
from $0.60 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
veenkes
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 hours ago
Last modified
Categories
Features
Share
A Shopify product scraper for any public Shopify store or collection. Export the catalog with titles, vendors, types, tags, prices, compare-at prices, discount percent, availability, variants, SKUs and images — as one row per product or one row per variant, in the market currency you choose.
No Shopify admin access or login. Works with the store's public catalog (including the products.json feed when it is available).
What can this Shopify scraper do?
- 🛍️ Any Shopify store: millions of brands such as Allbirds, Kith, ColourPop and Tentree. Paste a domain and go.
- 🗂️ Collections: paste
https://store.com/collections/saleto scrape just that collection. - 💲 Market-correct prices: Shopify Markets shows different prices per country. Pick
US,DE,GB… and get prices with the matchingcurrency. - 🏷️ Discounts:
compareAtPriceanddiscountPercenton every product and variant. Find what's on sale in one filter. - 📦 Stock:
availableper product and per variant. Use Only in-stock items to skip sold-out stock. - 🔁 Monitoring-friendly: Updated since + variant rows + schedules = a cheap daily price and stock tracker.
- 🤖 AI and spreadsheet ready: flat JSON, CSV or Excel. Works with the Apify MCP server, n8n, Make, Zapier and Google Sheets.
Use cases
- Competitor price monitoring for e-commerce and DTC brands.
- Product research and dropshipping: find best-sellers, new arrivals and vendors.
- Discount and deal tracking: list every product with
discountPercent > 30. - Catalog migration and enrichment: export titles, SKUs, options and images.
- Market research: assortment, pricing tiers and product types across a niche.
What data do you get?
| Field | Example |
|---|---|
store, storeName | https://www.tentree.com, Tentree |
title, handle, url | Lookout Long Puffer |
vendor, productType, tags | tentree, Womens, ["best-sellers", …] |
price, priceMax, compareAtPrice, discountPercent | 348, 348, null, null |
currency, market | USD, US |
available, variantsCount | true, 5 |
options, variants | sizes, colours, SKUs, prices and stock per variant |
imageUrl, images | Shopify CDN image URLs |
createdAt, publishedAt, updatedAt | ISO dates |
descriptionText | plain-text description (optional) |
In variant mode every row is one variant and adds variantId, variantTitle, sku, option1-3, grams and variantUrl.
How to use it
- Click Try for free.
- Add store domains (
allbirds.com) or collection URLs (https://kith.com/collections/footwear). - Choose One row per product or variant, the Market country, and optional filters.
- Click Start and download JSON, CSV or Excel, or use the API.
Run it from the API
You can start this Actor from any language with the official Apify API client. Replace YOUR_APIFY_TOKEN with a token from Apify Console > Integrations. Never put the token in a public repo.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("veenkes/veenkes-shopify-products").call(run_input={"stores": ["https://colourpop.com"],"maxProductsPerStore": 100,"outputLevel": "product"})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('veenkes/veenkes-shopify-products').call({"stores": ["https://colourpop.com"],"maxProductsPerStore": 100,"outputLevel": "product"});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Schedule the Actor, send results to a webhook, or connect it in Zapier, Make or n8n. Store page: https://apify.com/veenkes/veenkes-shopify-products.
Use from AI agents (Apify MCP)
AI agents can run this Actor through the Apify MCP server. Connect Claude, Cursor or any MCP-compatible client to Apify, then ask the agent to call veenkes/veenkes-shopify-products with an input like the example above. The agent discovers the tool from the Actor title and description.
How much does it cost?
Pay per result: you pay for each product (or variant) row saved.
| Apify plan tier | Price per 1,000 rows |
|---|---|
| FREE | $1.00 |
| BRONZE | $0.80 |
| SILVER | $0.70 |
| GOLD and above | $0.60 |
There is also a $0.00005 start fee per run. For example, a full 2,000-product catalog costs about $1.60 at the BRONZE tier. Set Maximum cost per run to cap spending.
Input example
{"stores": ["https://colourpop.com", "https://kith.com/collections/footwear"],"maxProductsPerStore": 1000,"outputLevel": "product","country": "US","onlyAvailable": true,"updatedSince": "2026-11-01","includeDescription": false}
Output example
{"store": "https://www.tentree.com","storeName": "Tentree","productId": 8143544320186,"title": "Lookout Long Puffer","url": "https://www.tentree.com/products/lookout-long-puffer-forest-pine","vendor": "tentree","productType": "Womens","tags": ["back-to-school", "best-sellers"],"currency": "USD","market": "US","price": 348,"priceMax": 348,"compareAtPrice": null,"discountPercent": null,"available": true,"variantsCount": 5,"options": [{ "name": "Color", "values": ["FOREST PINE"] }, { "name": "Size", "values": ["XS", "S", "M", "L", "XL"] }],"variants": [{ "id": 44905051095226, "title": "FOREST PINE / XS", "sku": "TCW3532-5590-XS", "price": 348, "compareAtPrice": null, "available": false }],"imageUrl": "https://cdn.shopify.com/s/files/1/2341/3995/files/Green-Cloud-Shell-Long-Puffer-TCW3532-5590_11.jpg","updatedAt": "2026-11-12T14:01:32-07:00"}
The key-value store record SUMMARY shows rows saved per store and flags stores that are not on Shopify, are password-protected, or block the public feed.
Tips and limitations
- A few large stores disable the public product feed. They show up as
BLOCKED_OR_PASSWORD_PROTECTEDinSUMMARY, and they produce no billable rows. - Stock is available or sold out only. Shopify doesn't expose exact inventory counts publicly.
- If a store rate-limits you, enable Apify Proxy in the input. The Actor also backs off and retries automatically.
Why this one?
You get both product-level and variant-level (size/colour/SKU) export, plus market-specific prices, without logging in. Pricing is pay-per-product, with descriptions optional, so catalog monitoring stays predictable.
FAQ
Is it legal to scrape Shopify stores? The Actor reads only public product information that stores show to every visitor, and collects no personal data. Check each store's terms and the laws that apply to your use.
How do I know a site runs on Shopify?
Just try it: non-Shopify sites are reported as NOT_A_SHOPIFY_STORE with no billable rows.
Integrations
- Apify API — Python and JavaScript clients (examples above), plus a REST API.
- AI agents — run it via the Apify MCP server.
- Automation tools — Zapier, Make, n8n, or an Apify webhook when a run finishes.
- Export — download the dataset as JSON, CSV, Excel or XML, or load it from a scheduled run.
Open the Actor in Apify Store.
Not affiliated with or endorsed by Shopify Inc. or any store owner.