Request a tool
All toolsGuidesMCP serverRequest a toolPlatformsCategories
Shopify Products Scraper icon

Shopify Products Scraper

Scrape any Shopify store's full catalog: product titles, prices, variants, SKUs, stock and images. No API key or login. Export to JSON, CSV or Notion.

5 from 2 reviews on Apify 207 runs on Apify $0.001 per product ($1 / 1,000)
Run this in the cloudRun on Apify →

E-commerce & Price Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust storeUrls, maxItems, notionConnector (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.001 per product = $1 per 1,000

You are charged forWhenPrice
Product returnedCharged per product returned.$0.001

Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-12, and they are what you are actually charged.

Inputs

FieldWhat it doesType
storeUrlsOne or more Shopify stores to scrape. Accepts a bare domain (shop.com), a full URL (https://shop.com), or any page on the store (https://shop.com/collections/sale) — each is normalized to the store origin. Each store's public /products.json endpoint is paginated.array
maxItemsMaximum number of products to scrape per store before moving on. Products are paged in batches of 250 until this cap or the catalog is exhausted.integer
notionConnectorOptional. Write each product as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default) — results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string

What you get

A structured dataset — each result includes fields like:

availablecreatedAtdescriptiondetailshandleimagesinputStorepriceMaxpriceMinproductIdproductTypepublishedAtstoretagstitlevendorurl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

19 ready-to-run use cases

Find Winning Dropshipping Products on Shopify

Spy on competitor Shopify stores and export fresh products, prices and images sorted by newest, so dropshippers spot winning products before they peak.

Monitor a Shopify New Arrivals Collection

Track a Shopify brand new-arrivals collection and capture every new product, price and image the moment it launches, in a dated launch log.

Check Reseller Shopify Stores for MAP Violations

MAP enforcement for brands: scan reseller Shopify stores for products priced below your minimum, with price and compare-at-price evidence to act on.

Shopify Catalog to Google Merchant Feed Export

A full Shopify catalog with titles, prices, availability and images, structured to map straight into a Google Shopping, Meta or affiliate product feed.

Shopify Product Data for RAG & AI Shopping Agents

Any Shopify store becomes a clean, structured product dataset for RAG, embeddings and AI shopping agents: descriptions, variants, prices and images.

Track Sneaker Drops & Restocks on Shopify

Sneaker resellers watch footwear collections on Shopify boutiques like Kith and Bodega for new drops and back-in-stock restocks each run.

Audit a Shopify Competitor's Sale & Discount

How deep does a rival discount? Track their Shopify sale collection, compare price vs compare-at-price, and benchmark markdown depth and promo cadence.

Profile a DTC Shopify Brand's Catalog & Pricing

Catalog size, price tiers, category mix and vendors for any DTC Shopify brand. Competitive and due-diligence intel from a single full catalog pull.

Bulk Scrape Shopify Product Images & Alt Text

Every Shopify product image URL, alt text and dimensions from a store or collection, exported in bulk to build ad-creative libraries or image datasets.

Monitor Beauty Shopify Restocks & Sell-Outs

Which shades sold out or restocked on beauty Shopify stores like Rare Beauty and Kosas? Track stock by SKU and spot hype products by sell-out velocity.

Find Pricing Gaps Across Shopify Competitors

Compare one product category across several competitor Shopify stores at once. Pricing-gap analysis and margin benchmarks across 3+ rivals to reprice.

Track Wholesale & B2B Shopify Catalog Pricing

Supplier intel before you negotiate: scrape a wholesale or B2B Shopify catalog for every product, variant and price to benchmark assortment and cost.

Detect New Vendors & Brands on a Shopify Store

Which brands did a multi-brand Shopify retailer just stock? Track the vendor field across new products to surface fresh wholesale and stocking leads.

Mine Shopify Product Tags for Ecommerce SEO

Product tags, types and titles from a competitor's Shopify catalog, mapped for keyword and taxonomy gaps to fuel ecommerce SEO and merchandising.

Build a Multi-Store Shopify Price History Set

Scheduled price and availability snapshots across several Shopify brands build a timestamped price-history dataset for pricing models and dashboards.

Scrape Gymshark's Full Shopify Product Catalog

Every Gymshark product with title, price range, variants, vendor and images, pulled straight from the public Shopify products.json feed into a dataset.

Compare Allbirds & Rothy's Shopify Catalogs

Two competing Shopify stores scraped at once, with Allbirds and Rothy's products, prices and tags lined up side by side for fast catalog comparison.

Monitor a Shopify Competitor's Prices & Stock

Scheduled runs against a rival Shopify store catch new SKUs, price changes and out-of-stock items, so you can react to competitor moves the same day.

Scrape Shopify Product Variants and SKUs

Point it at any Shopify store page and get the full catalog with every variant, option and SKU broken out per product, ready for export to CSV or JSON.

Related tools in E-commerce & Price Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Structured Product Price & Stock Monitor — JSON-LD / Shopify iconE-commerce & Price Tools

Structured Product Price & Stock Monitor — JSON-LD / Shopify

Track product price and stock from a store's own JSON-LD/Shopify data. Get price-drop and restock events plus Slack/Discord alerts. No API key.

4 use cases

eBay Sold Listings Scraper iconE-commerce & Price Tools

eBay Sold Listings Scraper

Get eBay sold and completed listings with sale price, shipping, sold date and condition. 9 marketplaces, no eBay API key. $0.70 per 1,000 listings.

Ready to run — no setup

1688 Wholesale Scraper iconE-commerce & Price Tools

1688 Wholesale Scraper

Scrape 1688.com wholesale listings: product ID, title, unit price, quantity price tiers, minimum order quantity, supplier company, sales counts.

Ready to run — no setup

Alibaba 1688 Supplier Ratings Scraper iconE-commerce & Price Tools

Alibaba 1688 Supplier Ratings Scraper

Scrape 1688.com supplier ratings: composite score, five sub-scores, repeat-buyer rate, years on platform, factory vs trader, audits, location.

Ready to run — no setup

Alibaba.com Scraper iconE-commerce & Price Tools

Alibaba.com Scraper

Extract Alibaba.com products without an account: price ranges, quantity price tiers, MOQ, supplier name, country, years, verified status, ratings and images.

Ready to run — no setup

AliExpress Products Scraper iconE-commerce & Price Tools

AliExpress Products Scraper

Extract public AliExpress product pages and direct search cards with product IDs, prices, ratings, reviews, orders, stores and images.

Ready to run — no setup

See all E-commerce & Price Tools →

Shopify Products Scraper

Scrape the entire product catalog of any Shopify store — no API key, no login, no anti-bot. Every Shopify storefront exposes a public /products.json endpoint; this actor paginates it and returns one clean, flat row per product.

Point it at a competitor, a brand you resell, or your own store, and get structured data you can drop straight into a spreadsheet or feed.

What you get per product

store, productId, title, handle, url (canonical /products/{handle} link), vendor, productType, tags[], description (HTML stripped to plain text), createdAt, publishedAt, priceMin, priceMax, available (any variant in stock), variantCount, variants[] (title, sku, price, compareAtPrice, available), and images[] (URLs).

Input

FieldNotes
storeUrlsOne or more stores. Bare domain (shop.com), full URL, or any store page (/collections/x) — each is normalized to the origin.
maxItemsMax products per store (default 1000). Paged 250 at a time until the cap or the catalog ends.
proxyConfigurationOptional, off by default. The endpoint is public with no anti-bot, so no proxy is needed. Only enable one if you hit IP rate limits on very large catalogs.

Output

One dataset row per product, deduped by productId within each store. Each charged product is ok: true.

If a URL is not a Shopify store (no /products.json, returns HTML or 404), the actor emits a single clean diagnostic row (errorCode: "NOT_SHOPIFY") for that store and moves on — it never crashes, and it never charges for it. Empty catalogs return NO_RESULTS; bad input returns BAD_INPUT.

Example

{ "storeUrls": ["https://www.gymshark.com", "https://www.allbirds.com"], "maxItems": 500 }

Pricing

$1.00 per 1,000 products ($0.001 each), with no run-start fee. Flat rate — no volume tiers, no plan gates — and you are charged only for products actually returned.

You are charged once per product row (ok: true). Diagnostic rows (NOT_SHOPIFY, NO_RESULTS, BAD_INPUT, network/block errors) are ok: false and are never charged, so pointing the actor at a list of domains where half turn out not to be Shopify only bills you for the half that are. With no run-start fee, a daily catalog refresh of one store costs the same per product as a single bulk sweep of fifty.

Notes

  • Shopify caps /products.json at 250 products per page; the actor handles pagination automatically.
  • Only published products appear in /products.json — unpublished/draft products are not exposed by Shopify.
  • inventory_quantity is intentionally not in the public feed; per-variant stock is reported as the boolean available.
  • Some stores password-protect or disable the JSON endpoint; those come back as NOT_SHOPIFY rather than failing the run.
  • Most fields mirror Shopify's feed directly, so a few can be null when the store omits them: title, handle, url, vendor, productType, and priceMin/priceMax (null when a product has no priced variants). tags, variants, and images are always arrays (possibly empty).