Shopify Products Scraper — Prices, Variants & Sale Monitoring
Pricing
from $2.00 / 1,000 results
Shopify Products Scraper — Prices, Variants & Sale Monitoring
Scrape any Shopify store's catalog via /products.json: prices, compare-at/sale, variants, SKUs, availability, vendor and images. No login, pure HTTP. Export JSON/CSV/Excel.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Chris Lucas
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Shopify Products Scraper — Prices, Variants & Sales
Export the full public product catalog of any Shopify store to JSON, CSV or Excel: every product and variant with its price, compare-at (original) price, sale flag, SKU, stock status, vendor, tags and image. Paste a store URL, click Start, and get a clean spreadsheet in seconds. No login, no API key, no browser — it reads the same public catalog feed every Shopify storefront serves.
What does Shopify Products Scraper do?
Shopify Products Scraper turns a Shopify store into a dataset. For each store you give it, it pages through the store's public catalog and returns one row per variant (or one row per product with nested variants, if you prefer). Each row tells you:
- What it is — product title, handle, product URL, vendor/brand, product type, tags, image.
- What it costs — current
priceandcompare_at_price(the crossed-out original price). - Whether it's on sale — a ready-made
on_saleflag, so you don't have to compare prices yourself. - Whether it's in stock — the per-variant
availableflag. - When it appeared —
created_at,published_atandupdated_attimestamps, for spotting new launches.
It works on stores with a custom domain (allbirds.com) and on *.myshopify.com addresses alike.
Who uses it
- Resellers and retail arbitrage sellers — pull a brand's whole catalog with prices to find what's discounted, what's sold out, and what's worth sourcing.
- E-commerce brands — keep an eye on competitor pricing, product launches and promotions without visiting their site every day.
- Agencies and analysts — export a prospect's catalog for an audit, a pricing study or a product-feed rebuild.
- Developers — feed product data into a price-comparison site, a deal bot, a Google Sheet or your own database through the Apify API.
How to scrape a Shopify store
- Click Try for free (Apify's free plan covers small runs).
- Paste one or more store URLs into Store URLs, e.g.
https://www.allbirds.com. - Optional: pick variant or product rows, limit to certain collections, or cap the number of products.
- Click Start. Most stores finish in under a minute.
- Download the results as JSON, CSV, Excel, XML or HTML, or pull them through the API.
Want a fresh export every morning? Save your input as a Task and attach a Schedule. If you only care about what changed since yesterday (price drops, new products, sell-outs), use the companion Actor below instead — it bills per change, not per row.
Input
| Field | What it does |
|---|---|
storeUrls | Shopify store URLs or bare domains. Add as many stores as you like. |
outputGranularity | variant = one row per variant (best for prices and stock). product = one row per product with its variants nested. |
collectionHandles | Optional. Scrape only these collections (e.g. sale, mens-shoes) instead of the whole store. |
maxProductsPerStore | Stop after this many products per store. 0 = no limit. |
includeUnavailable | Keep out-of-stock variants in the output (default true). |
requestDelayMs | Pause between page requests, in milliseconds (default 200). |
Example input:
{"storeUrls": ["https://www.allbirds.com"],"outputGranularity": "variant","collectionHandles": [],"maxProductsPerStore": 0,"includeUnavailable": true}
Output
One row per variant. Example (values are illustrative):
{"store_domain": "www.allbirds.com","product_id": 6914587279441,"product_title": "Men's Tree Runners","handle": "mens-tree-runners","product_url": "https://www.allbirds.com/products/mens-tree-runners","vendor": "Allbirds","product_type": "Shoes","tags": ["mens", "runners"],"variant_id": 40523981111377,"variant_title": "Kauri Marine Blue / 10","sku": "TR3MKMB100","price": "79.00","compare_at_price": "98.00","on_sale": true,"available": true,"image_src": "https://cdn.shopify.com/...","created_at": "2024-03-01T10:12:00-08:00","published_at": "2024-03-01T10:12:00-08:00","updated_at": "2026-10-20T08:01:00-07:00","scraped_at": "2026-10-24T09:00:00+00:00"}
All fields:
store_domain, product_id, product_title, handle, product_url, vendor, product_type, tags, created_at, updated_at, published_at, variant_id, variant_title, sku, price, compare_at_price, on_sale, available, image_src, scraped_atHow much does it cost to scrape a Shopify store?
Pay only for the rows you get: $3 per 1,000 rows (one row = one variant, or one product in
product mode), plus a negligible start fee per run. Apify subscribers get Store discounts on
top. A 500-variant store costs about $1.50. A 50-product sanity check costs about $0.15
and fits easily in Apify's free monthly credit.
To keep costs down, use collectionHandles to scrape just the part of the catalog you need,
or switch to product mode if you don't need a row per size and color.
Integrations and API
Everything Apify offers works here: run it from the API or the Python/JavaScript clients, send results to Google Sheets, Slack, Zapier, Make, Airbyte or a webhook, and chain it with other Actors. The API tab on this page has ready-to-copy code.
FAQ
Does it work with any Shopify store? It works with any store that serves Shopify's standard public catalog, which is nearly all of them. A handful of stores disable or password-protect it. Those return no rows and cost nothing beyond the start fee.
Can it get exact inventory quantities?
No. Shopify's public catalog says whether a variant is in stock or not (available), not
how many units are left. Any tool claiming exact counts from the storefront is guessing.
Is scraping Shopify stores legal? This Actor reads only public product information that the store publishes to every visitor: no login, no personal data. As with any data project, check that your use follows the store's terms and the laws that apply to you.
Do I need proxies or a Shopify login? No. It uses plain HTTP requests with a polite delay, and no account is needed.
How do I track price changes over time? Schedule this Actor and compare exports, or let Shopify Price & Sale Monitor do the comparison for you and return only the changes.
Something broke or a field is missing? Open an issue in the Issues tab with the store URL. Every issue gets read and answered.
Related Actors
- Shopify Price & Sale Monitor — schedule it and get only what changed since the last run: price drops, sales starting and ending, new products, sell-outs and restocks.