TikTok / Social Commerce
TikTok Batch Product Detail MCP Tool
Batch query TikTok product detail data, including multi-period sales and GMV (1d/7d/15d/30d/60d/90d/cumulative), live sales and live GMV, promoting video and creator data, views, price, rating, review count, commission rate, and delisted/fully-managed status. Supports batch retrieval by product ID or TikTok Shop product URL.
MCP tool name
nexscope_tiktok_batch_product_detailEquivalent REST API path
https://api.nexscope.ai/api/skill-api/v1/skills/tiktok-batch-product-detail/runJSON-RPC method
tools/callAuthentication
Send the user API key as a bearer token on every MCP JSON-RPC request.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication is missing or invalid, ask the user to open API Access and copy a valid key before calling this tool.
Call this MCP tool
Use tools/call with the MCP tool name below. The arguments object should match the table on this page.
{
"jsonrpc": "2.0",
"id": "tiktok-batch-product-detail-1",
"method": "tools/call",
"params": {
"name": "nexscope_tiktok_batch_product_detail",
"arguments": {
"productIds": [
"1732294342978343112"
]
}
}
}REST API equivalent
POST https://api.nexscope.ai/api/skill-api/v1/skills/tiktok-batch-product-detail/runCanonical detail URL
https://www.nexscope.ai/mcp-map/tiktok-batch-product-detailArguments
| Name | Type | Required | Meaning |
|---|---|---|---|
productIds | array | optional | List of product IDs (max 1000). Example: ["1729382310407603945", "1729382310407603946"] Example: [
"1732294342978343112"
] |
productUrls | array | optional | List of product URLs (max 1000), in the form https://shop.tiktok.com/us/pdp/<slug>/<productId>?...; the backend will extract the trailing productId from each URL and merge into productIds, not mutually exclusive with productIds Example: [] |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
data | any | required | Data value used by this API operation. |
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
msg | string | null | required | Msg value used by this API operation. |
ts | string | required | Epoch milliseconds. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
traceId | string | null | required | Trace id value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.total | integer | optional | Record count Example: 1 |
data.products | array | optional | Product detail list (see product object below) Example: [] |
data.columns | array | optional | Rendered columns Example: [] |
data.type | string | optional | Render style Example: null |
data.costToken | integer | optional | Token cost Example: 1 |
data.products[].productId | string | optional | Product ID Example: example-id |
data.products[].productName | string | optional | Product name Example: null |
data.products[].imageUrl | string | optional | Product image Example: https://example.com/image.jpg |
data.products[].productImageUrls | array | optional | Product image URL list Example: [] |
data.products[].region | string | optional | Region code Example: US |
data.products[].sellerId | string | optional | Seller ID Example: example-id |
data.products[].categoryId | string | optional | Primary category ID Example: example-id |
data.products[].categoryL2Id | string | optional | Secondary category ID Example: example-id |
data.products[].categoryL3Id | string | optional | Tertiary category ID Example: example-id |
data.products[].minPrice | number | optional | Minimum SKU price (USD) Example: 1 |
data.products[].maxPrice | number | optional | Maximum SKU price (USD) Example: 1 |
data.products[].spuAvgPrice | number | optional | SPU average price (USD) Example: 1 |
data.products[].productRating | number | optional | Product rating Example: 1 |
data.products[].reviewCount | integer | optional | Review count Example: 1 |
data.products[].productCommissionRate | number | optional | Product commission rate Example: 1 |
data.products[].totalSaleCnt | integer | optional | Total sales Example: 1 |
data.products[].totalSale1dCnt | integer | optional | Sales in last 1 day Example: 1 |
data.products[].totalSale7dCnt | integer | optional | Sales in last 7 days Example: 1 |
data.products[].totalSale15dCnt | integer | optional | Sales in last 15 days Example: 1 |
data.products[].totalSale30dCnt | integer | optional | Sales in last 30 days Example: 1 |
data.products[].totalSale60dCnt | integer | optional | Sales in last 60 days Example: 1 |
data.products[].totalSale90dCnt | integer | optional | Sales in last 90 days Example: 1 |
data.products[].totalSaleGmvAmt | number | optional | Total GMV Example: 1 |
data.products[].totalSaleGmv1dAmt | number | optional | GMV in last 1 day Example: 1 |
data.products[].totalSaleGmv7dAmt | number | optional | GMV in last 7 days Example: 1 |
data.products[].totalSaleGmv15dAmt | number | optional | GMV in last 15 days Example: 1 |
data.products[].totalSaleGmv30dAmt | number | optional | GMV in last 30 days Example: 1 |
data.products[].totalSaleGmv60dAmt | number | optional | GMV in last 60 days Example: 1 |
data.products[].totalSaleGmv90dAmt | number | optional | GMV in last 90 days Example: 1 |
data.products[].totalLiveCnt | integer | optional | Total livestream count Example: 1 |
data.products[].totalLive1dCnt | integer | optional | Livestream count in last 1 day Example: 1 |
data.products[].totalLive7dCnt | integer | optional | Livestream count in last 7 days Example: 1 |
data.products[].totalLive15dCnt | integer | optional | Livestream count in last 15 days Example: 1 |
data.products[].totalLive30dCnt | integer | optional | Livestream count in last 30 days Example: 1 |
data.products[].totalLive60dCnt | integer | optional | Livestream count in last 60 days Example: 1 |
data.products[].totalLive90dCnt | integer | optional | Livestream count in last 90 days Example: 1 |
data.products[].totalLiveSale1dCnt | integer | optional | Livestream sales in last 1 day Example: 1 |
data.products[].totalLiveSale7dCnt | integer | optional | Livestream sales in last 7 days Example: 1 |
data.products[].totalLiveSale15dCnt | integer | optional | Livestream sales in last 15 days Example: 1 |
data.products[].totalLiveSale30dCnt | integer | optional | Livestream sales in last 30 days Example: 1 |
data.products[].totalLiveSale60dCnt | integer | optional | Livestream sales in last 60 days Example: 1 |
data.products[].totalLiveSale90dCnt | integer | optional | Livestream sales in last 90 days Example: 1 |
data.products[].totalLiveSaleGmv1dAmt | integer | optional | Livestream GMV in last 1 day Example: 1 |
data.products[].totalLiveSaleGmv7dAmt | integer | optional | Livestream GMV in last 7 days Example: 1 |
data.products[].totalLiveSaleGmv15dAmt | integer | optional | Livestream GMV in last 15 days Example: 1 |
data.products[].totalLiveSaleGmv30dAmt | integer | optional | Livestream GMV in last 30 days Example: 1 |
data.products[].totalLiveSaleGmv60dAmt | integer | optional | Livestream GMV in last 60 days Example: 1 |
data.products[].totalLiveSaleGmv90dAmt | integer | optional | Livestream GMV in last 90 days Example: 1 |
data.products[].totalVideoCnt | integer | optional | Total video count Example: 1 |
data.products[].totalVideo1dCnt | integer | optional | Video count in last 1 day Example: 1 |
data.products[].totalVideo7dCnt | integer | optional | Video count in last 7 days Example: 1 |
data.products[].totalVideo15dCnt | integer | optional | Video count in last 15 days Example: 1 |
data.products[].totalVideo30dCnt | integer | optional | Video count in last 30 days Example: 1 |
data.products[].totalVideo60dCnt | integer | optional | Video count in last 60 days Example: 1 |
data.products[].totalVideo90dCnt | integer | optional | Video count in last 90 days Example: 1 |
data.products[].totalIflCnt | integer | optional | Total creator count Example: 1 |
data.products[].totalIflVideo1dCnt | integer | optional | Creator video count in last 1 day Example: 1 |
data.products[].totalIflVideo7dCnt | integer | optional | Creator video count in last 7 days Example: 1 |
data.products[].totalIflVideo15dCnt | integer | optional | Creator video count in last 15 days Example: 1 |
data.products[].totalIflVideo30dCnt | integer | optional | Creator video count in last 30 days Example: 1 |
data.products[].totalIflVideo60dCnt | integer | optional | Creator video count in last 60 days Example: 1 |
data.products[].totalIflVideo90dCnt | integer | optional | Creator video count in last 90 days Example: 1 |
data.products[].totalIflLive1dCnt | integer | optional | Creator livestream count in last 1 day Example: 1 |
data.products[].totalIflLive7dCnt | integer | optional | Creator livestream count in last 7 days Example: 1 |
data.products[].totalIflLive15dCnt | integer | optional | Creator livestream count in last 15 days Example: 1 |
data.products[].totalIflLive30dCnt | integer | optional | Creator livestream count in last 30 days Example: 1 |
data.products[].totalIflLive60dCnt | integer | optional | Creator livestream count in last 60 days Example: 1 |
data.products[].totalIflLive90dCnt | integer | optional | Creator livestream count in last 90 days Example: 1 |
data.products[].totalViewsCnt | integer | optional | Total view count Example: 1 |
data.products[].totalViews1dCnt | integer | optional | Views in last 1 day Example: 1 |
data.products[].totalViews7dCnt | integer | optional | Views in last 7 days Example: 1 |
data.products[].totalViews15dCnt | integer | optional | Views in last 15 days Example: 1 |
data.products[].totalViews30dCnt | integer | optional | Views in last 30 days Example: 1 |
data.products[].totalViews60dCnt | integer | optional | Views in last 60 days Example: 1 |
data.products[].totalViews90dCnt | integer | optional | Views in last 90 days Example: 1 |
data.products[].discount | string | optional | Discount info Example: null |
data.products[].freeShipping | integer | optional | Whether free shipping Example: 1 |
data.products[].salesFlag | integer | optional | Primary shipping method Example: 1 |
data.products[].salesTrendFlag | integer | optional | Sales trend indicator: 0=stable, 1=rising, 2=falling Example: 1 |
data.products[].isSShop | integer | optional | Whether fully managed store Example: 1 |
data.products[].offMark | integer | optional | Product delisting indicator Example: 1 |
data.products[].firstCrawlDt | string | optional | First crawl date Example: null |
data.products[].descDetail | string | optional | Product detail description Example: null |
data.title | string | optional | Provider-specific response title. Example: null |
data.sourceType | string | optional | Provider-specific source platform type. Example: null |
data.sourceTool | string | optional | Provider-specific source tool name. Example: null |
data.costTime | integer | optional | Execution time reported by the upstream provider. Example: null |
data.page | integer | optional | Current page returned by the upstream provider. Example: null |
data.pageSize | integer | optional | Page size returned by the upstream provider. Example: null |
data.pageItemCount | integer | optional | Item count on the current page returned by the upstream provider. Example: null |
data.totalPage | integer | optional | Total page count returned by the upstream provider. Example: null |
data.dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Examples
Example arguments
{
"productIds": [
"1732294342978343112"
]
}Example structuredContent
{
"data": {
"total": 1,
"products": [
{
"productId": "example-id",
"imageUrl": "https://example.com/image.jpg",
"productImageUrls": [],
"region": "US",
"sellerId": "example-id",
"categoryId": "example-id",
"categoryL2Id": "example-id",
"categoryL3Id": "example-id",
"minPrice": 1,
"maxPrice": 1,
"spuAvgPrice": 1,
"productRating": 1,
"reviewCount": 1,
"productCommissionRate": 1,
"totalSaleCnt": 1,
"totalSale1dCnt": 1,
"totalSale7dCnt": 1,
"totalSale15dCnt": 1,
"totalSale30dCnt": 1,
"totalSale60dCnt": 1,
"totalSale90dCnt": 1,
"totalSaleGmvAmt": 1,
"totalSaleGmv1dAmt": 1,
"totalSaleGmv7dAmt": 1,
"totalSaleGmv15dAmt": 1,
"totalSaleGmv30dAmt": 1,
"totalSaleGmv60dAmt": 1,
"totalSaleGmv90dAmt": 1,
"totalLiveCnt": 1,
"totalLive1dCnt": 1,
"totalLive7dCnt": 1,
"totalLive15dCnt": 1,
"totalLive30dCnt": 1,
"totalLive60dCnt": 1,
"totalLive90dCnt": 1,
"totalLiveSale1dCnt": 1,
"totalLiveSale7dCnt": 1,
"totalLiveSale15dCnt": 1,
"totalLiveSale30dCnt": 1,
"totalLiveSale60dCnt": 1,
"totalLiveSale90dCnt": 1,
"totalLiveSaleGmv1dAmt": 1,
"totalLiveSaleGmv7dAmt": 1,
"totalLiveSaleGmv15dAmt": 1,
"totalLiveSaleGmv30dAmt": 1,
"totalLiveSaleGmv60dAmt": 1,
"totalLiveSaleGmv90dAmt": 1,
"totalVideoCnt": 1,
"totalVideo1dCnt": 1,
"totalVideo7dCnt": 1,
"totalVideo15dCnt": 1,
"totalVideo30dCnt": 1,
"totalVideo60dCnt": 1,
"totalVideo90dCnt": 1,
"totalIflCnt": 1,
"totalIflVideo1dCnt": 1,
"totalIflVideo7dCnt": 1,
"totalIflVideo15dCnt": 1,
"totalIflVideo30dCnt": 1,
"totalIflVideo60dCnt": 1,
"totalIflVideo90dCnt": 1,
"totalIflLive1dCnt": 1,
"totalIflLive7dCnt": 1,
"totalIflLive15dCnt": 1,
"totalIflLive30dCnt": 1,
"totalIflLive60dCnt": 1,
"totalIflLive90dCnt": 1,
"totalViewsCnt": 1,
"totalViews1dCnt": 1,
"totalViews7dCnt": 1,
"totalViews15dCnt": 1,
"totalViews30dCnt": 1,
"totalViews60dCnt": 1,
"totalViews90dCnt": 1,
"freeShipping": 1,
"salesFlag": 1,
"salesTrendFlag": 1,
"isSShop": 1,
"offMark": 1
}
],
"columns": [],
"costToken": 1
},
"code": 0,
"msg": null,
"ts": "0",
"time": "2026-01-01 00:00:00",
"cost": "-1",
"traceId": null
}