Shopify Products Scraper - Prices, Stock, Variants ($0.50/1K) avatar

Shopify Products Scraper - Prices, Stock, Variants ($0.50/1K)

Pricing

from $0.50 / 1,000 products

Go to Apify Store
Shopify Products Scraper - Prices, Stock, Variants ($0.50/1K)

Shopify Products Scraper - Prices, Stock, Variants ($0.50/1K)

Scrape every product of any Shopify store or collection: prices, compare-at (sale) prices, stock availability, variants, SKUs, images, tags, vendor and currency. Filters for in-stock, on-sale and keywords. Only $0.50 per 1,000 products, no start fee.

Pricing

from $0.50 / 1,000 products

Rating

0.0

(0)

Developer

Víctor Carrión

Víctor Carrión

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Shopify Products Scraper: prices, stock and variants for $0.50 per 1,000

Get every product of any Shopify store, or of one collection, with prices, compare-at (sale) prices, stock availability, variants, SKUs, options, images, tags, vendor, product type and store currency. Paste store domains and get a clean table or JSON in seconds.

  • $0.50 per 1,000 products, with no start fee. Non-Shopify sites and products removed by your filters are free.
  • All variants included: SKU, price, compare-at price, availability, options (size, color…) and weight.
  • Ready-made filters: only in-stock, only on sale, title keywords.
  • Works on collections (/collections/sale, /collections/new-arrivals) as well as whole stores.

Use cases

  • Competitor price monitoring: schedule daily runs and track price and stock changes of competitor stores.
  • Dropshipping and product research: find best-sellers, new arrivals and discounts across stores.
  • Catalog sync and migration: export a full catalog with variants and images.
  • Market research: compare assortments, price points and vendors across a niche.
  • Deal sites and affiliates: list only on-sale products from many stores.

How to use it

  1. In Shopify stores or collections, add store domains (allbirds.com) or collection URLs (https://www.gymshark.com/collections/new-releases).
  2. Optionally turn on Only in-stock or Only on sale, or add title keywords.
  3. Click Start and export the dataset as JSON, CSV or Excel, or use the API.

Input example

{
"stores": ["allbirds.com", "https://www.gymshark.com/collections/new-releases"],
"onlyAvailable": true,
"maxProductsPerStore": 500
}

Output example (one item per product)

{
"status": "ok",
"store": "allbirds.com",
"storeName": "Allbirds",
"currency": "USD",
"productId": 7012345678901,
"title": "Men's Tree Runners",
"url": "https://allbirds.com/products/mens-tree-runners",
"vendor": "Allbirds",
"productType": "Shoes",
"tags": ["mens", "runners"],
"priceMin": 98.0,
"priceMax": 98.0,
"compareAtPriceMax": null,
"onSale": false,
"available": true,
"variantsCount": 7,
"options": ["Size"],
"imageUrl": "https://cdn.shopify.com/…",
"variants": [{"variantId": 4012…, "title": "8", "sku": "TR3M…", "price": 98.0, "compareAtPrice": null, "available": true, "option1": "8"}],
"images": ["https://cdn.shopify.com/…"],
"createdAt": "2025-03-01T10:00:00-05:00",
"updatedAt": "2026-10-30T08:12:00-04:00",
"scrapedAt": "2026-10-31T12:00:00+00:00"
}

Sites that are not Shopify, or that disabled the product feed, return a free item with status: "not_shopify". A wrong collection name returns collection_not_found.

Pricing

Pay per event: $0.0005 per product ($0.50 per 1,000), whatever the number of variants. No start fee. Free items: non-Shopify sites, missing collections and filtered-out products. You can cap the cost of a run in the run options, and the Actor stops cleanly when the cap is reached.

How it works

Every Shopify storefront publishes its product catalog as public JSON (/products.json). The Actor reads it page by page and politely: about 2 requests per second per store, with back-off if the store asks to slow down. It doesn't log in, doesn't use proxies and doesn't touch carts or checkouts.

Use it from code, Make, Zapier, n8n or an AI agent

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("Yakk000/shopify-products-scraper").call(run_input={"stores": ["allbirds.com"], "onlyOnSale": True})
for p in client.dataset(run["defaultDatasetId"]).iterate_items():
print(p["title"], p["priceMin"], p["currency"], p["available"])

FAQ

Does it get the exact stock quantity? Shopify's public feed exposes availability (in stock / sold out) per variant, not the exact unit count.

Which currency are prices in? The store's base currency, in the currency field.

Something not working for a store? Open an issue with the store URL.