Shopify Product Scraper ๐๏ธ
Pricing
from $0.90 / 1,000 results
Shopify Product Scraper ๐๏ธ
Extract product data from any Shopify-powered store instantly. This universal tool is lightweight and optimized for speed, gathering prices, variants, and images with ease. To ensure maximum stability and avoid IP blocking, using residential proxies is highly recommended.
Pricing
from $0.90 / 1,000 results
Rating
4.6
(4)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
32
Total users
3
Monthly active users
3 days ago
Last modified
Categories
Share
What does Shopify Product Scraper do?
Shopify Product Scraper collects structured product and variant data from any public Shopify-powered store. Enter a store domain, collection URL, product URL, or homepage and receive normalized records with titles, prices, variants, stock status, images, product URLs, and catalog metadata.
Use it for competitor catalog monitoring, price and assortment research, product feed creation, ecommerce analysis, and scheduled data collection. The Actor identifies Shopify storefronts automatically, supports multiple stores in one run, removes empty values, and prevents duplicate output records.
Why use Shopify Product Scraper?
- Collect complete catalogs - Start with a store homepage or use the
allcollection to gather the available catalog. - Capture variant-level data - Keep separate size, color, or option records with their own price, SKU, availability, and variant URL.
- Monitor competitors - Compare product ranges, current prices, sale prices, brands, tags, and stock signals across stores.
- Build reliable datasets - Receive consistent field names, source metadata, timestamps, and cleaned values for reporting or data pipelines.
- Control the run - Limit saved records, pagination depth, variants, and out-of-stock products according to your workflow.
- Automate repeat collection - Schedule runs in Apify and send completed datasets to spreadsheets, databases, webhooks, or other services.
What data can you extract from Shopify stores?
Each saved item represents a product or one of its variants, depending on includeVariants.
| Field | Type | Description |
|---|---|---|
id | Number | Shopify product ID when available. |
variant_id | Number | Shopify variant ID when available. |
title | String | Product title. |
handle | String | Product handle used in the store URL. |
description | String | Clean text product description when published. |
vendor | String | Product brand or vendor. |
product_type | String | Product category or type. |
tags | Array | Product tags supplied by the store. |
variant_title | String | Store-provided variant title. |
variant_name | String | Human-readable option summary such as Size: 9 / Color: Black. |
sku | String | Variant SKU when available. |
barcode | String | Variant barcode when available. |
price | Number | Current variant price. |
compare_at_price | Number | Previous or comparison price when available. |
currency | String | Currency code for the price. |
available | Boolean | Whether the product or variant is available. |
inventory_quantity | Number | Inventory quantity when published by the store. |
inventory_policy | String | Store inventory policy when available. |
weight | Number | Variant weight when available. |
weight_unit | String | Unit used for the variant weight. |
requires_shipping | Boolean | Whether the variant requires shipping. |
images | Array | Product and variant image URLs. |
featured_image | String | Primary image URL. |
url | String | Product URL, including the variant ID when available. |
created_at | String | Product creation timestamp when available. |
updated_at | String | Last product update timestamp when available. |
published_at | String | Publication timestamp when available. |
store_url | String | Base URL of the source store. |
source_type | String | Source category used for the record. |
source_endpoint | String | Source URL used to collect the record. |
scraped_at | String | ISO timestamp for the collection time. |
How to use Shopify Product Scraper
- Open the Actor on Apify Store.
- Provide at least one
shopUrlor one entry instartUrls. - Set a result limit and optional collection, variant, stock, pagination, or proxy settings.
- Run the Actor and review the dataset preview.
- Download the results or connect the dataset to your preferred workflow.
The Actor can combine multiple starting URLs and store domains in one run. Non-Shopify domains are identified and skipped safely.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
shopUrl | String | No* | - | Shopify store URL or direct store website URL, such as https://www.allbirds.com or allbirds.com. |
startUrls | Array | No* | - | URLs to start from. Each item must contain a url and may be a homepage, collection page, or product page. |
collection | String | No | all | Collection handle used with shopUrl. Use all for the full catalog. |
maxProducts | Integer | No | 50 | Maximum number of output records to save. A variant record counts as one output record. |
maxPages | Integer | No | 999 | Maximum pagination depth for each catalog or collection source. |
includeVariants | Boolean | No | true | Save all variants when true; save only the first variant record for each product when false. |
includeOutOfStock | Boolean | No | true | Include products or variants that are marked out of stock. |
proxyConfiguration | Object | No | Not set | Optional Apify Proxy configuration for stores that need additional routing support. |
* Provide at least one of shopUrl or startUrls.
Usage Examples
Basic Store Catalog
Collect up to 50 records from a Shopify store:
{"shopUrl": "https://www.allbirds.com","maxProducts": 50}
Multiple Starting URLs
Collect products from a collection page and a specific product page in the same store:
{"startUrls": [{ "url": "https://www.allbirds.com/collections/all" },{ "url": "https://www.allbirds.com/products/allbirds-laces" }],"maxProducts": 80,"includeVariants": true}
Collection and Stock Filtering
Collect a selected collection while excluding products marked out of stock:
{"shopUrl": "https://www.tentree.com","collection": "mens","maxProducts": 120,"maxPages": 10,"includeOutOfStock": false}
Sample Output
The following example shows one variant-level dataset item:
{"id": 6930107236432,"variant_id": 40482722414672,"title": "Women's Tree Runner Go - Natural Black","handle": "womens-tree-runner-go-natural-black-blizzard","description": "Breathable everyday sneakers with lightweight comfort.","vendor": "Allbirds","product_type": "Shoes","tags": ["womens", "shoes"],"variant_title": "5","variant_name": "Size: 5","sku": "A10608W050","price": 75,"compare_at_price": 120,"currency": "USD","available": true,"requires_shipping": true,"images": ["https://cdn.shopify.com/s/files/1/1104/4168/files/tree-runner-go.png"],"featured_image": "https://cdn.shopify.com/s/files/1/1104/4168/files/tree-runner-go.png","url": "https://www.allbirds.com/products/womens-tree-runner-go-natural-black-blizzard?variant=40482722414672","created_at": "2024-02-09T02:48:11.000Z","updated_at": "2026-03-12T06:09:05.000Z","published_at": "2026-03-12T00:34:15.000Z","store_url": "https://www.allbirds.com","source_type": "store_products_json","source_endpoint": "https://www.allbirds.com/products.json?limit=250&page=1","scraped_at": "2026-08-03T10:30:00.000Z"}
Tips for Best Results
- Use canonical URLs - Start with the store homepage, a public collection URL, or a public product URL from the target domain.
- Test with a small limit - Begin with 20 to 50 records before increasing
maxProductsormaxPages. - Plan for variants - Set
includeVariantstotruefor size and color analysis. Remember that each saved variant uses one result slot. - Filter stock when needed - Set
includeOutOfStocktofalsefor current availability lists and product feeds. - Use proxy settings selectively - Add
proxyConfigurationwhen a store needs additional routing support, then validate the dataset before scheduling larger runs. - Review source coverage - Some stores do not publish inventory quantities, barcodes, descriptions, or timestamps. Missing values reflect the source catalog and are omitted from the item.
Integrations and Export Formats
- Google Sheets - Export product catalogs for pricing and assortment analysis.
- Airtable - Build searchable product and variant databases.
- Webhooks - Send completed run notifications and dataset references to downstream services.
- Make or Zapier - Trigger no-code workflows from new catalog runs.
- Apify API - Read datasets programmatically from your applications or scheduled jobs.
Datasets can be downloaded as JSON, CSV, Excel, XML, and other formats supported by Apify.
Frequently Asked Questions
Can I use a normal website URL instead of a Shopify subdomain?
Yes. Use a direct store URL such as https://www.allbirds.com or allbirds.com. The Actor checks the domain and identifies whether it is a Shopify storefront.
Can I use collection and product URLs?
Yes. Add homepage, collection, and product URLs to startUrls. The Actor groups URLs by store and collects the catalog or selected pages available from those inputs.
Does maxProducts count products or variants?
It counts output records. When includeVariants is true, each saved variant uses one record slot, so a product with many variants can use several slots.
Can I collect only available products?
Yes. Set includeOutOfStock to false to omit products or variants marked as unavailable.
What happens with a non-Shopify website?
The Actor skips domains it cannot identify as Shopify storefronts and continues processing other valid stores in the run.
Can I run the Actor on a schedule?
Yes. Create an Apify schedule to refresh a catalog hourly, daily, weekly, or at another interval supported by your workflow.
Why is a field missing from an item?
Some stores do not publish every catalog field. The Actor removes null and empty values, so a missing field usually means the source did not provide it for that product or variant.
Is it legal to collect Shopify product data?
Public data collection may be allowed in some situations, but you are responsible for complying with the store's terms, applicable laws, privacy requirements, and reasonable request limits.
Related Actors
For additional ecommerce catalog and pricing workflows from the same developer profile, see:
- Asos Product Scraper - Collect fashion product data, prices, images, and catalog details from ASOS.
- Namshi Product Scraper - Collect product listings, pricing, discounts, ratings, and stock signals from Namshi.
- Trendyol Product Scraper - Extract product, merchant, pricing, rating, review, and image data from Trendyol search results.
- Otto.de Scraper - Gather product prices, ratings, availability, images, and URLs from Otto.de.
Support
For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is intended for legitimate collection of publicly available Shopify storefront data. Users are responsible for respecting each store's terms of service, applicable laws, privacy rules, and request limits. Do not use the output to collect private information or to disrupt target websites.