Shopify Products Scraper - $1.00/1k, Full Catalog
Pricing
$1.00 / 1,000 product returneds
Shopify Products Scraper - $1.00/1k, Full Catalog
Rip any Shopify store's entire catalog in one run. Every product with title, URL, vendor, type, tags, description, min/max price, availability, full variant list with SKUs and all image URLs. No API key, no monthly rental. $1.00 per 1,000 products, no run-start fee.
Pricing
$1.00 / 1,000 product returneds
Rating
5.0
(2)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
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 }
Pricing
$1.00 per 1,000 products ($0.001 each), with no run-start fee. Flat rate — no volume tiers, no plan gates — and you are charged only for products actually returned.
You are charged once per product row (ok: true). Diagnostic rows (NOT_SHOPIFY, NO_RESULTS, BAD_INPUT, network/block errors) are ok: false and are never charged, so pointing the actor at a list of domains where half turn out not to be Shopify only bills you for the half that are. With no run-start fee, a daily catalog refresh of one store costs the same per product as a single bulk sweep of fifty.
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).