Shopify Products Scraper — Prices, Variants & Sale Monitoring avatar

Shopify Products Scraper — Prices, Variants & Sale Monitoring

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Shopify Products Scraper — Prices, Variants & Sale Monitoring

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

Chris Lucas

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

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 price and compare_at_price (the crossed-out original price).
  • Whether it's on sale — a ready-made on_sale flag, so you don't have to compare prices yourself.
  • Whether it's in stock — the per-variant available flag.
  • When it appeared — created_at, published_at and updated_at timestamps, 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

  1. Click Try for free (Apify's free plan covers small runs).
  2. Paste one or more store URLs into Store URLs, e.g. https://www.allbirds.com.
  3. Optional: pick variant or product rows, limit to certain collections, or cap the number of products.
  4. Click Start. Most stores finish in under a minute.
  5. 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

FieldWhat it does
storeUrlsShopify store URLs or bare domains. Add as many stores as you like.
outputGranularityvariant = one row per variant (best for prices and stock). product = one row per product with its variants nested.
collectionHandlesOptional. Scrape only these collections (e.g. sale, mens-shoes) instead of the whole store.
maxProductsPerStoreStop after this many products per store. 0 = no limit.
includeUnavailableKeep out-of-stock variants in the output (default true).
requestDelayMsPause 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_at
.

How 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.

  • 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.