Shopee API endpoint
Returns server-ranked keyword hints for a prefix from the credential-free `api/v4/search/search_hint` JSON (distinct from search-suggestion: hint-panel keywords with rank/category metadata). Public, credential-free endpoint.
/shopee/search-hintsPublic endpoint. Credential-free: no cookie, login or af-ac-enc-dat
anti-content header is required. Backed by Shopee's
api/v4/search/search_hint JSON. This is the search bar's ranked hint panel,
distinct from /shopee/suggest: hints carry rank/category metadata rather
than plain suggestion strings.
Query parameters:
region (optional, default my) — one of my, sg, id, th, vn, ph, tw, br, mx, co, cl.keyword (required) — keyword prefix.version (optional, default 2) — hint protocol version, 1 or 2.Response includes region, keyword, version, optional algorithm /
search_keyword_type, and hints[] with keyword, record_type,
category_id, category_name, position, source_type, and item_ids when
the upstream hint carries an item-id payload.
| Field | Filled in, of 12 checked | Values in the sample |
|---|---|---|
| keyword | 12 | “phone murah” and 11 other values |
| position | 10 | 5 to 32, median 12 |
| source_type | 1 | 15 |
| 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 | Yes | Keyword prefix | phone | |
| version | integer | No | Hint protocol version: 1 or 2 (default 2) | 2 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/shopee/search-hints?region=my&keyword=phone" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"region": "my",
"keyword": "phone",
"version": 2,
"hints": [
{
"keyword": "phone case",
"position": 5
},
{
"keyword": "phone holder",
"category_id": 11000979,
"category_name": "Mobile & Accessories",
"position": 1
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shopee.searchHintsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shopee.SearchHintsResponse | No | ||||
| data.algorithm | string | No | ||||
| data.hints | array | No | ||||
| data.hints[].category_id | integer | No | ||||
| data.hints[].category_name | string | No | ||||
| data.hints[].item_ids | array | No | ||||
| data.hints[].keyword | string | No | phone case | |||
| data.hints[].position | integer | No | ||||
| data.hints[].record_type | integer | No | ||||
| data.hints[].source_type | integer | No | ||||
| data.keyword | string | No | phone | |||
| data.region | string | No | my | |||
| data.search_keyword_type | integer | No | ||||
| data.version | integer | No | 2 | |||
| 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-hints?region=my&keyword=phone" \
-H "x-api-key: $CRAWLORA_API_KEY"