Shopify Products Scraper: Catalog, Prices & Variants to JSON avatar

Shopify Products Scraper: Catalog, Prices & Variants to JSON

Pricing

from $0.90 / 1,000 products

Go to Apify Store
Shopify Products Scraper: Catalog, Prices & Variants to JSON

Shopify Products Scraper: Catalog, Prices & Variants to JSON

Shopify product data: every product from any store's public catalog (title, vendor, type, tags, dates, min/max and compare-at price, variants with SKU and availability, images, URL). Whole store or one collection. No login, no browser.

Pricing

from $0.90 / 1,000 products

Rating

0.0

(0)

Developer

Lepi Data

Lepi Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

Give it a list of Shopify stores and get one row per product from each store's public catalog: title, vendor, product type, tags, created/updated/published dates, lowest and highest price, compare-at ("was") price, variants with SKU, price and availability, images and the product URL. Read a whole store or a single collection. No login, no browser, no proxies.

Useful for price monitoring, competitor and assortment research, catalog migration, and feeding product data into Sheets, a database or an AI agent.

What you get

FieldMeaning
typeproduct for a product; free status rows otherwise
store, urlStore host and the product page URL
id, title, handleShopify product id, title and URL handle
vendor, productType, tagsAs set by the store
createdAt, updatedAt, publishedAtISO 8601, in the store's time zone
priceMin, priceMaxLowest / highest variant price, in the store's default currency
compareAtPriceMin, compareAtPriceMaxCompare-at prices, when the store sets them
available, variantCountAny variant in stock to buy; number of variants
variantsUp to 100: id, title, sku, price, compareAtPrice, available
optionsOption names and values (e.g. Size, Color)
images, imageCountUp to 20 image URLs; total number of images

The currency isn't included in Shopify's public catalog, so prices are numbers in whatever currency the store shows by default. Product descriptions and stock quantities are not returned.

Pricing

$0.90 per 1,000 products (pay per event product), no extra start fee beyond Apify's standard one. Free: stores that aren't Shopify, are password-protected, rate-limited or blocked by robots.txt (store-error rows with the reason), and the limit rows. Set a maximum charge per run and the Actor stops cleanly when it's reached.

Free-plan accounts can check up to 20 stores and get up to 100 products per run to try it out. Paid Apify plans get full results.

Input

  • storeUrls: domains (allbirds.com), URLs, or *.myshopify.com addresses. A URL with /collections/<handle> reads just that collection.
  • maxProductsPerStore (default 100): stop after this many products per store, in the store's own catalog order.
  • collection (optional): a collection handle, e.g. sale, applied to every store.

How it works, and what it never touches

  • It requests only the store's public catalog files, /products.json and /collections/<handle>/products.json, 250 products per request. Every other path is refused in code, including after redirects: it never requests customer, order, cart, checkout, account, admin or search pages.
  • robots.txt is checked for each store. Stores whose robots.txt disallows the catalog, or can't be read, are skipped as free rows.
  • At most one request per second per store (slower if robots.txt sets a crawl delay). On HTTP 429 it waits (honoring Retry-After) and retries up to 3 times, then reports RATE_LIMITED.
  • The user agent names the Actor and links to our Apify profile.

Good to know

  • Stores that block access are not supported. If a store's robots.txt disallows its catalog, it answers 401/403 or redirects to a password page, or it keeps answering 429 after 3 polite retries, you get one free store-error row and the Actor makes no further requests to that store in the run. It does not switch to proxies, change its user agent or headers, or try other pages (such as /collections/all, sitemaps or feeds).

  • Shopify's public catalog lists at most 25,000 products per store or collection. Bigger stores get a free store-incomplete row; read them collection by collection to get more.

  • Some Shopify stores turn off or block their public catalog. They show up as STORE_PROTECTED, NOT_SHOPIFY or ROBOTS_BLOCKED rows, free of charge.

  • Non-Shopify sites are detected (no Shopify product list at /products.json) and reported as NOT_SHOPIFY.

  • Only public https sites; private and internal addresses are refused.

FAQ

Is this data public? Yes. It's the product information each store publishes for anyone to read, with no login. No personal data is collected. If you republish product text or images, respect the store's rights and terms.

Why didn't I get every product? Check maxProductsPerStore (default 100), and look for a store-incomplete or store-error row for that store.

Not affiliated

This Actor is an independent, unofficial tool. It is not made, endorsed, or supported by Shopify Inc. "Shopify" is used only to describe the public store catalogs this tool reads.