https://api.nexscope.ai/fm/productSearchRun this API
Send a JSON request to execute this API and receive the documented response payload.
Endpoint
| Method | POST |
| Path | https://api.nexscope.ai/fm/productSearch |
| Auth | Bearer API key |
| Content-Type | application/json |
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
keyword | string | optional | Search keywords (fuzzy matching of product titles). |
region | string | optional | Market area code. Optional values: `US` (United States), `GB` (UK), `MX` (Mexico), `ES` (Spain), `DE` (Germany), `IT` (Italy), `FR` (France), `ID` (Indonesia), `VN` (Vietnam), `MY` (Malaysia), `TH` (Thailand), `PH` (Philippines), `BR` (Brazil), `JP` (Japan), `SG` (Singapore). |
category | string | optional | For English category names, the system automatically matches the TikTok category ID; non-English names need to be translated into English first. |
shopType | integer | optional | Store type: `1`=local store, `2`=cross-border store. |
isTopSelling | boolean | optional | Filter only the best-selling items. |
isNewListed | boolean | optional | Only filter new listings. |
isSshop | boolean | optional | Filter only TikTok fully hosted (S-shop) items. |
isFreeShipping | boolean | optional | Filter only free shipping products. |
isLocalWarehouse | boolean | optional | Only filter products shipped from local warehouses. |
unitsSoldRange | object | optional | Sales range filtering, format: `{"min": 100, "max": 5000}`. |
commissionRateRange | object | optional | Commission rate range filtering, format: `{"min": 0.05, "max": 0.20}` (decimal, `0.10`=10%). |
creatorCountRange | object | optional | Filter the number of people carrying goods, format: `{"min": 10, "max": 500}`. |
orderField | string | optional | Sorting fields: `day7_units_sold` (7-day sales), `day7_gmv` (7-day GMV), `commission_rate` (commission rate), `total_units_sold` (total sales), `total_gmv` (total GMV), `creator_count` (number of customers). Default is descending order. |
page | integer | optional | Page number. Example: 1 |
pageSize | integer | optional | Number of items per page, maximum `10`. Example: 10 |
Response example
Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
No response example is published for this API. Refer to the response fields below.
Response fields
Response field reference (38 fields)
| Name | Type | Required | Description |
|---|---|---|---|
total | integer | optional | The total number of records that meet the criteria. |
products | array | optional | Product information list, product object fields are shown in the table below. |
columns | array | optional | Render column definitions. |
type | string | optional | Rendering style type. |
costToken | integer | optional | The number of tokens consumed. |
title | string | optional | Product title |
productId | string | optional | Product unique identification ID. |
region | string | optional | Market area code. |
price | number | optional | Product price. |
minPrice | number | optional | lowest price. |
maxPrice | number | optional | Highest price. |
currency | string | optional | Currency code. |
totalSaleCnt | integer | optional | Cumulative total sales. |
totalSale1dCnt | integer | optional | 1 day sales. |
totalSale7dCnt | integer | optional | 7 day sales. |
totalSale28dCnt | integer | optional | 28 days sales. |
totalSale90dCnt | integer | optional | 90 Day Sales. |
totalSaleGmvAmt | number | optional | Cumulative total GMV. |
totalSaleGmv7dAmt | number | optional | 7 days GMV. |
totalSaleGmv28dAmt | number | optional | 28 days GMV. |
totalVideoCnt | integer | optional | Number of videos with goods. |
totalLiveCnt | integer | optional | Number of goods delivered live. |
totalIflCnt | integer | optional | Bring the number of people with goods. |
productCommissionRate | number | optional | Product commission ratio (decimal, `0.10`=10%). |
productRating | number | optional | Rating |
reviewCount | integer | optional | Number of comments. |
skuCount | integer | optional | SKU quantity. |
shopName | string | optional | Store name. |
shopSellerId | string | optional | Seller ID. |
shopTotalUnitsSold | integer | optional | The total sales volume of the store. |
isCrossBorder | integer | optional | Whether it is cross-border: `1`=cross-border, `0`=local. |
isSShopText | string | optional | Whether to fully host the store (yes/no). |
freeShippingText | string | optional | Whether shipping is free (yes/no). |
availableDate | string | optional | Shelf time. |
categoryName | string | optional | Product category name. |
salesTrendFlagText | string | optional | Sales trend tag. |
tiktokUrl | string | optional | TikTok merchandise link. |
imageUrl | string | optional | Product image URL. |
Responses
| Code | Description |
|---|---|
| 200 | Default HTTP response for both success and many business errors. Only outer JSON code 0 indicates success or asynchronous acceptance; inspect data for the result. |
| 429 | Execution admission rate limit; honor Retry-After when present. |
| 503 | Execution admission is temporarily unavailable; honor Retry-After when present. |
| Opt-in | X-Nexscope-Http-Status: semantic maps controller-handled business errors to HTTP status on run and task routes. Pre-authentication failures, such as a missing API key (code 11209), may still return HTTP 200 before this mapping. Always check the outer JSON code; malformed requests and infrastructure failures may also return non-200 HTTP responses. |
Data source, freshness, and limitations
Source, freshness, coverage, rate limits, and estimation notes are not specified in this API definition unless they appear in the request or response field documentation above. Do not assume official marketplace data or real-time freshness when it is not explicitly documented.