Nike API endpoint
Returns Nike's full Men/Women/Kids/Jordan category and subcategory taxonomy tree, sourced directly from Nike.com's own nav mega-menu. Each top-level entry (Men, Women, Kids, Jordan) breaks down into named groups (e.g. Shoes, Clothing, Accessories, Shop By Sport -- Women additionally carries a Shop by Color group, and Jordan is organized by Men/Women/Kids instead of by product type), each with its own subcategory entries. Every subcategory (and most groups) carries a slug usable as a future category-browse endpoint's path/slug input, and is directly browsable today at https://www.nike.com/w/<slug>. This mirrors the live nav exactly, including its seasonal/promotional groups (e.g. Limited Time, New & Featured) alongside the stable structural ones -- Nike's own markup does not distinguish the two.
/nike/categoriesReturns Nike's full Men/Women/Kids/Jordan category and subcategory taxonomy tree, sourced directly from Nike.com's own nav mega-menu (the same header navigation shown on every page of the site). Takes no query parameters.
Notable response behavior:
Men, Women,
Kids, Jordan.groups (for example
Shoes, Clothing, Accessories, Shop By Sport -- Women
additionally carries a Shop by Color group, and Jordan is organized
by Men/Women/Kids instead of by product type).subcategories -- the individual entries a caller
would browse (for example Jordan under Men > Shoes, or Dark Neutrals under Women > Shop by Color).slug -- the bare
identifier from Nike's own /w/<slug> browse-page URL. slug is
directly browsable today at https://www.nike.com/w/<slug> and is the
value a future Nike category-browse endpoint would expect as its
path/slug input. A small number of entries point at a distinct
standalone hub page instead of a /w/ browse page (for example Shop By Sport's own All Conditions Gear entry) -- those carry an empty slug.Limited Time, New & Featured, and similar) alongside the
stable structural ones -- Nike's own markup does not distinguish the two,
so this endpoint does not either.| Field | Filled in, of 4 checked | Values in the sample |
|---|---|---|
| name | 4 | “Men” and 3 other values |
| path | 4 | “/men” and 3 other values |
| groups | 4 | median 5 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/nike/categories" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"source_url": "https://www.nike.com/",
"fetched_at": "2026-08-10T00:00:00Z",
"categories": [
{
"name": "Men",
"path": "/men",
"groups": [
{
"name": "Shoes",
"path": "/w/mens-shoes-nik1zy7ok",
"slug": "mens-shoes-nik1zy7ok",
"subcategories": [
{
"name": "All Shoes",
"path": "/w/mens-shoes-nik1zy7ok",
"slug": "mens-shoes-nik1zy7ok"
},
{
"name": "Jordan",
"path": "/w/mens-jordan-shoes-37eefznik1zy7ok",
"slug": "mens-jordan-shoes-37eefznik1zy7ok"
}
]
}
]
},
{
"name": "Women",
"path": "/women",
"groups": [
{
"name": "Shop by Color",
"path": "/w/womens-matching-sets-clothing-2lukpz5e1x6z6ymx6",
"slug": "womens-matching-sets-clothing-2lukpz5e1x6z6ymx6",
"subcategories": [
{
"name": "Dark Neutrals",
"path": "/w/womens-color-shop-brown-4elb3z5e1x6",
"slug": "womens-color-shop-brown-4elb3z5e1x6"
}
]
}
]
},
{
"name": "Jordan",
"path": "/jordan",
"groups": [
{
"name": "Sport",
"subcategories": [
{
"name": "Basketball",
"path": "/w/jordan-basketball-37eefz3glsm",
"slug": "jordan-basketball-37eefz3glsm"
}
]
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/nike.categoriesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | nike.CategoriesResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].groups | array | No | ||||
| data.categories[].groups[].name | string | No | ||||
| data.categories[].groups[].path | string | No | ||||
| data.categories[].groups[].slug | string | No | ||||
| data.categories[].groups[].subcategories | array | No | ||||
| data.categories[].groups[].subcategories[].name | string | No | ||||
| data.categories[].groups[].subcategories[].path | string | No | ||||
| data.categories[].groups[].subcategories[].slug | string | No | ||||
| data.categories[].name | string | No | ||||
| data.categories[].path | string | No | ||||
| data.fetched_at | string | No | ||||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 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/categories" \
-H "x-api-key: $CRAWLORA_API_KEY"