Shopee API endpoint
Returns the server-driven filter groups (locations, shipping, shop type, brands, category facets, payment, rating, condition) for a keyword or category context from the credential-free `api/v4/search/search_filter_config` JSON. Public, credential-free endpoint.
/shopee/search-filtersPublic endpoint. Credential-free: no cookie, login or af-ac-enc-dat
anti-content header is required. Backed by Shopee's
api/v4/search/search_filter_config JSON (v2 shape), fetched over a
browser-impersonated HTTP profile. This is the family's filter/category/tag
vocabulary source.
The endpoint returns the server-driven filter groups for a search context:
LOCATIONS (Shipped From), SHIPPING_OPTIONS_V2, SHOP_TYPE, SERVICE_AND_PROMOTION,
PRICE_RANGE, FACET (category ids), BRANDS (brand ids), PAYMENT_OPTIONS,
RATING, CONDITION, plus filter shortcuts. This endpoint does not expose
Shopee's sort vocabulary (by/order); sorting is only available on the
anti-content-signed search_items endpoint.
Query parameters:
region (optional, default my) — one of my, sg, id, th, vn, ph, tw, br, mx, co, cl.keyword (optional) — keyword search context.category (optional) — numeric category id for a category-page context.Provide exactly one of keyword or category; both or neither is a 400.
Response includes region, the applied keyword/category, groups[]
(name, display_name, ui_type, dynamic, options[] with
value/name/display_name) and shortcuts[]. Option value is the wire
value for the corresponding filter (catid for FACET, brandid for BRANDS,
location name for LOCATIONS, enum for the static groups).
| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| name | 10 | “LOCATIONS” and 9 other values |
| display_name | 10 | |
| ui_type | 10 | 1 to 9, median 1 |
| dynamic | 5 | true in 5 of 5 |
| options | 8 | median 8 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| region | string | No | Shopee region: my, sg, id, th, vn, ph, tw, br, mx, co, cl (default my) Allowed values: my, sg, id, th, vn, ph, tw, br, mx, co, cl. | my | |
| keyword | string | No | Keyword context (keyword or category is required) | headphones | |
| category | string | No | Category context (keyword or category is required) | 11000979 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/shopee/search-filters?region=my&keyword=coffee" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"region": "my",
"keyword": "headphones",
"groups": [
{
"name": "BRANDS",
"display_name": "Brand",
"ui_type": 1,
"dynamic": true,
"options": [
{
"value": "1695297",
"name": "Sony",
"display_name": "Sony"
}
]
},
{
"name": "FACET",
"display_name": "By Category",
"ui_type": 1,
"dynamic": true,
"options": [
{
"value": "11000993",
"name": "Wireless Earbuds",
"display_name": "Wireless Earbuds"
}
]
}
],
"shortcuts": [
{
"value": "lpg_my_search_product_label_filter",
"display_name": "Shopee Lagi Murah"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shopee.searchFiltersResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shopee.SearchFiltersResponse | No | ||||
| data.category | string | No | 11000979 | |||
| data.groups | array | No | ||||
| data.groups[].display_name | string | No | Brand | |||
| data.groups[].dynamic | boolean | No | ||||
| data.groups[].name | string | No | BRANDS | |||
| data.groups[].options | array | No | ||||
| data.groups[].options[].display_name | string | No | Wireless Earbuds | |||
| data.groups[].options[].name | string | No | Wireless Earbuds | |||
| data.groups[].options[].value | string | No | 11000993 | |||
| data.groups[].ui_type | integer | No | 1 | |||
| data.keyword | string | No | headphones | |||
| data.region | string | No | my | |||
| data.shortcuts | array | No | ||||
| data.shortcuts[].display_name | string | No | Wireless Earbuds | |||
| data.shortcuts[].name | string | No | Wireless Earbuds | |||
| data.shortcuts[].value | string | No | 11000993 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/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 GET "https://api.crawlora.net/api/v1/shopee/search-filters?region=my&keyword=coffee" \
-H "x-api-key: $CRAWLORA_API_KEY"