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.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
storeUrls,maxItems,notionConnector(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Inputs
| Field | What it does | Type |
|---|---|---|
storeUrls | One 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/sa | array |
maxItems | Maximum 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 |
notionConnector | Optional. Write each product as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connecto | string |
notionParentId | Optional. 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 wo | string |
What you get
A structured dataset — each result includes fields like:
availablecreatedAtdescriptiondetailshandleimagesinputStorepriceMaxpriceMinproductIdproductTypepublishedAtstoretagsExport 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.
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
| Field | Notes |
|---|---|
storeUrls | One or more stores. Bare domain (shop.com), full URL, or any store page (/collections/x) — each is normalized to the origin. |
maxItems | Max products per store (default 1000). Paged 250 at a time until the cap or the catalog ends. |
proxyConfiguration | Optional, 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 }
Notes
- Shopify caps
/products.jsonat 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_quantityis intentionally not in the public feed; per-variant stock is reported as the booleanavailable.- Some stores password-protect or disable the JSON endpoint; those come back as
NOT_SHOPIFYrather than failing the run. - Most fields mirror Shopify's feed directly, so a few can be
nullwhen the store omits them:title,handle,url,vendor,productType, andpriceMin/priceMax(null when a product has no priced variants).tags,variants, andimagesare always arrays (possibly empty). - Pricing: pay-per-result — you are charged once per product row (
ok: true). Diagnostic rows (NOT_SHOPIFY,NO_RESULTS,BAD_INPUT, network/block errors) areok: falseand are never charged.