Shopify Products Scraper: Prices, Variants & Stock avatar

Shopify Products Scraper: Prices, Variants & Stock

Pricing

from $0.50 / 1,000 products

Go to Apify Store
Shopify Products Scraper: Prices, Variants & Stock

Shopify Products Scraper: Prices, Variants & Stock

Get every product from any Shopify store: prices, compare-at prices, variants, SKUs, stock flags, images, tags and descriptions. Fast, no browser, no proxy. Pay only per product delivered.

Pricing

from $0.50 / 1,000 products

Rating

0.0

(0)

Developer

SB

SB

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

Get every product from any Shopify store as clean data: title, vendor, type, tags, price range, compare-at (sale) prices, every variant with SKU and stock flag, images and a plain-text description. Paste store links, get JSON, CSV or Excel, or call it from code, n8n, Make, Zapier or an AI agent through MCP.

You only pay for products delivered. Stores that can't be read (not Shopify, password-protected, empty) get an error row and are never charged.

Why this one

  • Whole catalogs, fast. Reads the store's own product feed, 250 products per request. No browser and no proxy needed. In our release test it fetched 9,748 products from 10 stores in 32 seconds.
  • Collections too. Paste a collection URL (…/collections/sale) to get only that collection.
  • Ready for price monitoring. Each product has priceMin, priceMax, compareAtPriceMax, onSale and available, plus the same per variant. Schedule a daily run and diff the results.
  • Many stores at once. Stores are scraped in parallel, with retries and backoff when a store rate-limits.
  • Clear errors. not_shopify, password_protected, no_products, invalid_input and others, each with a plain-English message.

Output

One item per product:

{
"store": "www.allbirds.com",
"title": "Men's Tree Runners",
"vendor": "Allbirds",
"productType": "Shoes",
"tags": ["mens", "runners"],
"priceMin": 98.0,
"priceMax": 98.0,
"compareAtPriceMax": null,
"onSale": false,
"currency": "USD",
"available": true,
"variantsCount": 14,
"variants": [{"variantId": 1, "title": "8", "sku": "TR-8", "price": 98.0, "compareAtPrice": null, "available": true, "option1": "8"}],
"image": "https://cdn.shopify.com/…",
"images": ["https://cdn.shopify.com/…"],
"description": "Plain-text description…",
"url": "https://www.allbirds.com/products/mens-tree-runners",
"createdAt": "…", "updatedAt": "…", "publishedAt": "…",
"status": "ok"
}

Input

OptionDefaultNotes
stores—Store URLs/domains or collection URLs. Required
maxProductsPerStore10000 = all products
onlyAvailablefalseSkip products with no variant in stock
includeVariantstrueFull variant list per product
includeDescriptionHtmlfalseRaw HTML description (plain text is always included)
maxConcurrency5Stores in parallel
maxRetries4Retries with backoff on rate limits and dropped connections
proxyConfigurationoffOnly if a store keeps rate-limiting

Use cases

  • Competitor price tracking: schedule daily runs on rival stores and watch priceMin, onSale and stock.
  • Dropshipping and product research: pull full catalogs with images, variants and tags.
  • Catalog migration and audits: export a store's products to a spreadsheet.
  • AI analysis: feed product titles, tags and descriptions to an LLM to map assortments or find gaps.

Use it from code

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("sblabs/shopify-products-scraper").call(run_input={
"stores": ["allbirds.com", "https://www.gymshark.com/collections/leggings"],
"maxProductsPerStore": 0,
})
for p in client.dataset(run["defaultDatasetId"]).iterate_items():
print(p["store"], p["title"], p["priceMin"], p["available"])

Pricing

Pay per event: one charge per product delivered (variants are included at no extra cost), at the price on the Pricing tab. Set a maximum cost per run and the Actor stops cleanly when it reaches it.

FAQ

Which stores work? Any public Shopify store that keeps its standard product feed on. Some stores turn it off; you get a not_shopify row for those.

Does it show exact stock counts? No. Shopify's public feed shows whether each variant can be bought (available), not the quantity.

Is it legal? The Actor reads publicly available product data. You are responsible for how you use it, including the store's terms.

Something broke? Open an issue on the Issues tab with the store link.

More tools from sblabs