Shopify Scraper — Any Store's Full Product Catalog avatar

Shopify Scraper — Any Store's Full Product Catalog

Pricing

from $1.40 / 1,000 products

Go to Apify Store
Shopify Scraper — Any Store's Full Product Catalog

Shopify Scraper — Any Store's Full Product Catalog

Export the complete catalog of any Shopify store: every product and variant with price, compare-at price, live discount, SKU, stock status, images, tags, vendor and description. Filter by keyword, vendor, type, price range, in-stock or on-sale. Official Shopify endpoint, no key.

Pricing

from $1.40 / 1,000 products

Rating

0.0

(0)

Developer

Daniel Meshulam

Daniel Meshulam

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Export the complete catalog of any Shopify store — every product, every variant, with live prices and stock.

Uses the /products.json endpoint Shopify publishes on every storefront. No key, no login, no headless browser, nothing rendered by JavaScript.

One row per variant

A shirt in 4 sizes is 4 sellable SKUs — 4 prices, 4 stock states. That's what you get by default, because "is the medium in stock at $39?" is the question people are actually asking.

Set oneRowPerProduct: true to collapse to one row per product with priceMin / priceMax instead.

What you get

FieldExample
title, variantTitle, skuMen's Cruiser, 10, A12856M080
price, compareAtPrice105.00, 140.00
onSale, discountPercenttrue, 25.0
inStocktrue
vendor, productType, tagsAllbirds, Shoes, […]
option1/2/3, optionsBlue, 10 · ["Color","Size"]
url, image, variantImage, imageCount
descriptionplain text, HTML stripped
publishedAt, createdAt, updatedAt
productId, variantId, grams

discountPercent is computed for you — price monitoring shouldn't require arithmetic on your end.

Filters that actually save you money

Everything below filters before billing, and the row cap counts rows kept, not scanned — so a narrow filter never comes back empty just because the first 250 products didn't match.

{
"storeUrls": ["allbirds.com", "gymshark.com"],
"onSaleOnly": true,
"inStockOnly": true,
"minPrice": 20,
"maxPrice": 150,
"keywords": ["shoe", "runner"],
"maxProductsPerStore": 500
}
  • keywords — match on title, type, vendor or tags
  • vendors, productTypes — exact match
  • inStockOnly, onSaleOnly
  • minPrice / maxPrice

Collections

Set includeCollections: true to also get the store's collections with product counts — a fast map of how a competitor organises their catalog.

Who this is for

  • Competitor & price monitoring — schedule it daily, diff the prices, catch every discount the day it launches
  • Dropshippers & resellers — pull a supplier's full catalog with SKUs and stock in one run
  • Market research — how many SKUs, what price bands, what's sold out
  • Affiliate & deal sitesonSaleOnly: true is a ready-made deals feed
  • AI / dataset builders — clean structured product data, no HTML parsing

Pricing

Pay per result. One row = one variant (or one product, or one collection). Stores that fail come back as error rows and are not charged, and neither is anything removed by your filters.

Notes

  • If a store isn't on Shopify, or has password-protected its storefront, you get a clear error row saying exactly that — not a raw HTTP code.
  • Shopify caps this endpoint at 250 products per page; the Actor pages automatically up to 10,000 products per store.
  • Prices are in the store's own currency. Shopify does not expose the currency code on this endpoint, so check the store if you're mixing regions.
  • Set a max charge per run in the run options for a hard spend ceiling — the Actor honors it and stops cleanly.