Shopify Products Scraper — Prices, Variants & SKUs avatar

Shopify Products Scraper — Prices, Variants & SKUs

Pricing

from $0.80 / 1,000 shopify products

Go to Apify Store
Shopify Products Scraper — Prices, Variants & SKUs

Shopify Products Scraper — Prices, Variants & SKUs

Export public Shopify catalog data from store, collection or product URLs: products, variant prices, SKUs, images and availability. Product-event and memory-based startup fees apply; platform usage is billed separately.

Pricing

from $0.80 / 1,000 shopify products

Rating

0.0

(0)

Developer

Coor Yu

Coor Yu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Shopify Products Scraper exports public Shopify products, variant prices, SKUs, compare-at prices, availability, images, options and tags. Use a store, collection or product URL for catalog and price research.

One saved product = one product event. All variants exposed in that product's public JSON are included. There is no per-variant or per-store surcharge. No Shopify account or Admin API key is required; running through the Apify API requires your Apify token.

Quick start

  1. Replace the Allbirds demo with your target Shopify URLs.
  2. Keep 100 products per URL, or adjust the limits below.
  3. Click Start and export the Products dataset as JSON, CSV or Excel.
{
"storeUrls": ["https://www.allbirds.com", "https://kith.com"],
"maxProductsPerStore": 100
}

{} selects the paid Allbirds demo, requesting up to 100 products. At the configured 256 MB memory, 100 saved products cost $0.085 in event fees, plus actual Apify platform usage. The two-URL example can save up to 200 products, subject to other limits. Example storefront accessibility is not guaranteed.

Bare domains such as kith.com are accepted. Tracking parameters, fragments and repeated URL scopes are removed automatically.

Store, collection and single-product exports

  • Store URL: paginate the store's public /products.json catalog.
  • Collection URL: paginate only that collection's public product feed; no collection rows are saved or charged.
  • Product URL: request that product's public JSON, including exposed variants—not only the variant selected in a query string.
{
"storeUrls": [
"https://your-store.com/collections/sale",
"https://your-store.com/products/a-product-handle"
],
"maxProductsPerStore": 50,
"includeDescription": true
}

Replace these illustrative URLs with accessible storefronts. Common locale prefixes such as /en-us/ are retained. No Shopify Admin API or private inventory is accessed.

Input fields

FieldDefaultPurpose
storeUrlsAllbirds demo1–20 public store, collection or product URLs
maxProductsPerStore100Matching products saved from each URL scope, 1–5,000
maxProducts1,000Global saved-product cap across all scopes, 1–10,000
onlyAvailablefalseRequire at least one explicitly available variant
includeDescriptionfalseInclude plain-text descriptions, limited to 10,000 characters
minPrice, maxPriceunsetInclusive variant-price filters; nonnegative numbers, with minimum no greater than maximum

When availability and price filters are combined, the same variant must satisfy all conditions. Filters select products; returned products still include their other exposed variants. Prices use each storefront's currency without conversion. Restrictive filters can cause more pages to be fetched than products saved; platform usage still applies.

Output and billing unit

Each dataset row is one product, with:

  • id, handle, title, vendor, productType, product URL and store/domain details
  • currency when public shop metadata exposes it; numeric minPrice and maxPrice calculated from exposed variant prices
  • available, onSale and variantCount, derived from returned variants
  • variants: IDs, titles, SKUs, barcode when exposed, numeric prices, compare-at prices, option values, weight, shipping and availability flags
  • Product image URLs, tags and option definitions
  • Source createdAt, updatedAt and publishedAt strings when exposed; sourceUrl and collection-time scrapedAt
  • Optional plain-text description

Missing nullable values stay null. Availability is a storefront flag, not an exact inventory count. onSale indicates a compare-at price above the variant price, not a verified promotion. No sales, revenue, orders, customer data or supplier costs are inferred.

JSON retains nested variants; CSV/Excel may stringify arrays. For one row per SKU, expand variants downstream. Billing remains per product.

Current pricing: product events + platform usage

Current configured prices are in USD; see the Pricing tab for authoritative effective pricing.

ChargeCurrent rate
apify-default-dataset-item$0.0008 per saved product — $0.80 per 1,000
apify-actor-start$0.005 per GB of allocated memory, minimum one startup event per run
Exposed variants, images and optional descriptionsIncluded in the product event
Apify platform usageBilled separately to the running user at their Apify plan rates

The current Actor memory is fixed at 256 MB, so its minimum one-event startup charge is $0.005. Startup is memory-based, not fixed at every memory setting.

At that configured memory:

Saved productsEvent fees, excluding platform usage
1$0.0058
100$0.085
1,000$0.805

Total cost = startup events + saved-product events + actual platform usage. Compute, transfer and storage can cost money on empty/failed runs; retaining or reading datasets can also incur charges. No paid upstream Actors, data services, browsers, residential proxies or automatic paid fallbacks are called.

The startup charge can apply even if a store is blocked, empty, invalid or filtered to zero matches. Failed fetches, malformed/filtered products, skipped duplicates and the key-value run summary do not produce product events. Deduplication uses store domain + product ID within the run, including overlapping URL scopes; different store domains are separate records.

Apify's Maximum charge per run caps event charges; the configured minimum cap is $0.0058. Remaining product-event allowance is checked before requests and writes. The cap excludes platform usage and cannot guarantee a complete export.

Reliability and limits

  • Public product JSON feeds only. Password protection, login pages, bot challenges, missing feeds and HTTP errors are not bypassed.
  • Sequential scope/page processing, with one retry for HTTP 5xx errors; no repeated rate-limit or permanent-error retries.
  • Two-minute collection deadline, 100 HTTP requests including metadata/redirects/retries, 15-second request deadline and 8 MiB per response.
  • Public HTTPS storefronts only. Internal/local targets, URL credentials and unsafe redirects are rejected.
  • Repeated pages are detected and stopped. Budget, global-product, request and time limits can leave later scopes unvisited.

The OUTPUT key-value record provides per-scope counts, skipped duplicates, filter counts, errors and stop reasons. Mixed failures retain products with a partial summary; if every feed fails, the run fails. Valid empty catalogs or zero filter matches can succeed without rows; startup and platform charges still apply.

Public feeds may change, expose fewer products or variants than requested, or report delayed availability. Split large or heavily filtered crawls into smaller runs. Use only data you are entitled to access and follow applicable site terms and laws.

FAQ

Can I export an entire Shopify store?
You can request its public catalog, but completeness depends on exposed feeds, product limits, event budget and safety deadlines. This is not an Admin API export.

Are all SKUs and stock quantities available?
Only SKUs and availability flags exposed in public product JSON are returned. Private stock quantities and missing barcodes are not recovered.