J.Crew API endpoint
Returns full product detail for one style: name, brand, description, category, list price, aggregate rating, every purchasable color, and every color+size combination as a separate priced/stocked SKU. pid is a style id (e.g. CX415), as returned by jcrew-search's products[].id field. site must match the storefront the pid belongs to (default jcrew). A single call covers every color and size of the style -- no per-color lookup needed.
/jcrew/productNotable response behavior:
skus lists every color+size combination as its own entry, each with its own orderable stock flag and price. This is the granular unit a caller would use to check whether a specific size in a specific color is in stock.list_price, skus[].price, and currency always reflect J.Crew's own US pricing in USD, regardless of the requester's own location. On the rare chance the US price can't be determined, a price in a different currency is converted to USD using an approximate, periodically-refreshed exchange rate instead.average_rating/rating_count are a summary only -- use jcrew-product-reviews for the actual review list.pid returns 404.pid that doesn't match the required shape (letters followed by digits) returns 400 before any upstream request is made.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| color_code | 20 | |
| color_name | 20 | AGED PINE (12), NAVY (8) |
| size | 20 | 0 to 22, median 6 |
| orderable | 20 | true in 20 of 20 |
| price | 20 | 178 |
| currency | 20 | USD in all 20 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| pid | string | Yes | Style id, from a search result's id field | CX415 | |
| site | string | No | Storefront the pid belongs to Allowed values: jcrew, factory. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/jcrew/product?pid=CX415&site=jcrew" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"pid": "CI906",
"site": "jcrew",
"name": "Arden shirt-dress in cotton poplin",
"brand": "J.Crew",
"gender": "women",
"description": "A modern take on the classic shirt-dress...",
"fit_description": [
"A-line silhouette.",
"Midi length, 50\" from high point of shoulder."
],
"category_id": "womens|categories|clothing|dresses-and-jumpsuits",
"list_price": 1800,
"currency": "USD",
"average_rating": 4.75,
"rating_count": 105,
"colors": [
{
"code": "BR8840",
"name": "AGED PINE",
"image_url": "https://www.jcrew.com/s7-img-facade/CI906_BR8840?..."
},
{
"code": "BL8133",
"name": "NAVY",
"image_url": "https://www.jcrew.com/s7-img-facade/CI906_BL8133?..."
}
],
"sizes": [
"00",
"0",
"2",
"4",
"6",
"8",
"10",
"12",
"14",
"16"
],
"skus": [
{
"color_code": "BR8840",
"color_name": "AGED PINE",
"size": "4",
"orderable": true,
"price": 1259,
"currency": "USD"
}
],
"url": "https://www.jcrew.com/p/womens/categories/clothing/dresses-and-jumpsuits/arden-shirt-dress-in-cotton-poplin/CI906"
}
}Request schema
No body schema
Response schema
#/definitions/jcrew.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | jcrew.ProductDetailResponse | No | ||||
| data.average_rating | number | No | ||||
| data.brand | string | No | ||||
| data.category_id | string | No | ||||
| data.colors | array | No | ||||
| data.colors[].code | string | No | ||||
| data.colors[].image_url | string | No | ||||
| data.colors[].name | string | No | ||||
| data.currency | string | No | ||||
| data.description | string | No | ||||
| data.fetched_at | string | No | ||||
| data.fit_description | array | No | ||||
| data.gender | string | No | ||||
| data.list_price | number | No | ||||
| data.name | string | No | ||||
| data.pid | string | No | ||||
| data.rating_count | integer | No | ||||
| data.site | string | No | ||||
| data.sizes | array | No | ||||
| data.skus | array | No | ||||
| data.skus[].color_code | string | No | ||||
| data.skus[].color_name | string | No | ||||
| data.skus[].currency | string | No | ||||
| data.skus[].orderable | boolean | No | ||||
| data.skus[].price | number | No | ||||
| data.skus[].size | string | No | ||||
| data.source_url | string | No | ||||
| data.url | string | 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/jcrew/product?pid=CX415&site=jcrew" \
-H "x-api-key: $CRAWLORA_API_KEY"