Shopify Products Scraper: Prices, Variants, Stock & Launches avatar

Shopify Products Scraper: Prices, Variants, Stock & Launches

Pricing

from $0.50 / 1,000 products

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

Shopify Products Scraper: Prices, Variants, Stock & Launches

Scrape every product from any Shopify store or collection: price, compare-at price and discount, stock, variants, sizes and colors, tags, images and launch dates. Plus a free store summary with price range, top product types and what launched in the last 30 days.

Pricing

from $0.50 / 1,000 products

Rating

0.0

(0)

Developer

VNCNT Labs

VNCNT Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 hours ago

Last modified

Share

Shopify Products Scraper: Prices, Variants, Stock & New Launches

Put in one or more Shopify store URLs and get every product in the catalog as one clean row: title, URL, price and compare-at price, discount %, stock status, variants and options (sizes, colors), product type, tags, vendor, main image and the date it was published. Each store also gets a free summary row with its name, currency, country, product count, median price, share on sale, top product types and tags, and how many products it launched in the last 7 and 30 days.

Filter by keyword, "published in the last N days", on sale or in stock, and sort newest first or by discount, so you can see what a competitor just launched or put on sale without reading their whole catalog. No API key, no login, no proxy. $0.50 per 1,000 products.

Built for:

  • Print-on-demand, merch and Etsy sellers: see which designs, niches and price points the bigger Shopify stores in your niche are launching right now.
  • Dropshippers and store owners: track a competitor's prices, discounts and stock, and spot new products the week they go live.
  • eBay and Amazon resellers: pull a brand's full catalog with SKUs and compare-at prices to find gaps and margins.
  • Developers and AI agents: one call returns clean JSON for a price monitor, a product database or a market report.

What you get

Row (type)What's in itCharged
productstore, title, url, handle, productId, vendor, productType, tags, currency, price (lowest variant), priceMax, compareAtPrice, discountPercent, onSale, available, variantsCount, availableVariants, options (e.g. Size: S, M, L), imageUrl, imagesCount, publishedAt, createdAt, updatedAt, daysSincePublished. Optional: variants (title, SKU, price, compare-at price, stock, options) and description (plain text)product
storestatus, storeName, currency, country, myshopifyDomain, productsScanned, catalogComplete, productsDelivered, priceMin, priceMax, priceMedian, onSaleShare, inStockShare, publishedLast7Days, publishedLast30Days, newestPublishedAt, topProductTypes, topTags, topVendors, plus a note or errorfree
skippedinputs that weren't valid or weren't scraped, with the reasonfree

Store stats cover every product that was read, before your filters, so you get the shape of the catalog even when you only ask for a few rows.

Input examples

Whole catalogs of two stores (up to 1,000 products each):

{ "startUrls": [{ "url": "https://kith.com" }, { "url": "https://www.allbirds.com" }], "maxProductsPerStore": 1000 }

What a store launched in the last 30 days, newest first:

{ "startUrls": [{ "url": "https://fashionnova.com" }], "publishedWithinDays": 30, "sortBy": "newest", "maxProductsPerStore": 100 }

Hoodies and sweatshirts on sale, biggest discount first, with every size and SKU:

{ "startUrls": [{ "url": "https://fashionnova.com" }], "keywords": ["hoodie", "sweatshirt"], "onlyOnSale": true,
"sortBy": "discount", "includeVariants": true, "maxProductsPerStore": 50 }

One collection only:

{ "startUrls": [{ "url": "https://www.allbirds.com/collections/mens" }], "maxProductsPerStore": 200 }

Tips

  • Max products per store is your cost cap: 100 products = $0.05, 1,000 = $0.50, plus the $0.005 run start.
  • With filters on, the Actor reads up to 4x your limit (at least 1,000 products, at most 10,000) to find matches, and you only pay for the rows that match.
  • sortBy works on the products that were read. Shopify's feed lists the newest published products first, so "newest" on a big store is accurate for recent launches.
  • Store URL, custom domain or name.myshopify.com all work. Up to 50 stores per run.
  • Some stores block automated requests or are password-protected. Those get a store row with the reason and cost nothing.

Output examples

A product row:

{
"type": "product", "store": "fashionnova.com",
"title": "Skye Spaghetti Strap Sweater Mini Dress - Bronze",
"url": "https://fashionnova.com/products/skye-spaghetti-strap-sweater-mini-dress-fncolorname-bronze",
"vendor": "Fashion Nova", "productType": "Dresses", "tags": ["category:Dresses", "color_fam:Brown", "Plus"],
"currency": "USD", "price": 5, "priceMax": 5, "compareAtPrice": 49.99, "discountPercent": 90, "onSale": true,
"available": true, "variantsCount": 8, "availableVariants": 8,
"options": { "Size": ["XS", "S", "M", "L", "XL", "1X", "2X", "3X"] },
"imagesCount": 6, "publishedAt": "2026-10-28T23:17:49Z", "daysSincePublished": 1
}

A store summary row:

{
"type": "store", "store": "www.allbirds.com", "status": "ok", "storeName": "Allbirds", "currency": "USD",
"country": "US", "myshopifyDomain": "weareallbirds.myshopify.com", "productsScanned": 356, "catalogComplete": true,
"priceMin": 0.8, "priceMax": 165, "priceMedian": 110, "onSaleShare": 0.042, "inStockShare": 0.98,
"publishedLast7Days": 0, "publishedLast30Days": 0, "newestPublishedAt": "2026-09-25T23:58:13Z",
"topProductTypes": [{ "name": "Shoes", "count": 344 }, { "name": "Apparel", "count": 3 }]
}

The dataset has two views, Products and Stores. Export to CSV, Excel or JSON, or send results to Google Sheets, Slack or email with Apify integrations. Schedule a daily run to keep a price and launch history.

Pricing (pay per event)

EventPriceWhen it is charged
Actor start$0.005once per run
product$0.0005one product row delivered

So 100 products cost $0.055, and 3 stores with 1,000 products each cost $1.505.

You are not charged for:

  • store summary rows, products that don't match your filters, and stores that are blocked, password-protected, rate-limited, empty or not on Shopify;
  • skipped inputs, and anything beyond your run's maximum charge. The run stops at your maximum charge and says so in the store row.

Apify free plan: 3 stores and 100 products per store per run. Any paid Apify plan unlocks 50 stores and 10,000 products per store.

Use from AI agents (MCP)

AI assistants such as Claude, ChatGPT and Cursor can run this Actor through Apify's MCP server (https://mcp.apify.com). The agent can look up the Actor, read its input schema, run it and read the results. Runs use your own Apify account and are charged at the prices on this page.

  • Actor name: vncntlabs/shopify-products-scraper
  • Server URL with only this tool: https://mcp.apify.com?tools=vncntlabs/shopify-products-scraper. The default https://mcp.apify.com also works; the agent can then search Apify Store and call the Actor by name.
  • Claude (desktop app or claude.ai): Settings > Connectors > Add custom connector, paste the server URL, then sign in to Apify.
  • ChatGPT: turn on Developer mode, then Settings > Apps & Connectors > Create, paste the server URL and choose OAuth.
  • Cursor: run /add-plugin apify in Cursor chat and connect the Apify MCP server under Cursor Settings > Tools & MCPs, or add the server to mcp.json:
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com?tools=vncntlabs/shopify-products-scraper" } } }

Example prompt: "Use the Apify Actor vncntlabs/shopify-products-scraper to get the products competitor.com published in the last 30 days, then group them by product type and price range."

To cap the cost of an agent's run, it can pass maxTotalChargeUsd in the run options.

FAQ

Where does the data come from? From each store's public Shopify product feed (/products.json), the same data shown on the store's own product pages. No login and no private data.

How do I know a site runs on Shopify? Just put it in. If it isn't Shopify, the store row says not-shopify and you pay nothing.

Does it show sales numbers or inventory counts? No. Shopify doesn't publish those. You get in stock or out of stock per variant, plus prices, discounts and launch dates.

Why did a store stop before the end? Big stores sometimes start limiting requests partway through. The store row says how many products were read and why it stopped, and you're only charged for rows you got.

Related tools: Amazon Product Scraper for Amazon listings, Google Shopping Scraper to compare prices across stores, and Keyword Search Volume to check demand for a product idea.

Questions or a field you'd like added? Email hello@vncntlabs.com.

Not affiliated with Shopify.