Shopify Product Scraper - Multi-Store Export avatar

Shopify Product Scraper - Multi-Store Export

Pricing

from $0.80 / 1,000 product scrapeds

Go to Apify Store
Shopify Product Scraper - Multi-Store Export

Shopify Product Scraper - Multi-Store Export

Scrape up to 20 public Shopify product catalogs in one run. Export prices, SKUs, variants, options, and availability to CSV, Excel, or JSON—without an API key, browser, proxy, or login. Pay only $0.80 per 1,000 products; error rows are free.

Pricing

from $0.80 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Dominik Seehütter

Dominik Seehütter

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

Shopify Multi-Store Catalog Exporter

Export public product catalogs from several Shopify storefronts in one Apify run. The Actor is deliberately narrow: product listings, prices, stock flags, options, and variants—no reviews, contacts, customers, orders, descriptions, or images.

Why use it

  • Process up to 20 store domains in one run.
  • Receive one predictable product record with nested variants, suitable for JSON, CSV export, scheduling, or API integration.
  • Get an explicit, unbilled error record when a store is protected, is not a compatible Shopify storefront, or disallows the endpoint in robots.txt.
  • No browser, login, proxy, CAPTCHA service, or anti-bot bypass.
  • Exact price strings are preserved; the Actor does not silently round money.

Input

{
"storeUrls": [
"https://store-one.example",
"store-two.example"
],
"maxProductsPerStore": 1000,
"maxConcurrency": 2,
"requestDelayMillis": 500
}

Only each URL's HTTPS origin is used. Duplicate domains are removed. Private/reserved network addresses, credentials, custom ports, and unsafe redirects are rejected.

Output

Each billed product record contains:

  • store and product URLs
  • Shopify product ID, handle, title, vendor, and product type
  • availability, minimum/maximum price, variant counts
  • tags and product options
  • nested variants with ID, title, SKU, exact price, compare-at price, availability, options, weight, and shipping flag
  • published and updated timestamps

The public feed does not label its active currency, so prices are returned exactly as the storefront supplies them without guessing a currency. Product descriptions and images are intentionally omitted.

An incompatible or disallowed store returns one error record containing storeUrl, errorCode, and errorMessage. Error records are not associated with the billable product event.

Pricing

Planned Store pricing:

  • Actor start: $0.00005 (Apify's synthetic start event)
  • Product: $0.0008 per saved product record
  • Error records: free

In Apify monetization settings, keep apify-actor-start, remove apify-default-dataset-item, and add the custom primary event product at $0.0008. This prevents error rows from being charged.

Compliance and reliability

The Actor uses an identified user agent, reads robots.txt before the catalog endpoint, waits between pages, and processes no more than four stores concurrently. If robots.txt cannot be read, the store is skipped conservatively. HTTP 429 is reported and never bypassed.

The Actor reads only the unauthenticated public Shopify JSON storefront surface. It does not collect customer or order data and does not fall back to browser automation or proxies when a merchant restricts access.

Local development

npm install
npm test
npm run validate
npm start

Local input lives in storage/key_value_stores/default/INPUT.json. The production build is capped at 256 MB.