Shopify Store Products Scraper — Variants, Prices, Stock avatar

Shopify Store Products Scraper — Variants, Prices, Stock

Pricing

from $0.70 / 1,000 products

Go to Apify Store
Shopify Store Products Scraper — Variants, Prices, Stock

Shopify Store Products Scraper — Variants, Prices, Stock

Every product of any Shopify store or collection with variants, prices, compare-at prices, stock, SKUs, options, images, tags and descriptions — via the store's public catalog, no login. Keyword and in-stock filters, CSV/JSON export and API.

Pricing

from $0.70 / 1,000 products

Rating

0.0

(0)

Developer

Chorelet

Chorelet

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

13 hours ago

Last modified

Share

The full catalog of any Shopify store — or a single collection — with every variant's price, compare-at price, availability, SKU and options, plus images, tags, vendor, product type and description. Paste store URLs, get JSON, CSV or Excel, or pull via API.

Reads the store's own public catalog endpoint (/products.json), so it works on every Shopify store that exposes its products (the vast majority), returns exactly what the store publishes, and needs no login or proxies.

Why this Actor

  • Whole stores or single collections through the store's own public catalog endpoint
  • Every variant with price, compare-at price, availability, SKU and options
  • Sale and in-stock flags, keyword filter, descriptions as text and HTML
  • 250 products per request — thousands in seconds, no login, no proxies
  • Checked every day by an automated run

Sample output

One item of the dataset (long values shortened):

See the Output tab of any run.

What you get

FieldDescription
store, collection, id, handle, urlIdentity
title, vendor, productType, tagsClassification
priceMin, priceMax, compareAtPriceMax, onSale, available, variantsCountPricing and stock summary
variants[]id, title, sku, price, compareAtPrice, available, options, grams, requiresShipping, image
options[], images[], imageOptions and media
description, descriptionHtml, createdAt, updatedAt, publishedAtContent and dates

A per-store summary (products listed, kept, errors) is saved as SUMMARY.

Input

  • Store URLs — home pages, collection URLs or product URLs.
  • Max products per store, Keywords, In stock only, Include descriptions, Proxy (off by default).

Limits and notes

  • Stores can disable the public catalog or password-protect the shop; those return a clear error and the run continues with the rest.
  • Prices are in the store's default currency; available reflects the store's inventory flag at scrape time.
  • Public data only; the Actor stores nothing beyond the dataset of your run.

Input example

{
"storeUrls": [
"https://gymshark.com",
"https://colourpop.com"
],
"maxProductsPerStore": 100,
"onlyAvailable": false,
"includeDescription": true
}

How much does it cost?

Pay per product — no subscription, no minimum, no charge for platform usage.

VolumePrice
1,000 products$1.00
10,000 products$10.00
100,000 products$100.00

The Apify free plan includes $5 of usage every month — about 5,000 products with this Actor, no card needed. Nothing else is charged: platform usage is included in the price, and Apify Bronze, Silver and Gold subscribers get 10%, 20% and 30% off these prices.

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

Run the Actor and download the dataset in one call (JSON by default; add &format=csv or xlsx):

curl -X POST "https://api.apify.com/v2/acts/chorelet~shopify-store-products-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"storeUrls": ["https://gymshark.com", "https://colourpop.com"], "maxProductsPerStore": 100, "onlyAvailable": false, "includeDescription": true}'

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("chorelet/shopify-store-products-scraper").call(run_input={"storeUrls": ["https://gymshark.com", "https://colourpop.com"], "maxProductsPerStore": 100, "onlyAvailable": false, "includeDescription": true})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
  • n8n, Make, Zapier — use the Apify node/module: run the Actor, then "get dataset items".
  • Google Sheets, Slack, webhooks — add an integration on the run's Integrations tab.
  • AI agents — the Actor is available as a tool through the Apify MCP server; the dataset schema describes every field for the model.
  • Schedules — run it hourly, daily or weekly from the Schedules tab.

FAQ

Does it work on every Shopify store?

On every store that exposes its public catalog (/products.json) — the vast majority. Password-protected stores or stores that disabled it return a clear error.

Can I scrape one collection?

Yes — paste the collection URL (/collections/sale); only that collection is read.

Are prices in my currency?

Prices are in the store's default currency, as the catalog publishes them.

How do I track price changes?

Schedule the Actor and compare priceMin/compareAtPriceMax per id between runs — or use the sale collection with onlyAvailable.

What does a run cost?

$1 per 1,000 products. The free plan's $5 a month covers about 5,000 products.

Some stores answer 429 Too Many Requests. What does the Actor do?

It waits for as long as the store asks (Shopify usually says 60 seconds), and if the store is still refusing after that, it retries the same page once through Apify Proxy — big stores such as Gymshark started refusing Apify's shared addresses for long stretches in November 2026, and a different address gets through where waiting does not. Nothing is fetched or charged twice, a proxy you configured yourself is never replaced, and the run summary marks the stores that needed it with viaApifyProxy.

Support

Questions, missing fields or a source that changed? Open an issue on the Issues tab or write to support@chorelet.app — problems are usually fixed within a day, and the Actor is checked every morning by an automated test run. If the Actor saved you time, a short review on its Store page helps other people find it.