SHEIN API endpoint
Returns SHEIN's root category tree (11 top-level categories, nested to leaf ids) plus the global attribute filter taxonomy (sizes, colors, materials, …). Use the returned `cat_id` values with `/shein/category/nav`, `/shein/category/filters` and `/shein/category/goods`.
/shein/categoriesReturns SHEIN's root category tree and the global attribute filter taxonomy, so
callers can discover the cat_id values that the other category endpoints
require.
No query parameters.
Response data.categories is a nested array of {cat_id, category_name, children}: 11 top-level categories (Beauty & Health, Men, Kids,
Home & Living, Underwear & Sleepwear, Sports & Outdoor,
Apparel Accessories, Jewelry & Watches, Bags & Luggage, Home Textile, …)
nested to leaf category ids (133 nodes, 72 leaves).
Response data.filters is an optional array of global facet groups
{node_id, node_name, options:[{node_id, node_name}]} (sizes, colors,
materials, details, style, type, length, sleeve length, …).
Use any returned cat_id with /api/v1/shein/category/nav,
/api/v1/shein/category/filters or /api/v1/shein/category/goods. The tree is
a fixed discovery set — it is not paginated.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/shein/categories" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"categories": [
{
"cat_id": "1864",
"category_name": "Beauty & Health",
"children": [
{
"cat_id": "3638",
"category_name": "False Eyelashes & Adhesives",
"children": [
{
"cat_id": "2251",
"category_name": "False Eyelashes"
}
]
}
]
},
{
"cat_id": "2026",
"category_name": "Men"
}
],
"filters": [
{
"node_id": "87",
"node_name": "Size",
"options": [
{
"node_id": "87_757",
"node_name": "XXS"
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shein.categoriesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shein.CategoriesResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].cat_id | string | No | 3638 | |||
| data.categories[].category_name | string | No | False Eyelashes & Adhesives | |||
| data.categories[].children | array | No | ||||
| data.filters | array | No | ||||
| data.filters[].node_id | string | No | 87 | |||
| data.filters[].node_name | string | No | Size | |||
| data.filters[].options | array | No | ||||
| data.filters[].options[].node_id | string | No | 87_757 | |||
| data.filters[].options[].node_name | string | No | XXS | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 500 | Internal Server Error | #/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/shein/categories" \
-H "x-api-key: $CRAWLORA_API_KEY"