# Quince Scraper (`crawlerbros/quince-scraper`) Actor

Get real-time data including selling prices, retail prices, discount percentages, product images, customer reviews, ratings, and availability by color.

- **URL**: https://apify.com/crawlerbros/quince-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Quince Product Scraper

Extract product listings from [Quince.com](https://www.quince.com) — one of America's fastest-growing affordable luxury brands. Get real-time data including selling prices, retail prices, discount percentages, product images, customer reviews, ratings, and availability by color.

### What data does it return?

Each record represents a single product-color combination with:

| Field | Description |
|---|---|
| `title` | Product name |
| `color` | Color variant |
| `url` | Product page URL |
| `slug` | URL path slug |
| `price` | Current selling price (USD) |
| `retailPrice` | Traditional retail/MSRP price (USD) |
| `discount` | Savings percentage vs. retail |
| `inStock` | Whether any size is in stock |
| `sizes` | Available sizes for this color |
| `gender` | `female`, `male`, or `unisex` |
| `material` | Material(s) |
| `description` | Plain-text product description |
| `sizeAndFit` | Size and fit notes |
| `careAndMaintenance` | Care instructions |
| `productTypeName` | Product type (e.g. SWEATERS, TOPS) |
| `department` | Top-level category (e.g. Cashmere, Linen, Rugs) |
| `subDepartment` | Sub-category (when available) |
| `tags` | Tags such as "Best seller", "Low Stock", "New" |
| `imageUrl` | Primary image for this color |
| `images` | All images for this color |
| `averageRating` | Average customer rating (1–5) |
| `reviewCount` | Total number of reviews |
| `reviews` | Up to 5 most recent reviews (rating, title, body, author, date) |
| `sourceKind` | Mode used (`search`, `byCategory`, `byProductUrl`) |
| `sourceInput` | Original query/category/URL |
| `scrapedAt` | ISO 8601 UTC timestamp |

### Input parameters

#### Mode

| Mode | Description |
|---|---|
| `search` (default) | Keyword search across all Quince products |
| `byCategory` | Browse by department and/or category |
| `byProductUrl` | Scrape specific product pages by URL |

#### Filters

| Filter | Type | Description |
|---|---|---|
| `searchQuery` | string | Keyword search (used in `search` mode) |
| `department` | select | Business department: Women, Men, Home, Kids & Baby, etc. |
| `category` | select | Product category: Apparel, Accessories, Bags, Beauty, etc. |
| `gender` | select | `female`, `male`, or `unisex` |
| `inStockOnly` | boolean | Only return in-stock products |
| `minPrice` / `maxPrice` | integer | Price range filter (USD) |
| `productUrls` | array | Product URLs (for `byProductUrl` mode) |
| `maxItems` | integer | Maximum records to return (1–5000) |

### Sample input

```json
{
  "mode": "search",
  "searchQuery": "cashmere sweater",
  "maxItems": 20,
  "gender": "female",
  "inStockOnly": true
}
````

### Sample output

```json
{
  "productId": 94,
  "title": "Mongolian Cashmere V-Neck Sweater",
  "color": "Rich Burgundy",
  "url": "https://www.quince.com/women/cashmere/cashmere-v-neck-sweater",
  "slug": "women/cashmere/cashmere-v-neck-sweater",
  "price": 50,
  "retailPrice": 138,
  "discount": 64,
  "inStock": true,
  "sizes": ["XS", "S", "M", "L", "XL"],
  "gender": "female",
  "material": "Cashmere",
  "description": "The classic cashmere v-neck sweater is timeless...",
  "department": "Cashmere",
  "tags": ["Best seller"],
  "imageUrl": "https://images.ctfassets.net/...",
  "images": ["https://images.ctfassets.net/..."],
  "averageRating": 4.86,
  "reviewCount": 12063,
  "reviews": [
    {
      "rating": 5,
      "title": "Sweater",
      "body": "Love it",
      "author": "Carol P.",
      "date": "2026-05-29 14:00:52"
    }
  ],
  "sourceKind": "search",
  "sourceInput": "cashmere sweater",
  "scrapedAt": "2026-05-30T10:00:00+00:00"
}
```

### Use cases

- **Price comparison** — Compare Quince's direct prices vs. traditional retail MSRP
- **Inventory monitoring** — Track color and size availability across Quince's catalog
- **Discount analysis** — Find the highest-discount products by category
- **Review aggregation** — Collect customer reviews at scale for sentiment analysis
- **Trend spotting** — Identify "Best seller" and "New" tagged products across departments
- **Competitor benchmarking** — Monitor Quince's pricing strategy and catalog expansion

### FAQ

**Does this require authentication?**
No. The scraper uses Quince's public Algolia search API and their Next.js server-side rendering data endpoint. No credentials, cookies, or API keys required.

**Does it require proxies?**
No. The scraper works without any proxy configuration on standard datacenter IPs.

**How many products can I scrape?**
Quince has approximately 14,000+ product-color combinations. A single `allMarkets`-style run can return thousands of records. Use `maxItems` to control volume.

**What's the difference between price and retailPrice?**
`price` is what Quince charges directly. `retailPrice` is the traditional retail/MSRP that Quince compares against to show savings. Quince typically saves buyers 50–80% versus retail.

**Why does each product appear multiple times?**
Each record is one (product, color) pair. A cashmere sweater available in 10 colors appears as 10 records, each with its own images and availability status.

**Can I filter by specific department like Women or Men?**
Yes — set `mode: byCategory` and select a `department` from the dropdown.

**How fresh is the data?**
The scraper fetches live data from Quince.com on each run. Prices and stock status reflect the current state at run time.

### Limitations

- **Reviews limited to 27 per product**: The Next.js SSR page loads up to 27 most recent reviews; the scraper returns the first 5.
- **No authentication-gated data**: Personalized pricing, loyalty points, or account-specific offers are not accessible.
- **No historical data**: Only current prices and availability are available.
- **Single market (US / USD)**: Quince ships only to the US and Canada, and operates a single storefront (`quince.com`) with one Algolia catalog and one Next.js product feed — all in USD. The country switcher shown at checkout is a currency-estimate widget layered on top of the same US catalog, not a separate localized storefront with its own product IDs or feed; there is no `quince.ca` or other regional domain/index to scrape. Multi-market support is therefore not applicable to this actor.

# Actor input Schema

## `mode` (type: `string`):

How to discover products: keyword search, category browse, or direct product URLs.

## `searchQuery` (type: `string`):

Keywords to search for (used in 'search' mode). Example: 'mongolian cashmere', 'linen pants'.

## `department` (type: `string`):

Filter by business department (used in 'byCategory' mode, optional filter in 'search' mode).

## `category` (type: `string`):

Filter by product category (optional, works with any mode).

## `gender` (type: `string`):

Filter by gender (optional).

## `productUrls` (type: `array`):

List of Quince product page URLs (used in 'byProductUrl' mode). Example: https://www.quince.com/women/cashmere/cashmere-hoodie

## `inStockOnly` (type: `boolean`):

Only return products that are currently in stock.

## `minPrice` (type: `integer`):

Minimum selling price filter. Leave at 0 for no minimum.

## `maxPrice` (type: `integer`):

Maximum selling price filter. Leave at 10000 for no maximum (Quince's catalog tops out well below this).

## `maxItems` (type: `integer`):

Maximum number of product-color records to return (1–5000).

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "cashmere sweater",
  "department": "Women",
  "category": "",
  "gender": "",
  "productUrls": [
    "https://www.quince.com/women/cashmere/cashmere-hoodie"
  ],
  "inStockOnly": false,
  "minPrice": 0,
  "maxPrice": 10000,
  "maxItems": 10
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "search",
    "searchQuery": "cashmere sweater",
    "department": "Women",
    "productUrls": [
        "https://www.quince.com/women/cashmere/cashmere-hoodie"
    ],
    "inStockOnly": false,
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/quince-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "search",
    "searchQuery": "cashmere sweater",
    "department": "Women",
    "productUrls": ["https://www.quince.com/women/cashmere/cashmere-hoodie"],
    "inStockOnly": False,
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/quince-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "search",
  "searchQuery": "cashmere sweater",
  "department": "Women",
  "productUrls": [
    "https://www.quince.com/women/cashmere/cashmere-hoodie"
  ],
  "inStockOnly": false,
  "maxItems": 10
}' |
apify call crawlerbros/quince-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/quince-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Quince Scraper",
        "description": "Get real-time data including selling prices, retail prices, discount percentages, product images, customer reviews, ratings, and availability by color.",
        "version": "1.0",
        "x-build-id": "Zqd2ZpFSfr4jnKmud"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~quince-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-quince-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~quince-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-quince-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~quince-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-quince-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "byCategory",
                            "byProductUrl"
                        ],
                        "type": "string",
                        "description": "How to discover products: keyword search, category browse, or direct product URLs.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keywords to search for (used in 'search' mode). Example: 'mongolian cashmere', 'linen pants'."
                    },
                    "department": {
                        "title": "Department",
                        "enum": [
                            "",
                            "Women",
                            "Men",
                            "Home",
                            "Kids & Baby",
                            "CPG",
                            "Emerging",
                            "Gift"
                        ],
                        "type": "string",
                        "description": "Filter by business department (used in 'byCategory' mode, optional filter in 'search' mode).",
                        "default": ""
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "",
                            "Apparel",
                            "Accessories",
                            "Bags",
                            "Beauty",
                            "Boots",
                            "Footwear",
                            "Furniture",
                            "Home",
                            "Home Fragrance",
                            "Jewelry",
                            "Kids & Baby",
                            "Lighting",
                            "Perfume",
                            "Pets",
                            "Shoes",
                            "Throws & Blankets",
                            "Travel",
                            "Fitness"
                        ],
                        "type": "string",
                        "description": "Filter by product category (optional, works with any mode).",
                        "default": ""
                    },
                    "gender": {
                        "title": "Gender",
                        "enum": [
                            "",
                            "female",
                            "male",
                            "unisex"
                        ],
                        "type": "string",
                        "description": "Filter by gender (optional).",
                        "default": ""
                    },
                    "productUrls": {
                        "title": "Product URLs",
                        "type": "array",
                        "description": "List of Quince product page URLs (used in 'byProductUrl' mode). Example: https://www.quince.com/women/cashmere/cashmere-hoodie",
                        "items": {
                            "type": "string"
                        }
                    },
                    "inStockOnly": {
                        "title": "In-stock only",
                        "type": "boolean",
                        "description": "Only return products that are currently in stock.",
                        "default": false
                    },
                    "minPrice": {
                        "title": "Min price (USD)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Minimum selling price filter. Leave at 0 for no minimum.",
                        "default": 0
                    },
                    "maxPrice": {
                        "title": "Max price (USD)",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum selling price filter. Leave at 10000 for no maximum (Quince's catalog tops out well below this).",
                        "default": 10000
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of product-color records to return (1–5000).",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
