Shopify Store Catalog Scraper
Pricing
from $1.00 / 1,000 results
Shopify Store Catalog Scraper
Scrape the full public product catalog of any Shopify store. Returns product id, handle, title, URL, vendor, type, tags, images, price, sale and stock status, plus the complete variant list with SKUs. Handles headless Hydrogen storefronts automatically.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Crikit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape the full product catalog of any Shopify store. This Shopify scraper returns product ID, handle, title, URL, vendor, product type, tags, images, price range, compare-at price, sale and stock status, and the complete variant list with SKUs — for any store running on Shopify.
No Shopify API key, no login, and no headless browser. Results land in a structured dataset you can export to JSON, CSV, Excel, or XML, or pull straight from the Apify API.
What is Shopify Store Catalog Scraper?
Shopify Store Catalog Scraper is an Apify Actor that extracts complete public product catalogs from Shopify and returns them as clean, structured records. It handles headless Hydrogen storefronts as well as classic themes, so modern custom-built Shopify sites that defeat generic scrapers still enumerate cleanly.
What data can this Shopify scraper extract?
Every run writes one row per product. The full schema carries 32 fields; the most-used ones are below.
| Field | Type | Description |
|---|---|---|
store | string | Hostname of the store as requested in the input, for example gymshark.com. |
storeName | string | Merchant name reported by the store, for example Gymshark US. Null when the store does not publish it. |
sourceDomain | string | Host that actually served the catalog. Differs from Store when a headless storefront was resolved to its... |
collection | string | Collection handle the product was scraped from, or null when the whole catalog was scraped. |
productId | number | Shopify numeric product id. Stable across runs and the natural key for joining or deduplicating. |
handle | string | URL slug of the product, for example vital-seamless-leggings. |
title | string | Product title as shown on the storefront. |
url | string | Canonical product page URL on the store. |
vendor | string | Brand or vendor assigned to the product by the merchant. |
productType | string | Merchant product type, for example Shoes or Accessories. |
tags | array | Merchant tags on the product, often used for internal merchandising. |
currency | string | ISO currency code the store prices in, read from the store rather than assumed. Null when the store does not... |
priceMin | number | Lowest variant price on the product. |
priceMax | number | Highest variant price on the product. Equal to Price (min) when all variants cost the same. |
compareAtPrice | number | Highest compare-at price across variants, which is the pre-discount price when the product is on sale. |
onSale | boolean | True when the compare-at price is above the lowest current price. |
discountPercent | number | Discount from compare-at price to the lowest current price, rounded to a whole percent. Null when not on sale. |
available | boolean | True when at least one variant is purchasable. |
fullyOutOfStock | boolean | True when the product has variants and none of them are purchasable. |
variantCount | number | Total number of variants on the product. |
availableVariantCount | number | Number of variants currently purchasable. Use with Variants to measure size or colour stockouts. |
skus | array | Every non-empty SKU across the product's variants. |
See the Output tab in Apify Console for all 32 fields.
How to scrape Shopify store catalogs
- Open Shopify Store Catalog Scraper and click Try for free.
- Add store domains or URLs to
storeUrls. - Optionally target a single
collectioninstead of the whole catalog. - Turn on
includeVariantsfor SKU-level rows andincludeDescriptionfor full copy. - Set
maxProductsPerStoreto bound each store. - Click Start and watch rows appear live in the Output tab.
- Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.
Shopify Store Catalog Scraper input options
| Input | Type | What it does | Default |
|---|---|---|---|
storeUrls | array | One or more Shopify stores to scrape, one per line. Accepts a bare hostname (gymshark.com), a full URL... | yes |
collection | string | Scrape only one collection instead of the whole catalog. Use the handle from the collection URL: for... | |
maxProductsPerStore | integer | Cap the number of products returned for each store independently. Scraping 3 stores with a cap of 100 returns up to... | 100 |
includeVariants | boolean | Include the full variant list on each product, with variant id, title, SKU, price, compare-at price, per-variant... | true |
includeDescription | boolean | Include the product description as plain text, converted from the store's HTML. Turn off to reduce dataset size... | true |
Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.
Example output
{"storeUrls": ["https://gymshark.com", "allbirds.com"],"maxProductsPerStore": 500,"includeVariants": true}
How much does it cost to scrape Shopify?
This Actor runs on pay per result pricing: $0.001 per product ($1 per 1,000). A one-time start fee of $0.00005 applies per run.
| Results | Approximate cost |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |
You pay for rows you actually receive, so a search that returns nothing costs nothing beyond the start fee. Every Apify account includes free monthly usage credit, so you can trial Shopify Store Catalog Scraper at no cost.
What can you build with Shopify data?
Analyse a competitor's entire catalog
Every product, variant, price, and tag from a competitor's store in one run — the complete picture of how they structure and price their range.
Monitor competitor pricing and stock-outs
available and fullyOutOfStock on a schedule show you what is selling out, which is the clearest public signal of what is working for them.
Build a dropshipping or affiliate product feed
SKUs, images, prices, and descriptions arrive in a shape that maps directly onto a product feed.
Research a niche across many brands
Run a list of stores in one vertical to see how the whole category prices, tags, and merchandises.
Audit your own store's public data
Confirm exactly what your storefront exposes publicly, including variants you may have thought were hidden.
Shopify scraping tips and limits
- Any store on Shopify works — you do not need permission or an API key, because this reads the public storefront that Shopify serves to every visitor.
includeVariantsmultiplies row count by the number of variants per product. Leave it off for a catalog census and turn it on when you need SKU detail.compareAtPriceagainstpriceMinis how you detect genuine discounting rather than permanent fake sale pricing.- Collections are the efficient way to scrape one category from a very large store.
Integrations and automation
Run Shopify Store Catalog Scraper on a schedule to keep a Shopify dataset fresh, or trigger it from your own stack through the Apify API and the official JavaScript and Python clients. Native integrations push results into Google Sheets, Slack, Airtable, Zapier, Make, GitHub, or any webhook endpoint. The Actor also works as an MCP tool, so an AI agent can call it directly.
Related scrapers
| Actor | What it does |
|---|---|
| Etsy Scraper - Listings, Shops & Search Results | Etsy shops and listings for handmade and vintage. |
| Amazon Product Scraper | Amazon catalog with offers and reviews. |
| eBay Product & Sold Scraper | eBay sold-price history for resale benchmarking. |
| Google Shopping Scraper | Where these products rank in Google Shopping. |
Frequently asked questions
How do I know if a site runs on Shopify?
Most Shopify stores expose a /products.json endpoint and Shopify-specific markup. If this Actor returns products for the domain, it is on Shopify.
Can I scrape a Hydrogen or headless Shopify store?
Yes. Headless Hydrogen storefronts are handled explicitly, which is where generic catalog scrapers usually fail.
Do I need a Shopify API key?
No. Shopify Store Catalog Scraper reads publicly available Shopify pages and endpoints directly, so there is no key to obtain, no OAuth app to register, and no account to connect.
Can I export Shopify data to CSV, Excel, or Google Sheets?
Yes. Every run stores results in an Apify dataset that exports to JSON, JSONL, CSV, Excel, XML, or HTML with one click, and the Google Sheets integration writes rows straight into a spreadsheet.
Can I run Shopify Store Catalog Scraper on a schedule?
Yes. Apify schedules run the Actor hourly, daily, weekly, or on any cron expression, and webhooks can notify your systems the moment a run finishes.
Is it legal to scrape Shopify?
Scraping publicly available data is broadly lawful in the US and EU, but the answer depends on what you collect and how you use it. This Actor is built to gather public product catalog information a Shopify store publishes publicly on its own storefront. Personal data carries extra obligations under GDPR and CCPA. Read Apify's guide on whether web scraping is legal and take your own legal advice for your use case.
Support and feedback
Found a bug, a missing field, or a Shopify page shape this Actor does not handle yet? Open an issue from the Issues tab on the Actor page. Feature requests and custom-scraper enquiries are welcome there too.