Prada API endpoint
Returns product-detail data for one Prada product/color variant: name, price, stock, available sizes, breadcrumb, alternate colors, and images. pv is the product/color identifier, returned by prada-search's, prada-category's, and this endpoint's own products[].pv/other_colors[] fields (also the trailing path segment of a Prada product URL). description and the full image gallery are populated on a best-effort basis and may be briefly absent even for a valid pv; every other field is always populated. An unknown pv returns a not-found error.
/prada/productpv is required, the product/color identifier -- returned by prada-search's, prada-category's, and this endpoint's own products[].pv/other_colors[] fields (also the trailing path segment of a Prada product URL, e.g. 1BA274_2CYS_F0002_V_YO0 from .../1BA274_2CYS_F0002_V_YO0).
Notable response behavior:
other_colors[] lists every sibling color, each with its own pv-bearing url you can pass back to this endpoint.description and every image beyond the first two are populated on a best-effort basis from the product's own page, and may occasionally be briefly absent even for a valid pv; every other field (name, price, stock, sizes, breadcrumb, other colors) is always populated from Prada's own product index.discounted_price is only set when the product currently carries a discount; otherwise it is omitted.in_stock reflects Prada's own live availability signal for this color variant.pv returns 404.pv (not matching Prada's own product/color identifier shape) returns 400 before any upstream request is made.country and currency are always US/USD -- this endpoint only ever scrapes Prada's US storefront.| Field | Filled in, of 3 checked | Values in the sample |
|---|---|---|
| name | 3 | “Black” and 2 other values |
| hex | 3 | “#000000” and 2 other values |
| code | 3 | |
| url | 3 | prada.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| pv | string | Yes | Product/color identifier, from a search, category, or product result's own pv field | 1BA274_2CYS_F0002_V_YO0 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/prada/product?pv=1BA274_2CYS_F0002_V_YO0" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"pv": "1BA274_2CYS_F0002_V_YO0",
"model": "1BA274",
"name": "Prada Galleria large leather bag",
"description": "Leather handles---Detachable, adjustable leather shoulder strap---Removable leather key ring---External zipper pockets---Metal hardware",
"product_type": "Galleria",
"gender": [
"Woman"
],
"color": "Black",
"color_hex": "#000000",
"material": "Leather",
"country": "US",
"price": 6100,
"currency": "USD",
"in_stock": true,
"stock_quantity": 1,
"sizes": [
{
"label": "TU",
"code": "1501"
}
],
"breadcrumbs": [
"Womens",
"Bags",
"Prada Galleria"
],
"other_colors": [
{
"name": "Black",
"hex": "#000000",
"code": "F0002",
"url": "https://www.prada.com/us/en/p/prada-galleria-large-leather-bag/1BA274_2CYS_F0002_V_YO0"
},
{
"name": "Natural",
"hex": "#F0E5D6",
"code": "F0018",
"url": "https://www.prada.com/us/en/p/prada-galleria-large-leather-bag/1BA274_2CYS_F0018_V_YO0"
}
],
"images": [
"https://www.prada.com/content/dam/pradabkg_products/1/1BA/1BA274/2CYSF0002/1BA274_2CYS_F0002_V_YO0_SLF.jpg",
"https://www.prada.com/content/dam/pradabkg_products/1/1BA/1BA274/2CYSF0002/1BA274_2CYS_F0002_V_YO0_MDL.jpg"
],
"url": "https://www.prada.com/us/en/p/prada-galleria-large-leather-bag/1BA274_2CYS_F0002_V_YO0"
}
}Request schema
No body schema
Response schema
#/definitions/prada.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | prada.ProductResponse | No | ||||
| data.breadcrumbs | array | No | ||||
| data.color | string | No | ||||
| data.color_hex | string | No | ||||
| data.country | string | No | ||||
| data.currency | string | No | ||||
| data.description | string | No | ||||
| data.discounted_price | number | No | ||||
| data.fetched_at | string | No | ||||
| data.gender | array | No | ||||
| data.images | array | No | ||||
| data.in_stock | boolean | No | ||||
| data.material | string | No | ||||
| data.model | string | No | ||||
| data.name | string | No | ||||
| data.other_colors | array | No | ||||
| data.other_colors[].code | string | No | ||||
| data.other_colors[].hex | string | No | ||||
| data.other_colors[].name | string | No | ||||
| data.other_colors[].url | string | No | ||||
| data.price | number | No | ||||
| data.product_type | string | No | ||||
| data.pv | string | No | ||||
| data.sizes | array | No | ||||
| data.sizes[].code | string | No | ||||
| data.sizes[].label | string | No | ||||
| data.stock_quantity | integer | 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/prada/product?pv=1BA274_2CYS_F0002_V_YO0" \
-H "x-api-key: $CRAWLORA_API_KEY"