Quince API endpoint
Returns product-detail data for one Quince product: title, description, review summary, every selectable option (color swatches with hex codes, sizes), and every color/size variant with its own price, original ("traditional retail") price, stock status, and SKU. handle is the product's URL path on quince.com (for example women/cashmere/cashmere-crewneck-sweater), returned by quince-search's own products[].handle field.
/quince/productNotable response behavior:
variants[] entry's options is a flattened map of the option values that select that specific variant, e.g. {"Color":"Ivory","Size":"XS"}.variants[].in_stock reflects Quince's own listing status for that variant (ACTIVE), not a real-time inventory count.options[].values[].hex_code is only populated for color-swatch options.handle returns 404.handle (not matching Quince's own URL-path shape) returns 400 before any upstream request is made.country (top-level) and each variant's currency are always US/USD -- this endpoint only ever scrapes Quince's US storefront.| Field | Filled in, of 60 checked | Values in the sample |
|---|---|---|
| id | 60 | |
| sku | 60 | |
| price | 60 | 50 |
| traditional_retail_price | 60 | 150 |
| currency | 60 | USD in all 60 |
| status | 60 | ACTIVE in all 60 |
| in_stock | 60 | true in 60 of 60 |
| options | 60 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| handle | string | Yes | Product URL handle, from a search result's products[].handle field | women/cashmere/cashmere-crewneck-sweater | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/quince/product?handle=women%2Fcashmere%2Fcashmere-crewneck-sweater" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"handle": "women/cashmere/cashmere-crewneck-sweater",
"product_id": 76,
"title": "Mongolian Cashmere Crewneck Sweater",
"description": "The icon, now spring-ready. Our signature cashmere crew is luxuriously soft and surprisingly breathable.",
"gender": "female",
"product_type": "Crewneck",
"average_rating": 4.87,
"review_count": 34404,
"country": "US",
"options": [
{
"name": "Color",
"values": [
{
"value": "Ivory",
"display_name": "Ivory",
"display_type": "Color",
"hex_code": "#F5F0E6"
},
{
"value": "Heather Grey",
"display_name": "Heather Grey",
"display_type": "Color",
"hex_code": "#808080"
}
]
},
{
"name": "Size",
"values": [
{
"value": "XS",
"display_name": "XS",
"display_type": "Text"
},
{
"value": "S",
"display_name": "S",
"display_type": "Text"
}
]
}
],
"variants": [
{
"id": 3379,
"sku": "LB19745",
"title": "XS / Ivory",
"price": 50,
"traditional_retail_price": 148,
"currency": "USD",
"savings": "66%",
"status": "ACTIVE",
"in_stock": true,
"options": {
"Color": "Ivory",
"Size": "XS"
}
}
],
"images": [
"https://images.ctfassets.net/afruo3gr1g6h/img1/main.jpg"
],
"url": "https://www.quince.com/women/cashmere/cashmere-crewneck-sweater"
}
}Request schema
No body schema
Response schema
#/definitions/quince.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | quince.ProductResponse | No | ||||
| data.average_rating | number | No | ||||
| data.country | string | No | ||||
| data.description | string | No | ||||
| data.fetched_at | string | No | ||||
| data.gender | string | No | ||||
| data.handle | string | No | ||||
| data.images | array | No | ||||
| data.options | array | No | ||||
| data.options[].name | string | No | ||||
| data.options[].values | array | No | ||||
| data.options[].values[].display_name | string | No | ||||
| data.options[].values[].display_type | string | No | ||||
| data.options[].values[].hex_code | string | No | ||||
| data.options[].values[].value | string | No | ||||
| data.product_id | integer | No | ||||
| data.product_type | string | No | ||||
| data.review_count | integer | No | ||||
| data.source_url | string | No | ||||
| data.title | string | No | ||||
| data.url | string | No | ||||
| data.variants | array | No | ||||
| data.variants[].currency | string | No | ||||
| data.variants[].id | integer | No | ||||
| data.variants[].in_stock | boolean | No | ||||
| data.variants[].options | object | No | ||||
| data.variants[].price | number | No | ||||
| data.variants[].savings | string | No | ||||
| data.variants[].sku | string | No | ||||
| data.variants[].status | string | No | ||||
| data.variants[].title | string | No | ||||
| data.variants[].traditional_retail_price | number | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/product?handle=women%2Fcashmere%2Fcashmere-crewneck-sweater" \
-H "x-api-key: $CRAWLORA_API_KEY"