Shopify Product Scraper - Prices, Variants & Stock avatar

Shopify Product Scraper - Prices, Variants & Stock

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Shopify Product Scraper - Prices, Variants & Stock

Shopify Product Scraper - Prices, Variants & Stock

Export products from any Shopify store, collection or product URL: prices, compare-at prices, every variant with SKU, barcode and stock status, images, vendor and tags. Fast JSON mode, keyword search, price & stock monitoring.

Pricing

from $1.00 / 1,000 results

Rating

2.1

(2)

Developer

Liang Undef

Liang Undef

Maintained by Community

Actor stats

5

Bookmarked

119

Total users

0

Monthly active users

16 days ago

Last modified

Features

Full permissions

Share

Shopify Product Scraper – Prices, Variants, SKUs & Stock

Export the full product catalog of any public Shopify store – titles, prices, compare-at (sale) prices, every variant with SKU, barcode and stock status, images, vendor, product type and tags – as JSON, CSV, Excel or via API. No login, no Shopify API key, no store access needed.

What can this Shopify scraper do?

  • 🛍️ Whole store: paste a store URL (e.g. https://cadenlane.com) and get every published product.
  • 📂 One collection: paste a collection URL (e.g. https://store.com/collections/sale).
  • 🔗 Single products: paste product URLs (e.g. https://store.com/products/blue-shirt).
  • 🔎 Keyword search: set Search keyword to scrape only products matching a term in each store.
  • 🧩 All variants: price, compare-at price, SKU, barcode, options (size/color…) and available for every variant – or switch on One row per variant to get a flat table.
  • ⚡ Fast and cheap: catalog mode uses Shopify's public JSON endpoints (250 products per request) instead of a browser.
  • 🔁 Price & stock monitoring: schedule the Actor (hourly/daily) and compare datasets to track price drops, restocks and new arrivals.

Use cases

  • Competitor price monitoring and MAP / price-drop alerts
  • Stock and restock tracking for dropshipping and resellers
  • Product research, assortment and trend analysis
  • Building product feeds / catalogs for comparison sites and marketplaces
  • Feeding product data into AI agents, spreadsheets, BI dashboards or n8n / Make / Zapier workflows

How to use it

  1. Click Try for free.
  2. Add one or more Shopify store, collection or product URLs.
  3. (Optional) Set Max results, Search keyword or One row per variant.
  4. Click Start and download the data as JSON, CSV, Excel, XML or HTML, or fetch it through the Apify API.

Input

FieldTypeDescription
startUrlsarrayShopify store, collection or product URLs. Required.
qstringOptional search keyword (uses a browser; slower). Leave empty for full catalog.
maxItemsintegerMax results saved in total (0 = no limit). Default 1000.
splitVariantsbooleanOne output row per variant instead of per product. Default false.
maxRequestsPerCrawlintegerSafety limit on fetched pages. Default 200.
proxyConfigurationobjectApify Proxy settings (on by default).

Example input:

{
"startUrls": [{ "url": "https://cadenlane.com" }],
"maxItems": 100,
"splitVariants": false
}

Output

One record per product (or per variant when splitVariants is on). Example (shortened):

{
"id": 10321118036028,
"title": "Personalized Kids' Blanket | Lilac Dream",
"handle": "personalized-kids-blanket-lilac-dream",
"url": "https://cadenlane.com/products/personalized-kids-blanket-lilac-dream",
"storeUrl": "https://cadenlane.com",
"vendor": "PTG",
"productType": "Blanket",
"tags": ["blanket", "kids", "purple"],
"image": "https://cdn.shopify.com/s/files/.../MRS445845771.jpg",
"images": ["https://cdn.shopify.com/s/files/.../MRS445845771.jpg"],
"price": 68,
"maxPrice": 68,
"compareAtPrice": null,
"inStock": true,
"variantsCount": 1,
"availableVariantsCount": 1,
"options": [{ "name": "Title", "values": ["Default Title"] }],
"variants": [{
"variantId": 50504442544188, "variantTitle": "Default Title",
"sku": "BLT-BLMK-LILDRE-0-DTO-OS", "barcode": "804887567",
"price": 68, "compareAtPrice": null, "available": true,
"option1": "Default Title", "option2": null, "option3": null
}],
"descriptionHtml": "<p>...</p>",
"createdAt": "2026-10-21T10:00:00-04:00",
"updatedAt": "2026-10-25T08:00:00-04:00",
"scrapedAt": "2026-10-26T14:00:00.000Z"
}

Output fields

FieldDescription
title, handle, urlProduct name, Shopify handle and product page URL
vendor, productType, tagsBrand/vendor, product type and tags
price / maxPriceLowest / highest variant price (store currency)
compareAtPriceHighest "compare at" (original) price – indicates a sale
inStocktrue if at least one variant is available (null if the store hides stock)
variants[]Every variant: id, title, SKU, barcode, price, compare-at price, availability, options, weight, image
image, images[]Main image and all image URLs
descriptionHtmlProduct description (HTML)
createdAt, updatedAt, publishedAtShopify timestamps

With One row per variant, each row also contains variantId, variantTitle, sku, barcode, available, option1–3, and price / inStock refer to that variant.

Pricing

This Actor uses pay-per-event pricing: you pay a small fee per Actor start and per result saved (see the Pricing tab for the current price). Platform usage (compute and proxy) is included – there are no other costs. Use Max results to cap the cost of a run. Example: 1,000 products ≈ $1.

FAQ

Does it work with every Shopify store? It works with public Shopify stores that expose the standard /products.json endpoint (the vast majority). Password-protected stores or stores that disabled the endpoint return no data; the log says so.

Why is the stock status null in catalog mode for some stores? Some stores hide availability in their JSON. Try product URLs (single product mode reads the .js endpoint) or keyword search.

Can I get inventory quantities? Shopify does not publish exact quantities publicly; you get available per variant.

Is the currency included? Prices are in the store's default currency as returned by Shopify.

Can I monitor price changes? Yes – create a Task, schedule it, and compare price / inStock between runs (or use Apify integrations / webhooks).

Is scraping Shopify stores legal? The Actor only reads publicly available product data. Make sure your use complies with the store's terms and applicable laws (e.g. GDPR). Contact us via the Issues tab if you need help or a feature.