Shopify Store Products Scraper - Any Store, Full Catalog, Cheap avatar

Shopify Store Products Scraper - Any Store, Full Catalog, Cheap

Pricing

from $0.50 / 1,000 product scrapeds

Go to Apify Store
Shopify Store Products Scraper - Any Store, Full Catalog, Cheap

Shopify Store Products Scraper - Any Store, Full Catalog, Cheap

Export the full product catalog of any Shopify store from its public JSON: titles, vendors, tags, images, every variant with SKU, price, compare-at price, stock and options, plus currency. Optional price and stock change tracking between runs. From US$0.50 per 1,000 products.

Pricing

from $0.50 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Fabrikit

Fabrikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Export the complete product catalog of any Shopify store in minutes: titles, vendor, product type, tags, dates, images and every variant (SKU, price, compare-at price, stock status, options, weight), plus the store currency. Paste a domain, a collection URL or a product URL. No login, no API key.

It reads the public JSON endpoints that every Shopify storefront exposes (/products.json, /collections/<handle>/products.json, /meta.json), so it is fast and cheap: a 700-product store takes about 6 seconds.

Price: US$0.50 per 1,000 records. You can also run it as a price and stock monitor: in Changes mode it remembers the previous run and outputs only new, removed and changed products.

What you get

  • Whole catalog of one or many stores in a single run (250 products per request, automatic pagination).
  • Scope by store, by collection URL or by single product URL (locale paths such as /en-ca/ are supported).
  • One record per product (with a variants array) or one row per variant for spreadsheets.
  • minPrice, maxPrice, currency (from meta.json, falling back to cart.js).
  • Optional plain-text or HTML description, optional list of each store's collections.
  • Non-Shopify sites are detected and reported clearly per store (not_shopify, shopify_restricted, empty, blocked) instead of returning silently empty results.
  • Works with Apify datacenter proxy and switches to residential automatically if a store rate-limits or blocks.

Input

FieldDescription
storesDomains or URLs, one per line. Store URL = whole catalog, /collections/<handle> = one collection, /products/<handle> = one product.
modecatalog (default) or changes.
flattenVariantsOne row per variant instead of one per product.
maxItems / maxItemsPerStoreResult caps (default 50).
onlyAvailableSkip products where every variant is sold out.
includeDescription, includeDescriptionHtmlAdd the description as text / HTML.
listCollectionsSave each store's collections to the key-value store (COLLECTIONS_<domain>), free.
changeTrackingStoreName, emitBaselineChanges mode settings (see below).
proxyConfigurationApify proxy (default datacenter, residential fallback is automatic).

Example:

{
"stores": ["allbirds.com", "https://kith.com/collections/mens-footwear"],
"maxItems": 500,
"flattenVariants": false
}

Output example

{
"store": "allbirds.com",
"storeName": "Allbirds",
"productId": 7340901859408,
"handle": "womens-allbirds-flip-flop-dusty-pink",
"title": "Women's Allbirds Flip Flop - Dusty Pink",
"vendor": "Allbirds",
"productType": "Shoes",
"tags": ["allbirds::gender => womens", "shoprunner"],
"createdAt": "2026-03-27T14:03:50-07:00",
"updatedAt": "2026-10-13T10:05:56-07:00",
"publishedAt": "2026-09-25T16:58:13-07:00",
"url": "https://www.allbirds.com/products/womens-allbirds-flip-flop-dusty-pink",
"images": ["https://cdn.shopify.com/s/files/1/1104/4168/files/A12513_PDP_LEFT.png"],
"options": [{"name": "Size", "values": ["5", "6", "7"]}],
"available": true,
"minPrice": 25,
"maxPrice": 25,
"currency": "USD",
"variantCount": 7,
"variants": [
{"id": 42146889039952, "sku": "A12513W050", "title": "5", "price": 25, "compareAtPrice": 50, "available": false, "options": {"Size": "5"}, "grams": 455, "image": null}
],
"scrapedAt": "2026-10-13T17:05:58.347Z"
}

With flattenVariants each variant becomes its own record with variantId, variantTitle, sku, price, compareAtPrice, variantAvailable, variantOptions, grams, variantImage next to the product fields.

Price and stock change tracking

Set mode to changes and schedule the actor (daily, hourly...). The first run stores a compact snapshot of each store in a named key-value store (changeTrackingStoreName, default shopify-store-products-snapshots) and outputs nothing (turn on emitBaseline to also get the catalog). Every later run outputs only:

  • changeType: "new" - products that were not there before,
  • changeType: "changed" - with changes: [{variantId, sku, field, from, to}] for price, compareAtPrice, available, added/removed variants and title,
  • changeType: "removed" - products that disappeared (only when the whole store was scanned).

You pay only for the records that are output. Use a different snapshot store name for a separate watch-list.

Pricing

EventPrice
Record saved (product-result)US$0.50 per 1,000

Plus the small standard Apify actor-start event. In Changes mode a run that finds no changes costs only the start event.

FAQ

Does it work on every Shopify store? On every store that keeps the public /products.json feed on (the default). Password-protected stores and stores that disabled the feed are reported as shopify_restricted.

Are prices in my currency? Prices are in the store's default currency, returned in currency. Stores with multi-currency markets may show another currency on regional sub-paths; pass the regional URL (for example https://store.com/en-ca/collections/all).

Is inventory quantity included? The public feed only exposes in-stock / sold-out per variant (available), not quantities.

How big can a run be? Hundreds of thousands of records; the actor pages 250 products at a time.

Use cases

Competitor price monitoring, catalog migration and backups, dropshipping research, MAP compliance checks, marketplace feeds, product data for AI and analytics.


En espanol

Exporta el catalogo completo de cualquier tienda Shopify: titulo, marca, tipo, etiquetas, imagenes y todas las variantes (SKU, precio, precio anterior, disponibilidad, opciones, peso) mas la moneda. Pega un dominio, una URL de coleccion o de producto. Sin login ni API key. Modo cambios: compara con la corrida anterior (guardada en un almacen clave-valor con nombre) y entrega solo productos nuevos, eliminados o con cambios de precio/stock. Detecta sitios que no son Shopify. Precio: US$0,50 por 1.000 registros.