Quince API endpoint
Searches or browses Quince's (quince.com) product catalog. q, department, category, material, color, size, min_price, and max_price are all optional and combine as an AND -- unlike some other families' search/category-browse split, a free-text q can be combined with any of the facet filters in the same request, or every field can be omitted to browse the full catalog by Quince's own relevance/popularity ranking. department accepts one of the values quince-categories' own business_departments[].value field returns (for example Women, Men, Kids & Baby, Home, CPG, Emerging); category, material, color, and size similarly accept values from quince-categories' own categories[].value/materials[].value/colors[].value/sizes[].value fields (or quince-navigation's own browsable category/subcategory slugs for a curated, hierarchical alternative to the flat category facet). Keyword search uses typo-tolerant relevance ranking, not a guaranteed exact match. A query with genuinely zero matches (for example a nonsense string) returns a well-formed empty result rather than an error.
/quince/searchq is optional, 1 to 200 characters when present.
category is optional, a category facet filter, from quince-categories' own categories[].value field (for example Apparel, Home, Jewelry, Shoes) -- for a curated, hierarchical alternative (department -> group -> subcategory, with browsable slugs), see quince-navigation.
color is optional, a primary-color facet filter, from quince-categories' own colors[].value field.
size is optional, a size facet filter, from quince-categories' own sizes[].value field. Spans every product type Quince sells (apparel letter sizes, shoe sizes, rug/furniture dimensions, bedding sizes, and more).
min_price is optional, a minimum price in USD (inclusive).
max_price is optional, a maximum price in USD (inclusive). Must not be less than min_price when both are set.
page is optional, a one-based page number, defaults to 1 (1 to 500).
limit is optional, results per page, defaults to 24, maximum 100.
Notable response behavior:
count: 0, products: []) rather than an error.handle is the value quince-product's own handle parameter expects for full product-detail data.country (top-level) and each product's currency are always US/USD -- this endpoint only ever queries Quince's US storefront/index.A department-filtered browse request (department=Home, no q) returns the same shape, ordered by Quince's own default ranking within that department.
| Field | Filled in, of 24 checked | Values in the sample |
|---|---|---|
| product_id | 24 | |
| handle | 24 | |
| title | 24 | “Mongolian Cashmere Crewneck Sweater” and 8 other values |
| gender | 24 | |
| color | 24 | “Heather Grey” and 17 other values |
| primary_colors | 24 | median 1 entry |
| material | 24 | median 1 entry |
| business_department | 24 | Women in all 24 |
| department | 24 | Sweaters in all 24 |
| category | 24 | Apparel in all 24 |
| product_type | 24 | Tops in all 24 |
| description | 24 | median 358 characters |
| sizes | 24 | median 5 entries |
| min_price | 24 | 29.9 to 60, median 39.9 |
| max_price | 24 | 29.9 to 60, median 39.9 |
| currency | 24 | USD in all 24 |
| in_stock | 24 | true in 24 of 24 |
| image_url | 24 | images.quince.com |
| url | 24 | quince.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Free-text search query | cashmere sweater | |
| department | string | No | Business department facet filter, from quince-categories' own business_departments[].value field | Women | |
| category | string | No | Category facet filter, from quince-categories' own categories[].value field | Apparel | |
| material | string | No | Material facet filter, from quince-categories' own materials[].value field | Cashmere | |
| color | string | No | Primary color facet filter, from quince-categories' own colors[].value field | Grey | |
| size | string | No | Size facet filter, from quince-categories' own sizes[].value field | M | |
| min_price | number | No | Minimum price (inclusive), in USD | 25 | |
| max_price | number | No | Maximum price (inclusive), in USD | 100 | |
| page | integer | No | 1 | One-based page number, defaults to 1 | 1 |
| limit | integer | No | 24 | Results per page, defaults to 24, maximum 100 | 24 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/quince/search?q=coffee&page=1&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "cashmere sweater",
"country": "US",
"page": 1,
"limit": 24,
"count": 1,
"total_results": 1974,
"total_pages": 988,
"products": [
{
"product_id": 2067473662063,
"handle": "women/cashmere/cashmere-crewneck-sweater",
"title": "Mongolian Cashmere Crewneck Sweater",
"gender": "female",
"color": "Heather Grey",
"primary_colors": [
"Grey"
],
"material": [
"Cashmere"
],
"business_department": "Women",
"department": "Sweaters",
"category": "Apparel",
"product_type": "Tops",
"sizes": [
"XS",
"S",
"M",
"L",
"XL"
],
"min_price": 50,
"max_price": 50,
"currency": "USD",
"in_stock": true,
"image_url": "https://images.quince.com/6raQtTk7L6V5MruegXEimT/main.jpg",
"url": "https://www.quince.com/women/cashmere/cashmere-crewneck-sweater"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/quince.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | quince.SearchResponse | No | ||||
| data.category | string | No | ||||
| data.color | string | No | ||||
| data.count | integer | No | ||||
| data.country | string | No | ||||
| data.department | string | No | ||||
| data.fetched_at | string | No | ||||
| data.limit | integer | No | ||||
| data.material | string | No | ||||
| data.max_price | number | No | ||||
| data.min_price | number | No | ||||
| data.page | integer | No | ||||
| data.products | array | No | ||||
| data.products[].business_department | string | No | ||||
| data.products[].category | string | No | ||||
| data.products[].color | string | No | ||||
| data.products[].currency | string | No | ||||
| data.products[].department | string | No | ||||
| data.products[].description | string | No | ||||
| data.products[].gender | string | No | ||||
| data.products[].handle | string | No | ||||
| data.products[].image_url | string | No | ||||
| data.products[].in_stock | boolean | No | ||||
| data.products[].material | array | No | ||||
| data.products[].max_price | number | No | ||||
| data.products[].min_price | number | No | ||||
| data.products[].primary_colors | array | No | ||||
| data.products[].product_id | integer | No | ||||
| data.products[].product_type | string | No | ||||
| data.products[].sizes | array | No | ||||
| data.products[].title | string | No | ||||
| data.products[].url | string | No | ||||
| data.query | string | No | ||||
| data.size | string | No | ||||
| data.source_url | string | No | ||||
| data.total_pages | integer | No | ||||
| data.total_results | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/quince/search?q=coffee&page=1&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"