Shopify Product Scraper
Pricing
from $3.00 / 1,000 product scrapeds
Shopify Product Scraper
Scrape Shopify store products via the public products.json API. Fast HTTP-only extraction of prices, variants, images, and availability for competitor research.
Pricing
from $3.00 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
Harsh
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape Shopify store products via the public products.json API. Fast, HTTP-only product data extraction for competitor research, price monitoring, catalog analysis, and dropshipping product discovery.
No browser required — this Actor fetches structured JSON directly from Shopify storefronts and collections, making it one of the fastest ways to extract product catalogs from Shopify stores.
Features
- Scrape full store catalogs or individual collections
- HTTP-only requests — no headless browser overhead
- Automatic pagination (up to 250 products per page)
- Variant details: SKU, price, compare-at price, availability, options
- Product images, tags, vendor, and product type
- Store currency detection via Shopify
cart.js - Graceful fallback from collection to store-wide scrape on 404
- Multi-store support in a single run
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
storeUrls | string[] | Yes | — | Shopify store URLs (https://store.myshopify.com) or collection URLs (https://store.com/collections/sale) |
maxProducts | integer | No | 250 | Maximum products to scrape per store URL |
includeVariants | boolean | No | true | Include full variant details for each product |
Example input
{"storeUrls": ["https://www.allbirds.com","https://kyliecosmetics.com/collections/lips"],"maxProducts": 100,"includeVariants": true}
Output
Each product is saved as one dataset item:
| Field | Type | Description |
|---|---|---|
title | string | Product title |
handle | string | URL slug / product handle |
vendor | string | Product vendor / brand |
productType | string | Shopify product type |
tags | string[] | Product tags |
price | number | Primary variant price |
compareAtPrice | number | Compare-at price (if set) |
currency | string | Store currency (e.g. USD) |
available | boolean | Whether any variant is in stock |
variantsCount | number | Number of variants |
variants | object[] | Variant details (when includeVariants is true) |
images | string[] | Product image URLs |
url | string | Canonical product page URL |
scrapedAt | string | ISO timestamp of extraction |
How it works
- Parses each input URL to detect store vs. collection endpoints
- Resolves store currency from
/cart.js - Fetches
GET /products.json?limit=250&page=N(or collection equivalent) - Paginates until
maxProductsis reached or no more products are returned - Normalizes product and variant fields and pushes results to the dataset
Run locally
$apify run
Set input in storage/key_value_stores/default/INPUT.json or pass via the Apify CLI.
Deploy
apify loginapify push
Use cases
- Competitor research — Monitor rival Shopify catalogs, pricing, and new launches
- Dropshipping — Discover products, variants, and images from supplier stores
- Price tracking — Track
priceandcompareAtPriceover scheduled runs - Catalog migration — Export structured product data for analysis or import pipelines
- Market intelligence — Analyze vendors, tags, and product types across niches
Limitations
- Only works on Shopify stores that expose the public
products.jsonendpoint (most standard Shopify themes do) - Some stores may rate-limit or block automated requests
- Currency is inferred from the store cart endpoint and may be
nullon restricted stores - Collection scraping falls back to store-wide scrape if the collection endpoint returns 404
Related keywords
Shopify scraper, Shopify product extractor, ecommerce scraping, competitor price monitoring, dropshipping product finder, Shopify API, products.json, catalog export, Apify Actor