Nike API endpoint
Returns full product-group detail for one product's rollup key, sourced from the same anonymous mobile backend Nike's own app uses: shared product copy plus every purchasable color variant (across width groupings), each with its own pricing, sizes, and images. group_key is the product's rollup key, the same value nike-search returns as a products[].group_key field. Unlike nike-product (which returns one color variant by slug/style_color), this returns every color of the product in one response.
/nike/product/detailsThe response carries shared product copy (title, subtitle, description, reason_to_buy, product_type, genders) plus a colors array where each color has its own style_color, style_code, color_code, color_description, grouping_label (Regular/Wide), pricing, is_buyable, images, sizes, size_chart_url, and PDP url.
Notable response behavior:
colors is ordered by width grouping (grouping_label) then Nike's own sort order.is_buyable is derived from Nike's own buyable activation status.sizes[].status reflects per-size state (ACTIVE in normal samples).group_key returns 404 (Nike's own DATA_NOT_FOUND response).| Field | Filled in, of 17 checked | Values in the sample |
|---|---|---|
| style_color | 17 | “HV8150-002” and 16 other values |
| style_code | 17 | |
| color_code | 17 | |
| color_description | 17 | “Black/Cool Grey/Metallic Dark Grey/White” and 13 other values |
| grouping_label | 17 | Regular (14), Wide (3) |
| currency | 17 | USD in all 17 |
| price | 17 | 145.97 to 190, median 180 |
| initial_price | 17 | 175 to 190, median 180 |
| is_buyable | 17 | true in 17 of 17 |
| images | 17 | median 8 entries |
| sizes | 17 | median 17 entries |
| size_chart_url | 17 | nike.com |
| url | 17 | nike.com |
| discount_percentage | 2 | 19 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| group_key | string | Yes | Product rollup key, from a search result's products[].group_key field | 5npsVBwT | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/nike/product/details?group_key=5npsVBwT" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"group_key": "5npsVBwT",
"title": "Nike Vomero Plus",
"subtitle": "Men's Road Running Shoes",
"description": "Take maximum cushioning to the next level with the Vomero Plus...",
"product_type": "FOOTWEAR",
"genders": [
"MEN"
],
"count": 21,
"colors": [
{
"style_color": "IO4482-001",
"style_code": "IO4482",
"color_code": "001",
"grouping_label": "Regular",
"currency": "USD",
"price": 144.97,
"initial_price": 180,
"discount_percentage": 19,
"is_buyable": true,
"images": [
"https://static.nike.com/a/images/..."
],
"sizes": [
{
"label": "6",
"localized_label": "M 6 / W 7.5",
"status": "ACTIVE"
}
],
"url": "https://www.nike.com/t/vomero-plus-mens-road-running-shoes-5npsVBwT/IO4482-001"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/nike.productDetailsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | nike.ProductDetailsResponse | No | ||||
| data.colors | array | No | ||||
| data.colors[].color_code | string | No | ||||
| data.colors[].color_description | string | No | ||||
| data.colors[].currency | string | No | ||||
| data.colors[].discount_percentage | integer | No | ||||
| data.colors[].grouping_label | string | No | ||||
| data.colors[].images | array | No | ||||
| data.colors[].initial_price | number | No | ||||
| data.colors[].is_buyable | boolean | No | ||||
| data.colors[].price | number | No | ||||
| data.colors[].size_chart_url | string | No | ||||
| data.colors[].sizes | array | No | ProductSize record, 4 fields: label, localized_label, sku_id, status. Described under Get a Nike product API. | |||
| data.colors[].style_code | string | No | ||||
| data.colors[].style_color | string | No | ||||
| data.colors[].url | string | No | ||||
| data.count | integer | No | ||||
| data.description | string | No | ||||
| data.fetched_at | string | No | ||||
| data.genders | array | No | ||||
| data.group_key | string | No | ||||
| data.product_type | string | No | ||||
| data.reason_to_buy | string | No | ||||
| data.source_url | string | No | ||||
| data.subtitle | string | No | ||||
| data.title | 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/nike/product/details?group_key=5npsVBwT" \
-H "x-api-key: $CRAWLORA_API_KEY"