TikTok Intelligence FM
TikTok Intelligence FM: product Search API
TikTok Intelligence FM: product Search API.
MCP tool name
nexscope_data_fm_product_searchMCP endpoint
https://api.nexscope.ai/mcpJSON-RPC method
tools/callAuthentication
Use OAuth 2.1 Authorization Code with PKCE and the mcp:tools scope. API keys remain supported as a compatibility option.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication fails, ask the user to open API Access and copy a valid key.
Call this MCP tool
Initialize an MCP 2025-11-25 Streamable HTTP session at https://api.nexscope.ai/mcp, then use tools/call.
{
"jsonrpc": "2.0",
"id": "data-fm-product-search-1",
"method": "tools/call",
"params": {
"name": "nexscope_data_fm_product_search",
"arguments": {
"keyword": "phone case",
"orderField": "day7_units_sold",
"pageSize": 10,
"region": "US"
}
}
}MCP 2025-11-25 · Streamable HTTPProgress is delivered on the original POST SSE response. GET SSE carries notifications; reconnecting must query existing asynchronous work rather than submit again.
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
keyword | string | optional | Search keywords (fuzzy matching of product titles). Example: {} |
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). Example: {} |
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. Example: {} |
shopType | integer | optional | Store type: `1`=local store, `2`=cross-border store. Example: {} |
isTopSelling | boolean | optional | Filter only the best-selling items. Example: {} |
isNewListed | boolean | optional | Only filter new listings. Example: {} |
isSshop | boolean | optional | Filter only TikTok fully hosted (S-shop) items. Example: {} |
isFreeShipping | boolean | optional | Filter only free shipping products. Example: {} |
isLocalWarehouse | boolean | optional | Only filter products shipped from local warehouses. Example: {} |
unitsSoldRange | object | optional | Sales range filtering, format: `{"min": 100, "max": 5000}`. Example: {} |
commissionRateRange | object | optional | Commission rate range filtering, format: `{"min": 0.05, "max": 0.20}` (decimal, `0.10`=10%). Example: {} |
creatorCountRange | object | optional | Filter the number of people carrying goods, format: `{"min": 10, "max": 500}`. Example: {} |
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. Example: {} |
page | integer | optional | Page number. Example: 1 |
pageSize | integer | optional | Number of items per page, maximum `10`. Example: 10 |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
total | integer | optional | The total number of records that meet the criteria. Example: {} |
products | array | optional | Product information list, product object fields are shown in the table below. Example: {} |
columns | array | optional | Render column definitions. Example: {} |
type | string | optional | Rendering style type. Example: {} |
costToken | integer | optional | The number of tokens consumed. Example: {} |
title | string | optional | Product title. Example: {} |
productId | string | optional | Product unique identification ID. Example: {} |
region | string | optional | Market area code. Example: {} |
price | number | optional | Product price. Example: {} |
minPrice | number | optional | lowest price. Example: {} |
maxPrice | number | optional | Highest price. Example: {} |
currency | string | optional | Currency code. Example: {} |
totalSaleCnt | integer | optional | Cumulative total sales. Example: {} |
totalSale1dCnt | integer | optional | 1 day sales. Example: {} |
totalSale7dCnt | integer | optional | 7 day sales. Example: {} |
totalSale28dCnt | integer | optional | 28 days sales. Example: {} |
totalSale90dCnt | integer | optional | 90 Day Sales. Example: {} |
totalSaleGmvAmt | number | optional | Cumulative total GMV. Example: {} |
totalSaleGmv7dAmt | number | optional | 7 days GMV. Example: {} |
totalSaleGmv28dAmt | number | optional | 28 days GMV. Example: {} |
totalVideoCnt | integer | optional | Number of videos with goods. Example: {} |
totalLiveCnt | integer | optional | Number of goods delivered live. Example: {} |
totalIflCnt | integer | optional | Bring the number of people with goods. Example: {} |
productCommissionRate | number | optional | Product commission ratio (decimal, `0.10`=10%). Example: {} |
productRating | number | optional | Product ratings. Example: {} |
reviewCount | integer | optional | Number of comments. Example: {} |
skuCount | integer | optional | SKU quantity. Example: {} |
shopName | string | optional | Store name. Example: {} |
shopSellerId | string | optional | Seller ID. Example: {} |
shopTotalUnitsSold | integer | optional | The total sales volume of the store. Example: {} |
isCrossBorder | integer | optional | Whether it is cross-border: `1`=cross-border, `0`=local. Example: {} |
isSShopText | string | optional | Whether to fully host the store (yes/no). Example: {} |
freeShippingText | string | optional | Whether shipping is free (yes/no). Example: {} |
availableDate | string | optional | Shelf time. Example: {} |
categoryName | string | optional | Product category name. Example: {} |
salesTrendFlagText | string | optional | Sales trend tag. Example: {} |
tiktokUrl | string | optional | TikTok merchandise link. Example: {} |
imageUrl | string | optional | Product image URL. Example: {} |
Examples
Example arguments
{
"keyword": "phone case",
"orderField": "day7_units_sold",
"pageSize": 10,
"region": "US"
}Example structuredContent
{
"code": 0,
"cost": "-1",
"data": {},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}