Shopify & DTC & Quince Product, Prices, Discounts & Reviews avatar

Shopify & DTC & Quince Product, Prices, Discounts & Reviews

Pricing

from $5.00 / 1,000 product results

Go to Apify Store
Shopify & DTC & Quince Product, Prices, Discounts & Reviews

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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

How the DTC & Shopify Product Scraper 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, retailPrice and a pre-computed discountPct — 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 searchTerms keyword, 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 maxItems cap so a run never collects (or charges) more than you asked for.

🎯 Use cases

You are…Use it to…
Pricing / competitive intelligenceTrack competitor selling vs. retail prices and discount cadence across DTC brands
Affiliate & comparison sitesPull clean product metadata, hero images, prices and ratings into your feed
E-commerce & resellersSync catalogs, monitor stock and price changes, align listings
Market & investment researchUse DTC catalog breadth and discount behaviour as alternative data
Brand & merchandising teamsBenchmark assortment, newness and markdown depth against peers
Deal / markdown monitorsWatch 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):

InputExampleWhat you get
Store domain / homepageeverlane.comThe store's whole catalog
Category / collection URLhttps://www.allbirds.com/collections/mensEvery product in that category
Product URLhttps://www.quince.com/products/{slug}That single product
Brand keyquince, everlane, allbirds, skims, mejuri, gymsharkThe 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

  1. Classify — each startUrls entry is resolved to a store and tagged as catalog / category / product / search.
  2. Detect platform — Shopify (/products.json), Quince (Algolia), or generic JSON-LD — automatically.
  3. Fetch — pure HTTP with a Chrome-131 TLS fingerprint and residential proxy; catalog and search paginate until empty or maxItems.
  4. Normalize — every source maps to one identical product row, with discountPct computed from selling vs. retail.
  5. (Optional) enrich reviews — when enabled, the product page's JSON-LD rating/reviews are merged in.
  6. Push — one row per product to the dataset (JSON or CSV), deduped by product URL.

⚙️ Input parameters

FieldTypeDescription
startUrlsarrayStore domains, category URLs, product URLs, or brand keys — mixed freely.
searchTermsarrayOptional keywords, searched against every store in startUrls.
enrichReviewsbooleanFetch rating/reviews from product-page JSON-LD (best-effort, off by default).
countrystringRegion hint for region-aware stores (default US).
maxItemsintegerHard cap on products collected (and billed). Default 1000.
maxConcurrencyintegerStores/jobs processed in parallel. Default 10.
proxyobjectProxy 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

GroupFields
Identitybrand, productTitle, productId, handle, productUrl, storeDomain
PricingsellingPrice, retailPrice, discountPct (auto), currency
AvailabilityinStock
MediaprimaryImage, images[]
VariantsoptionNames[], variants[] (variantId, sku, options, price, retailPrice, available, image)
ReviewsaverageRating, reviewCount, recentReviews[] (when available)
CategorisationproductType, tags[]
Provenanceplatform, 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