Put the real use case into the query
Suppose you need a storage rack for a narrow entrance. Measure the available space first, then combine the product type and purpose in keyword. Product search offers candidates; it does not measure the room or guarantee that every result meets your constraints. Write down non-negotiable requirements such as width and load before deciding what deserves closer inspection.
Keep the search traceable
page begins at one. Retain the initial search_id for later pages and use source according to its definition. A changed keyword should be treated as a new search rather than silently merged into a like-for-like comparison. Check actual product details and current information. A picture cannot establish material, and a description observed during search is not a permanent guarantee of specification or price.
Eliminate options using your own requirements
Your comparison sheet could contain the source, dimensions to confirm, installation method, and reason an option is unsuitable. A hypothetical wall-fixed rack may conflict with a no-drilling tenancy rule regardless of its appearance. The operation does not verify fulfilment, stock, or quality. Confirm those matters on the transaction page before buying. The deliverable is a reasoned shortlist, not a claim that search placement identifies the best product for your needs.
Request URL and parameters
GET https://api.trmesh.com/openapi/api/v1/xiaohongshu/app_v2/search_products
| Parameter | Type | Required | Meaning |
|---|---|---|---|
keyword |
string | Yes | Search keyword |
page |
integer | No | Page number, start from 1 |
search_id |
string | No | Search ID for pagination |
source |
string | No | Source |
Run the Python example
Install requests and set TRMESH_API_TOKEN in your environment. Replace the sample identifiers with the public object you intend to inspect. Example IDs may no longer be available.
import os
import requests
# Read your own developer key from the server environment.
url = "https://api.trmesh.com/openapi/api/v1/xiaohongshu/app_v2/search_products"
params = {
"keyword": "手机壳",
"page": "1",
"source": "explore_feed"
}
response = requests.get(
url, params=params, timeout=30,
headers={"Authorization": f"Bearer {os.environ['TRMESH_API_TOKEN']}"},
)
response.raise_for_status()
payload = response.json()
print(payload) # Inspect the actual response before mapping fields
Endpoint documentation · Free profile tool
API calls use your TRMesh account allowance. Check the endpoint price before running a script.

