Shopify & DTC & Quince Product, Prices, Discounts & Reviews
Pricing
from $5.00 / 1,000 product results
Shopify & DTC & Quince Product, Prices, Discounts & Reviews
Scrape any DTC or Shopify store — selling price, retail price, auto-calculated discount %, variants, images, ratings & reviews. Covers Quince, Everlane, Allbirds, SKIMS + thousands more by domain, category, keyword or product URL. JSON or CSV, pay per result
Pricing
from $5.00 / 1,000 product results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
DTC & Shopify Product Scraper
Turn any direct-to-consumer brand store into clean, structured product data — selling price, retail price, auto-calculated discount %, variants, hero images, ratings and reviews. One actor covers Shopify storefronts, Quince, and generic JSON-LD shops, with four ways in: whole-catalog, category/collection, keyword search, or direct product URLs. Pay per result, no monthly fee.
How it works

✨ Why use this scraper?
- One actor, the whole DTC long tail. Any Shopify store works with zero per-brand setup — Everlane, Allbirds, SKIMS, Mejuri, Gymshark and thousands more — plus a dedicated Quince adapter and a generic JSON-LD fallback for everything else.
- Discount % done for you. Every row carries
sellingPrice,retailPriceand a pre-computeddiscountPct— no spreadsheet formulas, no guessing which price is the sale price. - Four discovery modes, mixed freely. Drop a bare domain (whole catalog), a category URL, a
searchTermskeyword, a product URL, or a brand key — all in one run, each auto-classified per store. - Full variant + image detail. Size/colour options, per-variant SKU, price and availability, and the complete image gallery — not just the hero shot.
- No browser, no Cloudflare drama. Pure HTTP with a real Chrome TLS fingerprint (impit) clears stores that block naïve scrapers — including Aritzia and ssense — with residential proxy support and no paid unlocker.
- Pay per result. Billed per product row, with a strict
maxItemscap so a run never collects (or charges) more than you asked for.
🎯 Use cases
| You are… | Use it to… |
|---|---|
| Pricing / competitive intelligence | Track competitor selling vs. retail prices and discount cadence across DTC brands |
| Affiliate & comparison sites | Pull clean product metadata, hero images, prices and ratings into your feed |
| E-commerce & resellers | Sync catalogs, monitor stock and price changes, align listings |
| Market & investment research | Use DTC catalog breadth and discount behaviour as alternative data |
| Brand & merchandising teams | Benchmark assortment, newness and markdown depth against peers |
| Deal / markdown monitors | Watch active sales and price drops on a schedule |
📥 Supported inputs
Add any mix of the following to startUrls (each entry is auto-classified per store):
| Input | Example | What you get |
|---|---|---|
| Store domain / homepage | everlane.com | The store's whole catalog |
| Category / collection URL | https://www.allbirds.com/collections/mens | Every product in that category |
| Product URL | https://www.quince.com/products/{slug} | That single product |
| Brand key | quince, everlane, allbirds, skims, mejuri, gymshark | The brand's catalog |
Plus searchTerms — keyword search run against each store above (e.g. cashmere sweater, linen shirt).
Not supported (v1): category/keyword browsing on non-Shopify, non-Quince stores (for those, pass direct product URLs); checkout, account, or any logged-in data.
🔄 How it works
- Classify — each
startUrlsentry is resolved to a store and tagged as catalog / category / product / search. - Detect platform — Shopify (
/products.json), Quince (Algolia), or generic JSON-LD — automatically. - Fetch — pure HTTP with a Chrome-131 TLS fingerprint and residential proxy; catalog and search paginate until empty or
maxItems. - Normalize — every source maps to one identical product row, with
discountPctcomputed from selling vs. retail. - (Optional) enrich reviews — when enabled, the product page's JSON-LD rating/reviews are merged in.
- Push — one row per product to the dataset (JSON or CSV), deduped by product URL.
⚙️ Input parameters
| Field | Type | Description |
|---|---|---|
startUrls | array | Store domains, category URLs, product URLs, or brand keys — mixed freely. |
searchTerms | array | Optional keywords, searched against every store in startUrls. |
enrichReviews | boolean | Fetch rating/reviews from product-page JSON-LD (best-effort, off by default). |
country | string | Region hint for region-aware stores (default US). |
maxItems | integer | Hard cap on products collected (and billed). Default 1000. |
maxConcurrency | integer | Stores/jobs processed in parallel. Default 10. |
proxy | object | Proxy configuration. Residential recommended (default). |
📊 Output overview
The dataset is one row per product, with the same schema regardless of which store or discovery mode produced it. Pricing is normalized (sellingPrice / retailPrice / discountPct), variants and images are nested arrays, and provenance (platform, discoveryMode, sourceUrl) tells you exactly how each product was found. Export as JSON or CSV.
📦 Output sample
A real row (Allbirds, on sale — discount auto-calculated):
{"type": "product","brand": "Allbirds","storeDomain": "allbirds.com","platform": "shopify","productId": "7134115037264","productTitle": "Women's Tree Dasher Relay - Natural Black","productUrl": "https://www.allbirds.com/products/womens-tree-dasher-relay-natural-black-twilight-teal","productType": "Shoes","sellingPrice": 67,"retailPrice": 135,"discountPct": 50.4,"currency": "USD","inStock": false,"primaryImage": "https://cdn.shopify.com/s/files/1/1104/4168/files/A11468...png","images": ["https://cdn.shopify.com/...LEFT.png", "https://cdn.shopify.com/...BACK.png"],"optionNames": ["Size"],"variants": [{ "variantId": "41016739233872", "sku": "A11465W050", "title": "5","options": { "Size": "5" }, "sellingPrice": 67, "retailPrice": 135, "available": false }],"averageRating": null,"reviewCount": null,"recentReviews": [],"discoveryMode": "catalog","sourceUrl": "allbirds.com","scrapedAt": "2026-06-23T20:34:40.900Z"}
🗂 Key output fields
| Group | Fields |
|---|---|
| Identity | brand, productTitle, productId, handle, productUrl, storeDomain |
| Pricing | sellingPrice, retailPrice, discountPct (auto), currency |
| Availability | inStock |
| Media | primaryImage, images[] |
| Variants | optionNames[], variants[] (variantId, sku, options, price, retailPrice, available, image) |
| Reviews | averageRating, reviewCount, recentReviews[] (when available) |
| Categorisation | productType, tags[] |
| Provenance | platform, discoveryMode, sourceUrl, scrapedAt |
❓ FAQ
Which stores work? Any Shopify storefront (the majority of DTC brands), Quince, and any store that exposes Product JSON-LD on its product pages. Pass a domain, category URL, product URL, or a known brand key.
How do I scrape a specific brand? Add its domain (e.g. everlane.com) for the whole catalog, a category URL for one section, or a product URL for a single item. Many popular brands also work by short key (quince, allbirds, …).
Does it capture discounts? Yes — sellingPrice, retailPrice and a pre-computed discountPct are on every row. No formula needed.
Can I get reviews and ratings? Turn on enrichReviews. Ratings/reviews are read from the product page's structured data (JSON-LD) where the store exposes it. Many DTC stores load reviews via a JavaScript widget (Yotpo, Okendo) that isn't in the HTML — for those, review fields are null.
Do I need a proxy? Shopify catalogs usually work without one. Residential proxy (the default) is recommended for stores with bot protection such as Quince. No paid CAPTCHA/Cloudflare unlocker is required.
💬 Support
Found a store that doesn't parse, or want a brand added to the quick-key registry? Open an issue on the actor's Issues tab with the URL you tried — most fixes are quick.
🛠 Additional services
Need a custom field, a scheduled price-monitoring pipeline, or a brand not yet covered? Reach out for a tailored build.
🔎 Explore more scrapers
This actor pairs well with marketplace and review scrapers for fuller competitive coverage across e-commerce.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Quince, Shopify, or any of the brands or stores it can access. All trademarks are the property of their respective owners.
The scraper accesses only publicly available product pages — no authenticated endpoints, accounts, or checkout data. Users are responsible for ensuring their use complies with each store's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.
SEO Keywords
dtc product scraper, shopify product scraper, shopify products.json scraper, quince scraper, quince product scraper, ecommerce product scraper, product price scraper, discount tracker, competitor price monitoring, apify shopify scraper, dtc brand data, product variants scraper, product reviews scraper, fashion product scraper, everlane scraper, allbirds scraper, skims scraper, gymshark scraper, retail pricing intelligence, product catalog export