Shopify Scraper
Pricing
$19.99/month + usage
Shopify Scraper
ποΈ Shopify Scraper extracts products, prices, variants, inventory, images, collections & metadata from Shopify stores. β‘ Ideal for market research, price tracking, SEO, and lead gen. π Export CSV/JSON for automation. π Fast setup for ecommerce intelligence.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapeFlow
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Shopify Scraper
Shopify Scraper is a fast, structured Shopify data extractor that lets you scrape Shopify products, prices, variants, inventory status, images, collections, and metadata from public Shopify storefronts. It solves the pain of manual copy-paste and brittle scripts by automating bulk collection pages and product endpoints with a resilient proxy fallback. Built for marketers, developers, data analysts, and researchers, this Shopify scraper tool scales from single-product lookups to full-catalog, multi-store crawls β enabling market research, Shopify product export to CSV/JSON, and automation-ready feeds at scale.
What data / output can you get?
Below are real fields the actor outputs to the Apify dataset. During a run, it pushes individual product records and, at the end, a single summary object with run metadata and a complete products array.
| Data type | Description | Example value |
|---|---|---|
| scraped_at | UTC timestamp of when the run finished | "2026-04-12 08:15:30 UTC" |
| config.startUrls | Start URLs used in the run (store homepages, collections, or products) | ["https://store.com/", "https://store.com/collections/shoes"] |
| config.maxResults | Max products per URL (0 means no limit) | 100 |
| config.maxRecommendationsPerProduct | Requested recommendations count per product (stored for reference) | 0 |
| config.query | Optional search/filter term (stored for reference) | null |
| total_products | Total number of products collected in this run | 245 |
| products[].source.canonicalUrl | Canonical product URL | "https://store.com/products/blue-sneakers" |
| products[].title | Product title | "Blue Sneakers" |
| products[].brand | Brand/vendor name | "Acme Footwear" |
| products[].variants[].price.current | Current price in minor units (e.g., cents) | 7999 |
| products[].variants[].price.previous | Compare-at price in minor units | 9999 |
| products[].variants[].price.stockStatus | Stock status from variant availability | "InStock" |
| products[].medias[0].url.src | Image source URL for media item | "https://cdn.shopify.com/s/files/β¦/image1.jpg" |
Notes:
- Each product object also includes description, categories, tags, variants (id, title, sku, options, price), medias (with image metadata), and options (type with value objects).
- Results are stored in the Apify dataset. You can export to CSV or JSON for downstream use.
Key features
-
β‘ Bold-scale batch scraping Process multiple Shopify store homepages, collection pages, or direct product URLs in a single run, ideal for Shopify competitor product scraping and catalog aggregation.
-
π‘οΈ Automatic proxy fallback Starts without a proxy for speed; on blocking, automatically switches to datacenter and then residential proxies (with retries) to keep your Shopify scraping bot resilient.
-
π§± Structured product schema Clean product records with source, title, description, brand, categories, tags, variants (SKU, options, price, stockStatus), medias, and options β perfect for Shopify product data scraping.
-
π Variant- and price-aware Captures variant options with current/previous prices and availability states, making it a reliable Shopify price scraper and Shopify SKU and variant scraper.
-
π Concurrency and stability Async HTTP with concurrency control, retry delays, and collection pagination for performant crawls across many stores.
-
πΎ Easy exports Results land in an Apify dataset so you can export to CSV or JSON and build a Shopify product feed scraper pipeline fast.
-
π©βπ» Developer friendly Run on Apify, automate with API/webhooks, or connect to Make/Zapier/n8n for downstream workflows without maintaining infrastructure.
-
π§ Works across store entry points Crawl via store homepage (discover collections), direct collections, or product URLs for flexible Shopify store scraper strategies.
How to use Shopify Scraper - step by step
- Sign in to Apify and open the Apify Console.
- Go to Actors and select Shopify Scraper by scrapeflow.
- In the input, paste your Start URLs as a list of:
- Store homepages (e.g., https://store.com/)
- Collection pages (e.g., https://store.com/collections/shoes)
- Product pages (e.g., https://store.com/products/blue-sneakers)
- Optionally set:
- maxResults to limit products per URL (0 = no limit; default 100).
- query to store an internal search/filter note with your run.
- maxRecommendationsPerProduct (stored in output for reference; default 0).
- proxyConfiguration if you want to start with Apify Proxy. If left empty, the actor starts direct and only falls back to proxies when needed.
- Click Start to run. The log will show progress and proxy fallback events when applicable.
- During the run, the dataset will receive individual product items as they are found.
- At the end, the actor pushes a single summary object containing scraped_at, config, total_products, and a full products array.
- Export results from the runβs Dataset in CSV or JSON for your analysis pipeline.
Pro tip: Use the Apify API or webhooks to schedule, automate, and pipe Shopify product export to CSV/JSON into your BI stack or enrichment workflows.
Use cases
| Use case name | Description |
|---|---|
| Market research + price tracking | Monitor competitors and price changes by scraping Shopify products and extracting variant-level prices and stock status. |
| Catalog aggregation for feeds | Build a unified Shopify product feed scraper to export product data to CSV/JSON for PPC, SEO, or merchandising workflows. |
| Shopify inventory scraper for ops | Collect availability per variant to track stock levels and back-in-stock signals across multiple Shopify stores. |
| SEO enrichment for content teams | Extract titles, descriptions, tags, and categories to analyze keywords and optimize product pages at scale. |
| Shopify competitor product scraping | Compare SKUs, options, and pricing across competing storefronts to inform assortment strategy. |
| Data pipeline for analysts | Use Apify datasets and API to move structured product catalogs into analytics dashboards or warehouses. |
| Academic and trend research | Study categories and product metadata across Shopify stores for consumer trends and market dynamics. |
Why choose Shopify Scraper?
Shopify Scraper prioritizes precision, automation, and reliability for structured storefront extraction.
- π― Accurate, structured output: Product records include variants, pricing in minor units, and media metadata for clean analysis.
- π Scales to many stores: Handles bulk start URLs and paginated collections with async concurrency.
- π§° Developer access: Use Apifyβs dataset and API to plug results into your existing pipelines.
- π Ethical by design: Scrapes public Shopify endpoints only; no logins or private areas.
- π Resilient infrastructure: Automatic direct β datacenter β residential proxy fallback with retries for uptime under blocking.
- πΎ Ready for exports: Export CSV/JSON to support reporting, enrichment, and automation workflows.
- π§© More reliable than extensions: Server-side execution avoids the instability of browser extensions and manual copy-paste.
In short, itβs a production-ready Shopify store scraper built for consistent catalog extraction and automation.
Is it legal / ethical to use Shopify Scraper?
Yes β when done responsibly. This actor collects data from publicly available Shopify storefront endpoints only. It does not access private areas or require authentication.
Guidelines for compliant use:
- Collect public product information only and respect each websiteβs terms.
- Avoid personal data; focus on product metadata, pricing, and media.
- Ensure your usage complies with applicable regulations (e.g., GDPR, CCPA).
- Use scraped data responsibly and consult your legal team for edge cases.
Input parameters & output format
Example JSON input
{"startUrls": ["https://kith.com/","https://store.com/collections/shoes","https://store.com/products/blue-sneakers"],"query": "","maxResults": 100,"maxRecommendationsPerProduct": 0,"proxyConfiguration": {"useApifyProxy": true}}
Parameter reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| startUrls | array | Yes | β | Shopify store homepages, collection URLs, or product URLs. |
| query | string | No | "" | Optional search or filter term. Stored in the output config for your reference. |
| maxResults | integer | No | 100 | Maximum products to scrape per start URL. Set to 0 for no limit. |
| maxRecommendationsPerProduct | integer | No | 0 | How many related/recommended products to include per product (0β20). Set 0 to disable. |
| proxyConfiguration | object | No | β | Leave empty to start with no proxy. If blocked, the actor tries datacenter then residential automatically. |
Example JSON output (final summary object)
{"scraped_at": "2026-04-12 08:15:30 UTC","config": {"startUrls": ["https://kith.com/","https://store.com/collections/shoes"],"maxResults": 100,"maxRecommendationsPerProduct": 0,"query": null},"total_products": 2,"products": [{"source": {"id": "1234567890","canonicalUrl": "https://store.com/products/blue-sneakers","retailer": "store.com","language": "en","currency": "USD","createdUTC": "2026-03-10T10:00:00-05:00","updatedUTC": "2026-04-01T09:00:00-05:00","publishedUTC": "2026-03-11T08:00:00-05:00"},"title": "Blue Sneakers","description": "<p>Lightweight everyday sneakers.</p>","brand": "Acme Footwear","categories": ["Shoes", "Sneakers"],"tags": ["Shoes", "Sneakers"],"variants": [{"id": "111","title": "Blue / 9","sku": "ACM-BLUE-9","options": ["Blue", "9"],"price": {"current": 7999,"previous": 9999,"stockStatus": "InStock"}}],"medias": [{"id": "0","type": "Image","url": {"id": 987654,"product_id": 1234567890,"position": 1,"created_at": "2026-03-10T10:00:00-05:00","updated_at": "2026-04-01T09:00:00-05:00","alt": "","width": 1200,"height": 1200,"src": "https://cdn.shopify.com/s/files/β¦/image1.jpg","variant_ids": []},"variantIds": [],"alt": ""}],"options": [{"type": "Color","values": [{ "id": "Blue", "name": "Blue" },{ "id": "Black", "name": "Black" }]}]}]}
Example JSON output (a product item pushed during the run)
{"source": {"id": "1234567890","canonicalUrl": "https://store.com/products/blue-sneakers","retailer": "store.com","language": "en","currency": "USD","createdUTC": "2026-03-10T10:00:00-05:00","updatedUTC": "2026-04-01T09:00:00-05:00","publishedUTC": "2026-03-11T08:00:00-05:00"},"title": "Blue Sneakers","description": "<p>Lightweight everyday sneakers.</p>","brand": "Acme Footwear","categories": ["Shoes", "Sneakers"],"tags": ["Shoes", "Sneakers"],"variants": [{"id": "111","title": "Blue / 9","sku": "ACM-BLUE-9","options": ["Blue", "9"],"price": {"current": 7999,"previous": 9999,"stockStatus": "InStock"}}],"medias": [{"id": "0","type": "Image","url": {"id": 987654,"product_id": 1234567890,"position": 1,"created_at": "2026-03-10T10:00:00-05:00","updated_at": "2026-04-01T09:00:00-05:00","alt": "","width": 1200,"height": 1200,"src": "https://cdn.shopify.com/s/files/β¦/image1.jpg","variant_ids": []},"variantIds": [],"alt": ""}],"options": [{"type": "Color","values": [{ "id": "Blue", "name": "Blue" },{ "id": "Black", "name": "Black" }]}]}
Notes:
- Some fields may be empty (e.g., compare-at price, tags, images) if the store doesnβt provide them. Currency defaults to "USD" if not present in the first variant.
- The dataset will contain a mix of product items and one final summary object. When exporting, you can filter by presence of scraped_at to isolate the summary or by presence of title to isolate products.
FAQ
Do I need to log in or provide cookies to scrape Shopify stores?
No. This actor scrapes public Shopify storefront endpoints and does not require login, cookies, or private access.
Can I scrape multiple stores and collections in one run?
Yes. Provide multiple startUrls (store homepages, collections, or product URLs) and the actor will process them in parallel with concurrency controls.
Does it capture variant-level pricing and availability?
Yes. Each variant includes price.current, price.previous, and stockStatus derived from the variantβs availability, making it suitable for Shopify price scraper and inventory analysis workflows.
What export formats are supported?
Results are stored in an Apify dataset that you can export to CSV or JSON for automation and reporting.
How does the proxy fallback work if a store blocks requests?
The actor starts without a proxy for speed. If it encounters blocking (e.g., 403/429/503), it switches to a datacenter proxy and, if needed, to a residential proxy with retries, staying on residential thereafter.
Is there a product limit per URL?
Yes. Use maxResults to control how many products to collect per start URL. Set 0 for no limit; the default is 100.
Can I integrate this with my data pipelines or Python scripts?
Yes. Run it on Apify and pull results via the Apify API or connect datasets to tools like Make/Zapier/n8n. This is a practical path for Shopify product export to CSV or JSON into your pipelines.
Is it legal to scrape Shopify data with this actor?
Yes, when done responsibly. The actor collects only public data. You are responsible for complying with each siteβs terms and applicable regulations (e.g., GDPR, CCPA).
Closing CTA / Final thoughts
Shopify Scraper is built for structured, scalable extraction of Shopify product catalogs. With resilient proxy fallback, variant-level pricing and stock, and clean exports, itβs ideal for marketers, developers, data analysts, and researchers. Use it to scrape Shopify products across multiple stores, export to CSV/JSON, and automate feeds with ease. Developers can orchestrate runs and fetch results via the Apify API to power analytics and enrichment pipelines. Start extracting smarter product insights and build your ecommerce intelligence stack with confidence.