SHEIN API endpoint
Searches SHEIN products for the required `keyword`. `page` starts at 1, `page_size` defaults to 20 and `sort` is a non-negative integer, `0` by default. Each product card has its id, name, images, prices, rating, review count and stock flags. Also returns `total` and spelling suggestions in `suggest_words`.
/shein/products/searchReturns SHEIN's product search results for a free-text keyword, with name/price/rating/image fields per product card.
Query parameters:
keyword (required) — free-text search query, e.g. dress.page (default 1) — 1-based page number.page_size (default 20) — results per page.sort (default 0) — SHEIN sort code, a non-negative integer. 0 is SHEIN's default ("recommended") and is the only code with a documented meaning. Any non-negative integer is accepted and passed through as-is; non-numeric values are rejected as invalid params.Response data.products is an array of product cards: {goods_id, goods_name, goods_sn, spu, goods_url_name, brand_code, category_id, category_name, goods_img, color_img, detail_images, sale_price, retail_price, usd_price, comment_count, comment_avg, sold_out, on_sale, store_code, mall_code}. data.total is the full result count for the
keyword; data.suggest_words carries any spelling-correction suggestions.
| Field | Filled in, of 19 checked | Values in the sample |
|---|---|---|
| goods_id | 19 | |
| goods_name | 19 | median 142 characters |
| goods_sn | 19 | “sz260406174537820801519” and 18 other values |
| spu | 19 | “z2604061745378208” and 18 other values |
| goods_url_name | 19 | median 141 characters |
| brand_code | 19 | |
| category_id | 19 | |
| category_name | 19 | Women Mini Dresses (11), Women Short Dresses (4), Women Long Dresses (2) and 2 more |
| goods_img | 19 | img.ltwebstatic.com |
| color_img | 19 | img.ltwebstatic.com |
| detail_images | 19 | median 6 entries |
| sale_price | 19 | “HK$259.00” and 8 other values |
| retail_price | 19 | “HK$259.00” and 8 other values |
| usd_price | 19 | “$33.00” and 8 other values |
| comment_count | 19 | 130 to 1,001, median 1,001 |
| comment_avg | 19 | 4 to 4.93, median 4.79 |
| sold_out | 19 | true in 0 of 19 |
| on_sale | 19 | true in 19 of 19 |
| store_code | 19 | |
| mall_code | 19 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| keyword | string | Yes | Free-text search query | dress | |
| page | integer | No | 1-based page number | 1 | |
| page_size | integer | No | Results per page | 20 | |
| sort | string | No | SHEIN sort code: a non-negative integer. `0` is the default (recommended). Other codes are accepted and forwarded as-is; the full code-to-meaning mapping has not been live-verified yet (see the endpoint markdown), so callers relying on a specific ordering should confirm behavior empirically. | 0 | |
| x-api-key (header) | string | Yes | API key required |
curl -X POST "https://api.crawlora.net/api/v1/shein/products/search?keyword=dress&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"keyword": "dress",
"total": 6535,
"page": 1,
"products": [
{
"goods_id": "163003837",
"goods_name": "Sweetra Women's Oblique Shoulder Fitted Bandeau Dress",
"sale_price": "HK$119.00",
"usd_price": "$15.16",
"comment_count": 1001,
"comment_avg": "4.68",
"sold_out": false,
"on_sale": true
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shein.productsSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shein.SearchProductsResponse | No | ||||
| data.keyword | string | No | dress | |||
| data.origin_word | string | No | dress | |||
| data.page | integer | No | 1 | |||
| data.products | array | No | Product record, 20 fields: brand_code, category_id, category_name, color_img, comment_avg, comment_count, detail_images, goods_id, goods_img, goods_name, goods_sn, goods_url_name and 8 more. Described under SHEIN Category Product Listing API. | |||
| data.suggest_words | array | No | ||||
| data.total | integer | No | 6535 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 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 POST "https://api.crawlora.net/api/v1/shein/products/search?keyword=dress&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"