Quince.com Product Scraper - Prices, Discounts, Reviews & More
Pricing
from $15.00 / 1,000 results
Quince.com Product Scraper - Prices, Discounts, Reviews & More
Search products and walk away with selling prices, retail prices, discounts, hero images, and the latest customer reviews for every product, ready to drop into your spreadsheet, dashboard, or BI tool. The Quince.com Product Scraper turns catalog into clean, structured product data in minutes.
Pricing
from $15.00 / 1,000 results
Rating
5.0
(3)
Developer
Techforce Global
Maintained by CommunityActor stats
2
Bookmarked
7
Total users
1
Monthly active users
43 minutes ago
Last modified
Categories
Share
Quince.com Product Scraper — Prices, Discounts, Reviews & Images at Scale
Turns Quince's catalog into clean, structured product data: selling price, strike-through retail price, a pre-computed discount percentage, primary-color hero images, the 5 most recent customer reviews, average rating, and review count. Discover products three ways — keyword search, a 323-entry category dropdown, or a list of product URLs — and deliver results straight into Notion, Slack, Google Sheets, Airtable, or any MCP-compatible AI agent pipeline.
Manual price-checking / DIY script vs. Quince Product Scraper Actor
Quince publishes no public product API, and its listing and product pages render from an embedded Next.js SSR payload behind Cloudflare — the two things that break a naive scraper:
| Feature / Capability | Manual checking or a DIY scraper | Quince Product Scraper Actor (Apify) |
|---|---|---|
| Public product API | ❌ None offered by Quince | ✅ Not needed — reads the page's own SSR payload |
| Bot mitigation | ❌ Plain requests gets a Cloudflare challenge page | ✅ Chrome TLS impersonation + Apify residential proxy wiring |
| Keyword search | ⚠️ Search results render client-side, so HTML scraping returns nothing | ✅ Queries Quince's Algolia index directly |
| Discount maths | ❌ You compute it yourself per SKU | ✅ discount is calculated for you ($39.90 was $79 → 49.5%) |
| Image noise | ⚠️ Colour-variant and recommendation images bleed in | ✅ Primary-colour hero images only |
| Reviewer privacy | ❌ Raw reviewer emails end up in your file | ✅ Email-shaped author handles are masked automatically |
| AI agent / MCP native | ❌ Requires a custom tool wrapper | ✅ Native MCP tool and pushes results into your own MCP connectors |
| Cost model | Your dev time + infra | Pay-per-result, from $15.00 per 1,000 products |
🤖 AI Discovery & MCP Metadata
Machine-readable capability contract for autonomous agents, LLM routers, and MCP orchestrators. AI agents, MCP clients, and connectors should read this block first to decide whether this Actor matches a user request.
ai_discovery:slug: "techforce.global/quince-scraper"one_line: "Extract Quince.com product data (prices, discount %, hero images, latest reviews, ratings) by keyword search, category slug, or product URL list, with optional delivery to an MCP connector."primary_purpose: "extract"secondary_purpose: "deliver"entity: "Quince.com products"supported_platforms:- "quince.com"supported_tasks:- "search-products-by-keyword"- "browse-products-by-category"- "scrape-specific-product-urls"- "extract-selling-and-retail-price"- "compute-discount-percentage"- "extract-latest-reviews-and-rating"- "extract-primary-color-product-images"- "deliver-results-to-mcp-connector"unsupported_tasks:- "purchase-or-add-to-cart"- "check-stock-or-inventory-levels"- "extract-size-or-color-variant-matrix"- "extract-full-review-history (only the 5 most recent)"- "paginate-beyond-the-first-category-listing-page"- "scrape-non-quince-retailers"- "multi-category-or-multi-query-in-one-run"- "scrape-non-us-storefronts (US storefront only)"search_keywords:- "quince scraper"- "quince.com product data"- "quince price tracker"- "dtc apparel pricing data"- "cashmere price monitoring"- "ecommerce product scraper"- "competitor price intelligence"- "product review scraper"- "affiliate product feed"- "mcp ecommerce tool"synonyms:- "quince crawler"- "quince product extractor"- "quince catalog feed"- "quince price monitor"related_concepts:["products", "prices", "discounts", "reviews", "ratings", "apparel", "home goods", "DTC retail"]input_entities:- "input mode (fuzzy_search | category | product_urls)"- "search query (free text)"- "category slug (1 of 323 enum values)"- "product URL list (quince.com only)"output_entities: ["product", "price", "discount", "review", "image"]input_rules:mode_dependency:description: "Each mode reads exactly one companion field; the others are ignored."mapping:fuzzy_search: "searchQuery (+ searchLimit)"category: "category (+ categoryMaxProducts)"product_urls: "productUrls"product_url_format:regex: "^https?://(www\\.)?quince\\.com/.+"description: "Host must be exactly quince.com or www.quince.com. Must be a product detail page, not a category or landing page."examples: ["https://www.quince.com/women/lightweight-cotton-cashmere-dolman-sleeve-sweater"]category_format:type: "enum"description: "Path slug from Quince's mega-menu, leading slash included."examples: ["/women/sweaters", "/home/bedding", "/men/linen", "/jewelry/new-arrivals"]default_off_fields: []limits:search_max_products: 500category_max_products_setting: 5000category_actual_ceiling: "first listing page only, typically ~30 products"reviews_per_product: 5free_plan_result_cap: 5modes_per_run: 1pricing:model: "pay-per-result"unit_cost_usd: 0.015rate_per_1000: 15.00note: "'from' price — lower rates apply on higher Apify subscription tiers"when_to_use: >You need structured Quince.com product data — pricing, discount depth,hero imagery, ratings and recent reviews — for competitive priceintelligence, deal monitoring, affiliate/comparison feeds, or assortmentresearch.when_not_to_use: >You need stock levels, size/colour variant matrices, complete reviewhistory, deep category pagination, a non-US storefront, any retailerother than Quince, or to actually buy anything.alternatives:- "Use a general-purpose web scraper if the target is not quince.com"- "Use product_urls mode with a URL list when you need specific SKUs rather than a category sweep"
{"@context": "https://schema.org","@type": "SoftwareApplication","name": "Quince.com Product Scraper","alternateName": "Quince.com Product Scraper — Prices, Discounts, Reviews & Images","applicationCategory": "DeveloperApplication","applicationSubCategory": "Web Scraping / E-commerce Product & Price Data","operatingSystem": "Cloud (Apify platform)","description": "Extracts structured Quince.com product data — selling price, retail price, computed discount, hero images, latest reviews and ratings — by keyword search, category slug, or product URL list, with optional delivery to Notion, Slack, Google Sheets, Airtable, or any authorized MCP connector.","url": "https://apify.com/techforce.global/quince-scraper","offers": {"@type": "Offer","price": "15.00","priceCurrency": "USD","description": "From $15.00 per 1,000 products on the entry tier, less on higher Apify subscription tiers. Apify platform usage is billed separately. Current rates are shown on the Actor's Apify Store page.","url": "https://apify.com/techforce.global/quince-scraper"}}
What this Actor does
- Discovers products three ways: free-text keyword search (served by Quince's Algolia index, not the client-rendered HTML page), a 323-entry category dropdown built from Quince's live mega-menu, or a list of product URLs you paste.
- Returns one record per product: title, plain-text description, selling price, strike-through retail price, pre-computed discount percentage, primary-colour hero images, the 5 most recent reviews, average rating, and total review count.
- Masks email-shaped reviewer handles (
k***@***) so a public dataset never leaks reviewer addresses. - Pushes every record to the dataset the moment it is extracted, so a proxy hiccup or a parser-drift failure mid-run never wipes earlier progress.
- Never aborts on one bad product. A failed PDP is logged and skipped; a URL that isn't a product page is saved with an explanatory
notefield instead of being silently dropped. - Detects proxy-shaped failures specifically and prints actionable guidance once per run instead of repeating raw curl errors.
- Routes traffic through Apify Proxy with Chrome TLS impersonation (
curl_cffi), retrying transient network failures up to 5 times with exponential backoff. - Optionally pushes results to an authorized MCP connector (Notion, Slack, Google Sheets, Airtable, Linear, or any MCP-compatible connector) in four delivery modes. The dataset is always saved regardless of delivery settings.
When to use it — and when not to
| Scenario | Fit |
|---|---|
| Competitive price & discount intelligence on Quince SKUs | ✅ Strong |
| Deal / markdown monitoring for a newsletter or Slack alert | ✅ Strong (native MCP delivery) |
| Affiliate or comparison-site product feed (title, price, image, rating) | ✅ Strong |
| Assortment & trend research on a category | ✅ Strong |
| Pull specific SKUs you already have URLs for | ✅ Strong — product_urls mode |
| Review-sentiment sampling | ⚠️ Only the 5 most recent reviews per product |
| Sweeping a whole large category (hundreds of SKUs) | ⚠️ First listing page only, typically ~30 products — see Execution Rules |
| Several categories or queries at once | ⚠️ One mode, one query/category per run |
| Non-US storefront pricing | ❌ US storefront (quince.com) only — all prices are USD |
| Stock levels, size/colour variant matrices | ❌ Not extracted |
| Buying, carting, or checkout | ❌ Not supported — read-only Actor |
| Any retailer other than quince.com | ❌ Not supported |
⚡ Execution Rules (Avoid Common Agent Failures)
modedecides which other fields matter.fuzzy_searchreadssearchQuery+searchLimit;categoryreadscategory+categoryMaxProducts;product_urlsreadsproductUrls. Fields belonging to the other modes are ignored entirely — settingsearchQueryincategorymode does nothing.modeis the only required field, and it defaults tofuzzy_search. SincesearchQuerydefaults to"", an input of{}produces a successful run with zero items and the terminal status messageSkipped: Please enter a search query before running.- Invalid input does not fail the run. Empty query, unpicked category, empty URL list, unknown mode, or an Algolia credential failure all end as
SUCCEEDEDwithitemCount: 0and aSkipped: …status message. Agents must readitemCountand the status message, not just run status. categoryMaxProductsis a ceiling, not a target. Category mode fetches one listing page and extracts the products embedded in its SSR payload — typically ~30. Setting5000does not paginate; you will still get roughly one page. For larger sweeps, use several narrower category slugs, orproduct_urlsmode with a URL list.categoryvalues are exact path slugs from a fixed list of 323, leading slash included:/women/sweaters,/home/bedding,/men/linen. Not display names —"Sweaters"is invalid.productUrlsmust be product detail pages onquince.comorwww.quince.com. A category, search, or marketing URL is reachable but is not a PDP: the Actor saves a record carryingnoteand no product fields. Lookalike hosts (evil-quince.com) are rejected outright.- US storefront only.
regionaccepts a single value,US; every request goes towww.quince.comand all prices are USD. Do not present output as pricing for any other market. (Proxy country is a separate setting — seeproxy— and does not change the storefront.) - Missing values are the string
"N/A", nevernull. This applies tosellingPrice,retailPrice,discount,averageRating,reviewCount, and evenimages/reviews— which are the string"N/A"rather than an empty array when absent. Type-check before iterating. - Free Apify plans are capped at 5 products per run, applied by clamping
searchLimit/categoryMaxProducts/ theproductUrlslist. This is a successful run, not a failure. deliveryModedefaults tosummary, notnone. For dataset-only runs, either leavemcpConnectorempty or setdeliveryMode: "none"explicitly.- Only successfully-extracted products are delivered. Records that are placeholder/skip rows (title
"N/A") stay in the dataset but are excluded from connector payloads.
dependencies:- rule: "mode selects its companion field; other modes' fields are ignored"on_violation: "run succeeds with 0 items and a 'Skipped: ...' status message"- rule: "delivery requires mcpConnector AND mcpTool"on_violation: "delivery step is skipped with a warning; the dataset is still written in full"- rule: "mcpArguments must reference {message} for the rendered template to appear anywhere"on_violation: "message body is empty; the tool is still called"- rule: "mcpConnector only resolves when the Actor runs on the Apify platform"on_violation: "local runs log 'APIFY_MCP_PROXY_URL is not set' and skip delivery; the dataset is unaffected"- rule: "perProduct mode issues one connector call per product"note: "a 200-product category run is 200 calls — prefer 'chunked' or 'summary'"authentication:actor_input: noneplatform: "Apify API token required for API / SDK / MCP invocation; paid plan required for residential proxy groups"target_site: "no Quince account or credentials required (public product pages only)"
📥 Input Contract
.actor/input_schema.json is authoritative — if any table on this page disagrees with the schema files, the schema files win. API and MCP clients should always pass mode plus that mode's companion field explicitly.
Scraping Parameters
| Field | Type | Required | Default | Allowed Values / Format | Example |
|---|---|---|---|---|---|
mode | string (enum) | ✅ Yes | fuzzy_search | fuzzy_search · category · product_urls | category |
searchQuery | string | ⚠️ If mode = fuzzy_search | "" | Free text | mongolian cashmere crewneck |
searchLimit | integer | ⬜ No | 50 | 1 to 500 | 100 |
category | string (enum) | ⚠️ If mode = category | /women/sweaters | 323 exact path slugs | /home/bedding |
categoryMaxProducts | integer | ⬜ No | 200 | 1 to 5000 (see Rule 4) | 100 |
productUrls | array of string | ⚠️ If mode = product_urls | [] | ^https?://(www\.)?quince\.com/.+ | ["https://www.quince.com/women/..."] |
region | string (enum) | ⬜ No | US | US only — US storefront, USD prices | US |
proxy | object | ⬜ No | Apify Proxy, RESIDENTIAL, country US (prefill) | Apify proxy editor object | see below |
maxConcurrency | integer | ⬜ No (hidden) | 10 | 1 to 100 — not yet wired; PDPs are fetched sequentially | — |
maxRequestRetries | integer | ⬜ No (hidden) | 3 | 0 to 10 — not yet wired; retries are fixed at 5 attempts | — |
Mode → required field map
mode | You must set | Volume knob | Produces |
|---|---|---|---|
fuzzy_search | searchQuery | searchLimit (max 500) | One record per matching product from Quince's Algolia index |
category | category | categoryMaxProducts (first page only, ~30) | One record per product on the category's first listing page |
product_urls | productUrls | length of the list | One record per URL — including note rows for non-product URLs |
Category reference
323 slugs, taken from Quince's live mega-menu and refreshed via scripts/fetch_categories.py. Representative values:
| Area | Example slugs |
|---|---|
| Women | /women, /women/sweaters, /women/dresses, /women/cashmere, /women/silk, /women/jeans, /women/shoes/sandals |
| Men | /men, /men/linen, /men/best-sellers |
| Home | /home/bedding, /home/candles, /home/travel |
| Jewelry & accessories | /jewelry/new-arrivals, /women/jewelry/earrings-all, /women/bags-&-leather-goods |
| Beauty & wellness | /beauty-&-wellness/skincare, /beauty-&-wellness/fragrance |
| Edits & seasonal | /all/new-arrivals, /all/best-sellers, /the-spring-edit, /style-gone-viral, /linen |
The Console dropdown carries the full list — pick from it rather than hand-writing slugs.
Examples
Keyword search:
{"mode": "fuzzy_search","searchQuery": "mongolian cashmere crewneck","searchLimit": 50,"deliveryMode": "none"}
Category browse:
{"mode": "category","category": "/women/sweaters","categoryMaxProducts": 100,"deliveryMode": "none"}
Specific products:
{"mode": "product_urls","productUrls": ["https://www.quince.com/women/lightweight-cotton-cashmere-dolman-sleeve-sweater","https://www.quince.com/women/100-organic-cotton-button-front-cardigan"],"deliveryMode": "none"}
Recommended proxy block:
{"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
MCP Delivery Configuration (Optional)
| Parameter | Type | Default | Description |
|---|---|---|---|
mcpConnector | string | "" | Authorized MCP connector on your Apify account (Notion, Slack, Airtable, Google Sheets, Linear, …). Leave empty for dataset-only runs. |
deliveryMode | enum | summary | summary (single digest) · chunked (split large lists) · perProduct (one call per item) · none. |
mcpTool | string | "" | Tool name on the connector: send_message, create_page, append_row. Run once with a connector selected — the log lists the connector's available tools. |
mcpArguments | object | {} | Arguments passed to the tool. String leaves support {placeholders}. |
mcpMessageTemplate | string | "" | Template rendered and exposed to mcpArguments as {message}. |
Placeholders by mode:
| Mode | Placeholders |
|---|---|
summary | {mode} (the raw input mode — fuzzy_search / category / product_urls), {sourceInput} (your query, slug, or first URL), {productCount}, {productsText}, {message} |
chunked | the above, plus {part} and {partCount} — and {productsText} holds one part |
perProduct | {title}, {url}, {description}, {sellingPrice}, {retailPrice}, {discount}, {averageRating}, {reviewCount}, {imageUrl} (first hero image), {productText}, plus {mode}, {sourceInput}, {productCount}, {message} |
Placeholders render "N/A" sentinels as empty strings, so a template never posts a literal N/A.
Slack deal alert:
{"mode": "category","category": "/women/cashmere","mcpConnector": "<your-authorized-slack-connector>","deliveryMode": "summary","mcpTool": "send_message","mcpMessageTemplate": "Quince {sourceInput} — {productCount} products:\n\n{productsText}","mcpArguments": { "channel": "#deals", "text": "{message}" }}
Google Sheets, one row per product:
{"mode": "category","category": "/women/sweaters","mcpConnector": "<your-authorized-sheets-connector>","deliveryMode": "perProduct","mcpTool": "append_row","mcpArguments": {"values": ["{title}", "{sellingPrice}", "{retailPrice}", "{discount}", "{averageRating}", "{url}"]}}
Chunked delivery groups products into parts under ~72,000 characters and truncates any single product block at ~1,800 characters, so services with per-request block or timeout caps (Notion in particular) never reject the call.
📤 Output Contract & Data Structure
Storage: Apify Dataset (one JSON object per product).
Pagination: limit & offset on the dataset items endpoint.
Duplicates: product_urls mode dedupes the input list; within a run each product appears once. Cross-run deduplication is the consumer's responsibility — use url as the key.
| Field | Type | "N/A" possible | Meaning |
|---|---|---|---|
url | string | No | Canonical product page URL — use as the dedupe key |
title | string | Yes | Product display name. "N/A" marks a placeholder/skip row |
description | string | Yes | Product description, HTML stripped to plain text |
sellingPrice | string | Yes | Current price, $-prefixed — e.g. "$39.90" |
retailPrice | string | Yes | Strike-through "was" price — e.g. "$79" |
discount | string | Yes | Computed savings — e.g. "49.5%". "N/A" for full-price items |
images | array of string or "N/A" | Yes | Hero images for the primary colour only |
reviews | array of object or "N/A" | Yes | The 5 most recent reviews, newest first |
reviews[].rating | number | — | 1–5 star rating |
reviews[].title | string | Yes | Review headline |
reviews[].body | string | Yes | Review text |
reviews[].author | string | Yes | Display name, or a masked handle (k***@***) if it looked like an email |
reviews[].createdAt | string | Yes | Review timestamp as published, YYYY-MM-DD HH:MM:SS |
averageRating | number/string | Yes | Overall average rating, 1–5 |
reviewCount | number/string | Yes | Total reviews on the product |
sourceKind | string | No | Which mode produced the record: fuzzy_search, category, or product_urls |
sourceInput | string | No | The query, slug, or URL you supplied |
note | string | absent | Only present on skip rows — explains why no product data was extracted (non-PDP URL, or an HTTP error status) |
Two shapes to expect: a normal product record, and a skip row (title: "N/A" plus note). Branch on note presence — or on title != "N/A" — before treating an item as a product.
images and reviews are not always arrays. When absent they are the string "N/A". Guard with a type check (isinstance(x, list)) rather than iterating blindly.
Example output item
{"url": "https://www.quince.com/women/lightweight-cotton-cashmere-dolman-sleeve-sweater","title": "Lightweight Cotton Cashmere Link-Stitch Dolman Sweater","description": "Experience the perfect blend of luxury and comfort with our Lightweight Cotton Cashmere Link-Stitch Dolman Sweater.","sellingPrice": "$39.90","retailPrice": "$79","discount": "49.5%","images": ["https://images.ctfassets.net/.../W-SWT-40-SGSTNE_1063_EDITED.jpg","https://images.ctfassets.net/.../W-SWT-40-SGSTNE_1120_EDITED.jpg"],"reviews": [{"rating": 5,"title": "Flattering","body": "This sweater is so flattering that I have it in two colors and will probably buy more.","author": "k***@***","createdAt": "2026-05-22 04:52:07"}],"averageRating": 4.88,"reviewCount": 15697,"sourceKind": "category","sourceInput": "/women/sweaters"}
Example skip row
{"url": "https://www.quince.com/women/sweaters","sourceKind": "product_urls","sourceInput": "https://www.quince.com/women/sweaters","note": "URL is on quince.com but does not look like a product page. It may be a category, search, or marketing page. Try using 'Category browse' or 'Fuzzy search' mode for those."}
What a successful run looks like
{"status": "SUCCEEDED","defaultDatasetId": "<datasetId>","stats": { "itemCount": 30 }}
The terminal status message carries the real summary — Extracted 30 product(s)., plus counts of skipped URLs, proxy failures, and connector messages when relevant. A SUCCEEDED run with itemCount: 0 and a Skipped: … status message means the input was unusable, not that Quince had no matches.
▶️ Invocation & Integration
Lifecycle: Discover → Understand → Configure → Execute → Retrieve → Validate. Authenticate every call with Authorization: Bearer <APIFY_TOKEN>.
Apify Console
Open the Actor → Input tab → pick a mode → fill that mode's field (query, category dropdown, or URL list) → set the volume cap → confirm the proxy block → Start → export from the Dataset tab (JSON, CSV, Excel, XML, RSS).
Model Context Protocol (MCP)
Add this Actor directly as an AI tool in Claude Desktop, Cursor, VS Code, or LangChain agents:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=techforce.global/quince-scraper"
Python (apify-client)
import osfrom apify_client import ApifyClientclient = ApifyClient(os.getenv("APIFY_TOKEN"))run = client.actor("techforce.global/quince-scraper").call(run_input={"mode": "category","category": "/women/cashmere","categoryMaxProducts": 100,"proxy": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US",},"deliveryMode": "none",})items = client.dataset(run["defaultDatasetId"]).list_items().itemsproducts = [i for i in items if i.get("title") not in (None, "N/A")]print(f"{len(products)} products, {len(items) - len(products)} skipped rows")for p in products[:5]:print(f'{p["title"]}: {p["sellingPrice"]} (was {p["retailPrice"]}, {p["discount"]} off)')
JavaScript / TypeScript (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('techforce.global/quince-scraper').call({mode: 'fuzzy_search',searchQuery: 'linen shirt',searchLimit: 50,deliveryMode: 'none',});const { items } = await client.dataset(run.defaultDatasetId).listItems();const discounted = items.filter((i) => i.discount && i.discount !== 'N/A');console.log(`${discounted.length} of ${items.length} items are on markdown`);
cURL — synchronous (returns items directly; 300s limit)
curl -X POST \-H 'Content-Type: application/json' \-H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \-d '{"mode":"category","category":"/women/sweaters","categoryMaxProducts":50,"deliveryMode":"none"}' \'https://api.apify.com/v2/acts/techforce.global~quince-scraper/run-sync-get-dataset-items'
cURL — asynchronous with a spend cap (recommended for production)
# 1. Start execution with a hard spend limitcurl -X POST -H 'Content-Type: application/json' \-H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \-d '{"mode":"fuzzy_search","searchQuery":"cashmere sweater","searchLimit":200,"deliveryMode":"none"}' \'https://api.apify.com/v2/acts/techforce.global~quince-scraper/runs?maxTotalChargeUsd=3.00'# 2. Pollcurl -H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \'https://api.apify.com/v2/actor-runs/<runId>'# 3. Retrieve when SUCCEEDEDcurl -H 'Authorization: Bearer <YOUR_APIFY_TOKEN>' \'https://api.apify.com/v2/datasets/<DATASET_ID>/items?clean=true&format=json&limit=1000&offset=0'
⚠️ Autonomous Agent Error Handling & Resolution Matrix
| Error Code | Detection Condition | Underlying Cause | Deterministic Agent Action |
|---|---|---|---|
AUTH_INVALID | HTTP 401 | Missing or malformed APIFY_TOKEN | Abort & Prompt User: request a valid API token. |
RATE_LIMITED | HTTP 429 | Apify API rate / concurrency limits | Retry: exponential backoff (2s, 4s, 8s). |
SYNC_TIMEOUT | HTTP 408 on the sync endpoint | Run exceeded the 300s synchronous ceiling | Reconfigure: switch to async POST /runs + polling. |
INPUT_SKIPPED | SUCCEEDED, itemCount: 0, status starts Skipped: | Empty query, unpicked category, empty/invalid URL list, or unknown mode | Modify Input: read the status message — it names the exact missing field. |
SEARCH_UNAVAILABLE | SUCCEEDED, 0 items, status mentions Could not run search | Quince's Algolia credentials could not be resolved from the page | Retry once, then fall back to category or product_urls mode. |
NO_SEARCH_MATCH | SUCCEEDED, 0 items, status mentions No products matched | Query too narrow or misspelled | Modify Input: broaden the keyword. |
BAD_HOST | SUCCEEDED, 0 items, status mentions must be on quince.com | A URL pointed at another host | Modify Input: keep every URL on quince.com/www.quince.com. |
NOT_A_PDP | Item carries note and title: "N/A" | A category/search/landing URL was passed in product_urls mode | Modify Input: switch to category mode, or supply real PDP URLs. |
SITE_UNREACHABLE | FAILED — Could not reach Quince.com (HTTP …) | Homepage probe failed before any scraping | Retry: re-run; if persistent, change proxy country/group. |
CHALLENGED | FAILED — Quince.com is temporarily refusing the request | Cloudflare challenge detected on the homepage probe | Reconfigure: enable RESIDENTIAL proxy, then retry. |
PROXY_FAILURE | Status message mentions request(s) failed due to a proxy issue | Residential tunnel failures mid-run (partial results saved) | Consume partial data, then re-run; switch country (US → CA) or group. |
CATEGORY_UNDERFILL | itemCount ≈ 30 despite a much larger categoryMaxProducts | No pagination — one listing page per run | Reconfigure: use several narrower category slugs, or product_urls mode. |
FREE_PLAN_CAP | itemCount ≤ 5 with the upgrade banner in the log | Free Apify plan caps results at 5 per run | Prompt User: upgrade for full-volume runs. |
DELIVERY_SKIPPED | Log no tool name was provided | mcpConnector set but mcpTool empty | Modify Input: set mcpTool; the dataset is already saved. |
DELIVERY_TOOL_UNKNOWN | Log Tool 'x' is not available on this connector | Wrong tool name for that connector | Modify Input: pick a name from the Available tools: list in the same log line. |
DELIVERY_EMPTY | Connector called, body empty | mcpArguments omitted the {message} placeholder | Modify Input: map {message} inside mcpArguments. |
MCP_PROXY_MISSING | Log APIFY_MCP_PROXY_URL is not set | Running locally instead of on the platform | Reconfigure: apify push and run on the platform. |
CHARGE_LIMIT | Run aborted before the volume cap was reached | maxTotalChargeUsd spend threshold reached | Prompt User: confirm a higher spend cap. |
Reading run status: a run that extracts nothing still finishes
SUCCEEDED— the terminal status message says which input was unusable, and skip rows in the dataset carry anoteexplaining each rejected URL. Only aFAILEDstatus is a platform-level failure. Every status-message and log-line condition in the table above comes from this Actor’s own behavior; the401/408/429rows are standard Apify API responses.
🗣️ Natural Language → Actor Mapping
| User says | Intent | Constructed Actor input |
|---|---|---|
| "Find Quince cashmere crewnecks" | Keyword search | {"mode":"fuzzy_search","searchQuery":"cashmere crewneck","searchLimit":50} |
| "What's in Quince's women's sweaters category?" | Category browse | {"mode":"category","category":"/women/sweaters"} |
| "Scrape these 3 Quince product pages" | Direct extraction | {"mode":"product_urls","productUrls":["…","…","…"]} |
| "How much is Quince discounting right now?" | Discount monitoring | {"mode":"category","category":"/all/best-sellers"} then read discount |
| "Show me Quince's newest arrivals" | Assortment research | {"mode":"category","category":"/all/new-arrivals"} |
| "Compare Quince linen prices to ours" | Price intelligence | {"mode":"category","category":"/linen"} then read sellingPrice / retailPrice |
| "What are people saying about this Quince sweater?" | Review sampling | {"mode":"product_urls","productUrls":["<pdp>"]} then read reviews (5 most recent) |
| "Build a product feed for my affiliate site" | Feed generation | {"mode":"category","category":"<slug>"} then use title, sellingPrice, images, averageRating |
| "Post today's Quince markdowns to Slack" | Pipeline/delivery | {"mode":"category","category":"/all/best-sellers","mcpConnector":"slack","deliveryMode":"summary","mcpTool":"send_message","mcpArguments":{"channel":"#deals","text":"{message}"}} |
| "Track Quince bedding prices in a Google Sheet" | Export/delivery | {"mode":"category","category":"/home/bedding","deliveryMode":"perProduct","mcpTool":"append_row"} |
| "Save Quince jewelry research to Notion" | Pipeline/delivery | {"mode":"category","category":"/jewelry/new-arrivals","deliveryMode":"chunked","mcpTool":"create_page"} |
| "Is this Quince sweater in stock in size M?" | Inventory check | ❌ Out of scope — stock and variants are not extracted |
Should NOT route here: any retailer other than quince.com · stock/inventory checks · size or colour variant matrices · complete review history (only the 5 newest) · non-US storefront pricing · buying, carting, or checkout · generic "scrape any website" requests.
🧭 Agent Execution & Routing Logic
[Input User Query]│▼1. Target is quince.com? NO → Route to a general or retailer-specific Actor│ YES▼2. Read-only product data (not carting/checkout)? NO → Abort (transactional ops unsupported)│ YES▼3. Needs stock, variants, or full review history? YES → Abort (not extracted)│ NO▼4. Pick the mode:├── specific SKUs / URLs in hand → mode "product_urls" (verify each is a PDP)├── a browsable section → mode "category" (pick from the 323 slugs)└── free-text intent → mode "fuzzy_search" (searchQuery required)│▼5. Set that mode's volume knob only → search: searchLimit ≤ 500│ category: ~1 page regardless of the cap▼6. Non-US market pricing required? YES → Abort/flag: US storefront (USD) only│ NO▼7. Residential proxy available on this plan? NO → Warn: Cloudflare-challenge risk│ YES▼8. Deliver to a connector? YES → set mcpConnector + mcpTool + {message} in mcpArguments│ NO → set deliveryMode "none"▼9. Estimated cost within budget? NO → Reduce the cap / set maxTotalChargeUsd / prompt user│▼[Execute Apify Actor]│├──► status == "SUCCEEDED" ──► itemCount == 0? YES → read status message ("Skipped: ...") → fix input│ │ NO│ └──► drop skip rows (title == "N/A" / note present) → consume products (dedupe via 'url')└──► status == "FAILED" ──► route to Error Handling Matrix above
💰 Cost Control & Pricing Transparency
- Pay-per-result pricing: from $15.00 per 1,000 products ($0.015 per product) — the "from" rate applies on the entry tier and drops on higher Apify subscription tiers. No monthly subscription.
- Free Apify plans receive up to 5 products per run as a preview, with an upgrade notice in the log.
- Autonomous spend caps: pass
maxTotalChargeUsdas a query parameter on the run endpoint for a hard per-execution ceiling — important for any agent spending on your behalf. - Skip rows count as dataset items. A
product_urlsrun full of category URLs still writes records; keep the URL list clean so you pay for products, not notes.
| Products extracted | Total Cost (USD, entry tier) |
|---|---|
| 5 products (free-plan preview) | $0.00 |
| 30 products (typical single category page) | $0.45 |
| 50 products (default search run) | $0.75 |
| 200 products | $3.00 |
| 500 products (search ceiling) | $7.50 |
| 1,000 products (batched across runs) | $15.00 |
ℹ️ Always confirm the live rate on the Actor’s Apify Store page before committing to a large run. The Store listing is what bills you, Apify platform usage is charged in addition to the per-product rate, and the table above is a worked example at the entry-tier rate.
🔍 Companion machine-readable files
| File | Purpose |
|---|---|
.actor/actor.json | Identity, version, default run options (3600s timeout, 4096 MB), and the inline dataset view definition |
.actor/input_schema.json | Authoritative typed input contract — mode enum, 323-value category enum, URL pattern for productUrls, deliveryMode enum |
.actor/output_schema.json | Declares where results are stored |
data/categories.json | The category slug catalogue behind the dropdown |
scripts/fetch_categories.py | Regenerates the category list from Quince's live mega-menu |
src/modes.py | Mode router — turns input into seed URLs and raises the "Skipped:" validation messages |
src/algolia.py | Direct Algolia search client used by fuzzy_search mode |
src/pdp.py | Product-page parsing, price/discount maths, image filtering, review masking |
src/http_client.py | curl_cffi fetch with Chrome TLS impersonation, proxy routing, and 5-attempt backoff |
src/delivery.py | MCP connector delivery modes and {placeholder} rendering |
src/connector.py | MCP session handling through the Apify MCP Proxy |
Note: this Actor has no separate dataset_schema.json — the dataset view lives inline in .actor/actor.json.
If any table on this page disagrees with the schema files, the schema files win.
🛠️ Troubleshooting
Most zero-result runs are input problems that end as SUCCEEDED, not crashes. Read the terminal status message first — it usually names the exact fix.
| # | Symptom you see | Most likely cause | Fix |
|---|---|---|---|
| 1 | SUCCEEDED, 0 items, status Skipped: Please enter a search query before running. | mode is fuzzy_search (the default) with an empty searchQuery | Set searchQuery, or switch mode. |
| 2 | SUCCEEDED, 0 items, status Skipped: Please pick a category… | mode: category with no category | Pick a slug from the dropdown. |
| 3 | SUCCEEDED, 0 items, status Skipped: Please paste at least one product URL… | mode: product_urls with an empty list | Add PDP URLs. |
| 4 | ~30 products when you asked for hundreds | Category mode reads one listing page; no pagination | Use several narrower slugs, or product_urls mode with a URL list. |
| 5 | Exactly 5 products every run | Free Apify plan cap | Upgrade the plan; the log prints the upgrade banner. |
| 6 | Items with title: "N/A" and a note | Non-PDP URL, or the page returned an HTTP error | Expected. Filter them out, or fix the URL list. |
| 7 | FAILED — Quince.com is temporarily refusing the request | Cloudflare challenge on the homepage probe | Enable RESIDENTIAL proxy and retry. |
| 8 | FAILED — Could not reach Quince.com (HTTP …) | Network/proxy failure on the homepage probe | Retry; change proxy country or group. |
| 9 | Status mentions request(s) failed due to a proxy issue | Residential tunnel hiccups mid-run | Partial results were saved. Re-run, or switch country (US → CA) / group. |
| 10 | Status mentions Could not run search | Algolia credentials could not be resolved from the page | Retry once, then use category or product_urls mode. |
| 11 | Input rejected for "region": "CA" | Only US is a valid value — the Actor serves the US storefront | Pass "US" or omit the field. Proxy country is configured separately under proxy. |
| 12 | maxConcurrency / maxRequestRetries appear to do nothing | Both are hidden inputs and not wired; fetches are sequential with 5 fixed retry attempts | Expected. Adjust the volume cap instead. |
| 13 | Consumer code crashes iterating images or reviews | They are the string "N/A" when absent, not [] | Type-check (isinstance(x, list)) before iterating. |
| 14 | discount is "N/A" on a real product | The product has no strike-through retail price — it is full price | Read retailPrice first; "N/A" there means no markdown. |
| 15 | Only 5 reviews per product | By design — the 5 most recent only | For full review history, a custom pipeline is required. |
| 16 | Reviewer names look like k***@*** | Email-shaped handles are masked for privacy | Expected and intentional. |
| 17 | Prices have no currency code | Prices are $-prefixed strings from the US storefront | Strip $ and treat as USD. |
| 18 | Slack / Notion / Sheets received nothing | Delivery needs both mcpConnector and mcpTool; otherwise it is skipped with a warning | Set both. The dataset is still written in full. |
| 19 | Log: APIFY_MCP_PROXY_URL is not set | You ran locally with apify run; connectors only resolve on the platform | Deploy with apify push and run on the platform. |
| 20 | Connector fired, but the message body is empty | mcpArguments did not reference {message} | Map {message} in mcpArguments and populate mcpMessageTemplate. |
| 21 | Skip rows missing from the connector payload | Only successfully-extracted products are delivered | Expected. Read the dataset for the full picture. |
| 22 | Hundreds of connector calls fired | deliveryMode: "perProduct" sends one call per product | Switch to chunked or summary. |
| 23 | Delivery fired when you only wanted a dataset | deliveryMode defaults to summary, not none | Set deliveryMode: "none" or leave mcpConnector empty. |
| 24 | HTTP 401 / 403 | Missing, expired, or malformed APIFY_TOKEN | Regenerate in Apify Console → Settings → API & Integrations, send as Authorization: Bearer <token>. |
| 25 | HTTP 429 | Apify account concurrency / rate limits — not Quince blocking | Retry with exponential backoff (2s → 4s → 8s). |
| 26 | HTTP 408 on run-sync-get-dataset-items | The synchronous endpoint has a hard 300-second ceiling | Switch to async: POST /runs → poll /actor-runs/<runId> → fetch dataset. |
Diagnostic checklist before opening an issue
- Read the terminal status message, not just the run status.
Skipped: …means the input needs fixing; aSUCCEEDEDrun can still be a no-op. - Baseline run.
{"mode":"category","category":"/women/sweaters","categoryMaxProducts":10,"deliveryMode":"none"}with residential proxy on. - Products returned? If yes, the site and proxy are fine — the problem is your mode or volume expectation (see Rule 4).
- Still zero? Switch proxy country/group and re-run. Cloudflare challenges are the most common hard failure.
- Open the same page in a browser. If Quince itself shows nothing, the slug or URL is stale.
- Check the run log for the resolved seed URLs and per-product lines (
-> Title ($price)), which show exactly where extraction stopped.
If the issue survives all six steps, open an Issues ticket on the Actor page (or email support) with the run ID, the exact input JSON, and what you expected. Run IDs let us replay the exact execution.
❓ FAQ
Setup & access
Do I need a Quince account or API key?
No. The Actor reads publicly available product pages. You need an Apify account and API token; you need no Quince credentials whatsoever.
Is this an official Quince API?
No. Quince publishes no public product API. This is an independent Actor and is not affiliated with, endorsed by, or sponsored by Quince.
Do I need to configure proxies?
Yes — keep the residential proxy on. Quince sits behind Cloudflare, and the homepage probe fails fast with a clear message when a challenge is served. Residential groups require a paid Apify plan.
Can I plug it into Claude, Cursor, or a LangChain agent?
Yes — it is a native MCP tool:
claude mcp add --transport http apify "https://mcp.apify.com?tools=techforce.global/quince-scraper"
Input & modes
Which mode should I use?
product_urls when you already know the SKUs, category to sweep a section, fuzzy_search for free-text intent. One mode per run.
Why did I only get ~30 products from a category?
Category mode reads a single listing page and takes the products embedded in its SSR payload — there is no pagination. categoryMaxProducts caps that number; it cannot raise it. Use several narrower slugs, or supply product URLs.
Can I scrape several categories or queries in one run?
No — one mode and one query/category per run. Loop the Actor in your orchestration layer.
Can I get Canadian or other non-US pricing?
No. region accepts US only — every request goes to the US storefront (www.quince.com) and all prices are USD. Setting the Apify proxy country to another country does not change the storefront.
Output & data
Why is everything "N/A" instead of null?
By design — the extractor emits the string "N/A" for any missing value so downstream code never has to guard against null. The trade-off: images and reviews are also "N/A" (a string) when absent, so type-check before iterating.
Why only 5 reviews?
The Actor returns the 5 most recent reviews per product, plus averageRating and total reviewCount for the full picture.
Are reviewer emails included?
No. Author handles that look like email addresses are masked to x***@*** before being written.
Do I get stock levels or size/colour variants?
No. Only the fields listed in the Output Contract, and images for the primary colour only.
Delivery
What is the MCP connector for?
It pushes the scraped products straight into a tool you have already authorized on your Apify account — Notion, Slack, Google Sheets, Airtable, Linear, or any MCP-compatible connector — with no glue code. Credentials stay private: delivery runs through the Apify MCP Proxy, so the Actor never sees your connector tokens.
Which delivery mode should I use?
summary for a digest, chunked for long lists into services with request caps (Notion), perProduct for row-per-product targets (Sheets/Airtable), none for dataset-only runs.
Does delivery work when running locally?
No. Connectors resolve through the Apify MCP Proxy, which only exists on the platform. Locally you'll see APIFY_MCP_PROXY_URL is not set and the dataset is saved as normal.
Limits & pricing
What does it cost?
From $0.015 per product — $15.00 per 1,000 results on the entry tier, less on higher subscription tiers. No monthly subscription.
How do I guarantee an agent never overspends?
Pass maxTotalChargeUsd as a query parameter on the run endpoint. It is a hard per-execution ceiling — the run stops rather than exceeding it.
🔗 Related Actors & pipeline patterns
Same data family — other e-commerce product scrapers
| Actor | Use it for |
|---|---|
| Amazon Products Scraper | The same price, rating and review fields across Amazon's catalogue — the widest assortment for benchmarking Quince against mass-market pricing |
| Flipkart Search Scraper | Indian-market product and price data, for comparing the same category across a different storefront and currency |
| Etsy Product Scraper | Handmade and independent-seller listings — the closest comparison set for Quince's positioning on quality-per-price |
All three return a comparable product record, so one pipeline can pull Quince alongside them and compare price, discount depth and review sentiment for the same product type.
Enrichment & downstream
| Actor | Use it for |
|---|---|
| Advanced Website Crawling Actor | Crawl a competitor's own site for clean HTML/Markdown/text context alongside Quince pricing |
| Google Maps Scraper – Business Data | Enrich retail or brand entities into full business records |
| GOV.UK Business Scraper | Match UK supplier or brand names against Companies House records |
Suggested pipeline patterns
📉 Daily markdown monitor
Scheduled category run on /all/best-sellers → deliveryMode: "summary", mcpConnector: "slack", mcpTool: "send_message" → your channel gets the day's discount depth with no glue code.
🛒 Affiliate product feed
category runs across your target slugs → filter out skip rows (title != "N/A") → title, sellingPrice, images[0], averageRating → render on your site; refresh weekly.
📊 Price-history warehouse
Same slugs on a schedule → deliveryMode: "perProduct" into Google Sheets/Airtable, or dataset → ETL → track sellingPrice and discount per url over time.
🔎 Assortment research
/all/new-arrivals weekly → diff on url against last week → surface genuinely new SKUs and their launch pricing.
Browse all Actors by Techforce Global at scraper.techforce.global.
🔐 Compliance & Data Privacy
This is an independent Actor. It is not affiliated with, endorsed by, or sponsored by Quince. "Quince" is a trademark of its respective owner.
This Actor collects publicly available product listing data only. It does not log into accounts, bypass authentication, or access order, customer, or payment data. Review author display names are public profile strings and email-shaped handles are masked automatically, but reviewer names may still constitute personal data in some jurisdictions. You are responsible for ensuring your use complies with Quince's Terms of Service, applicable data-protection law (including GDPR and CCPA), and any local regulations. Product images and descriptions remain the copyright of their owner — check your rights before republishing them.
🆘 Support & Custom Pipeline Engineering
Need deep category pagination, full review history, additional regional storefronts, scheduled multi-category monitoring, or a warehouse sync?
- Email: bhavin.shah@techforceglobal.com
- Custom Enterprise Integrations: Book a 15-Minute Technical Consultation
- Maintained by: Techforce Global — Specialists in High-Performance Web Scrapers and Agentic Workflows.
Made with ❤️ by Techforce Global Specialists in High-Performance E-commerce Data Extraction and AI Automation.
🏷️ Structured data for search & AI discovery
SoftwareApplication describes the Actor; FAQPage wraps the FAQ above so those answers are
eligible for rich results, matching it question-for-question.
{"@context": "https://schema.org","@type": "SoftwareApplication","name": "Quince.com Product Scraper","alternateName": "Quince.com Product Scraper — Prices, Discounts, Reviews & Images","applicationCategory": "DeveloperApplication","applicationSubCategory": "Web Scraping / E-commerce Product & Price Data","operatingSystem": "Cloud (Apify platform)","description": "Extracts structured Quince.com product data — selling price, retail price, computed discount, hero images, latest reviews and ratings — by keyword search, category slug, or product URL list, with optional delivery to Notion, Slack, Google Sheets, Airtable, or any authorized MCP connector.","url": "https://apify.com/techforce.global/quince-scraper","author": {"@type": "Organization","name": "Techforce Global","url": "https://www.techforceglobal.com"},"provider": {"@type": "Organization","name": "Apify","url": "https://apify.com"},"offers": {"@type": "Offer","price": "15.00","priceCurrency": "USD","description": "From $15.00 per 1,000 products on the entry tier, less on higher Apify subscription tiers. Apify platform usage is billed separately. Current rates are shown on the Actor's Apify Store page.","url": "https://apify.com/techforce.global/quince-scraper"},"featureList": ["No Quince account, API key or credentials required","Three input modes: free-text search, category dropdown, or a product URL list","Free-text search resolved through Quince's own search index rather than HTML scraping","323 preset category slugs selectable from a dropdown","Selling price and strike-through retail price on every product","Discount percentage computed from the two prices","Hero images for the primary colourway, deduplicated and absolute","The five most recent reviews per product, with email-shaped author handles masked","Average rating and total review count for the full picture beyond the five reviews","Every row stamped with the mode and the exact query, slug or URL that produced it","Non-product URLs written as explicit skip rows with the reason, never silently dropped","Records pushed as each product completes, so a mid-run failure keeps earlier progress","Proxy failures detected and answered with specific remediation guidance in the log","Missing values emitted as the string N/A so consumers never guard against null","Optional MCP delivery to Notion, Slack, Google Sheets, Airtable, Linear and more","Chunked delivery mode keeps long product lists under connector size and timeout caps"],"isAccessibleForFree": false,"softwareRequirements": "Apify account and API token","softwareHelp": {"@type": "CreativeWork","url": "https://apify.com/techforce.global/quince-scraper"},"keywords": "Quince scraper, Quince.com product data, price monitoring, discount tracking, competitor price scraping, e-commerce product data, review scraping, retail price comparison, MCP connector"}
{"@context": "https://schema.org","@type": "FAQPage","mainEntity": [{"@type": "Question","name": "Do I need a Quince account or API key?","acceptedAnswer": {"@type": "Answer","text": "No. The Actor reads publicly available product pages. You need an Apify account and API token; you need no Quince credentials whatsoever."}},{"@type": "Question","name": "Is this an official Quince API?","acceptedAnswer": {"@type": "Answer","text": "No. Quince publishes no public product API. This is an independent Actor and is not affiliated with, endorsed by, or sponsored by Quince."}},{"@type": "Question","name": "Do I need to configure proxies?","acceptedAnswer": {"@type": "Answer","text": "Yes - keep the residential proxy on. Quince sits behind Cloudflare, and the homepage probe fails fast with a clear message when a challenge is served. Residential groups require a paid Apify plan."}},{"@type": "Question","name": "Can I plug it into Claude, Cursor, or a LangChain agent?","acceptedAnswer": {"@type": "Answer","text": "Yes - it is a native MCP tool. Add it with: claude mcp add --transport http apify \"https://mcp.apify.com?tools=techforce.global/quince-scraper\""}},{"@type": "Question","name": "Which mode should I use?","acceptedAnswer": {"@type": "Answer","text": "product_urls when you already know the SKUs, category to sweep a section, fuzzy_search for free-text intent. One mode per run."}},{"@type": "Question","name": "Why did I only get ~30 products from a category?","acceptedAnswer": {"@type": "Answer","text": "Category mode reads a single listing page and takes the products embedded in its server-rendered payload - there is no pagination. categoryMaxProducts caps that number; it cannot raise it. Use several narrower slugs, or supply product URLs."}},{"@type": "Question","name": "Can I scrape several categories or queries in one run?","acceptedAnswer": {"@type": "Answer","text": "No - one mode and one query or category per run. Loop the Actor in your orchestration layer."}},{"@type": "Question","name": "Can I get Canadian or other non-US pricing?","acceptedAnswer": {"@type": "Answer","text": "No. region accepts US only - every request goes to the US storefront at www.quince.com and all prices are USD. Setting the Apify proxy country to another country does not change the storefront."}},{"@type": "Question","name": "Why is everything \"N/A\" instead of null?","acceptedAnswer": {"@type": "Answer","text": "By design - the extractor emits the string N/A for any missing value so downstream code never has to guard against null. The trade-off: images and reviews are also the string N/A when absent, so type-check before iterating."}},{"@type": "Question","name": "Why only 5 reviews?","acceptedAnswer": {"@type": "Answer","text": "The Actor returns the 5 most recent reviews per product, plus averageRating and total reviewCount for the full picture."}},{"@type": "Question","name": "Are reviewer emails included?","acceptedAnswer": {"@type": "Answer","text": "No. Author handles that look like email addresses are masked before being written - the local part is truncated and the domain is replaced entirely."}},{"@type": "Question","name": "Do I get stock levels or size/colour variants?","acceptedAnswer": {"@type": "Answer","text": "No. Only the fields listed in the Output Contract, and images for the primary colour only."}},{"@type": "Question","name": "What is the MCP connector for?","acceptedAnswer": {"@type": "Answer","text": "It pushes the scraped products straight into a tool you have already authorized on your Apify account - Notion, Slack, Google Sheets, Airtable, Linear, or any MCP-compatible connector - with no glue code. Credentials stay private: delivery runs through the Apify MCP Proxy, so the Actor never sees your connector tokens."}},{"@type": "Question","name": "Which delivery mode should I use?","acceptedAnswer": {"@type": "Answer","text": "summary for a digest, chunked for long lists into services with request caps such as Notion, perProduct for row-per-product targets such as Sheets or Airtable, none for dataset-only runs."}},{"@type": "Question","name": "Does delivery work when running locally?","acceptedAnswer": {"@type": "Answer","text": "No. Connectors resolve through the Apify MCP Proxy, which only exists on the platform. Locally you will see APIFY_MCP_PROXY_URL is not set and the dataset is saved as normal."}},{"@type": "Question","name": "What does it cost?","acceptedAnswer": {"@type": "Answer","text": "From $0.015 per product - $15.00 per 1,000 results on the entry tier, less on higher subscription tiers. Apify platform usage is billed separately. No monthly subscription."}},{"@type": "Question","name": "How do I guarantee an agent never overspends?","acceptedAnswer": {"@type": "Answer","text": "Pass maxTotalChargeUsd as a query parameter on the run endpoint. It is a hard per-execution ceiling - the run stops rather than exceeding it."}}]}