Nexscope

TikTok Product Discovery API

REST API and MCP service documentation generated from server-side API definitions. Responses use the shared code, msg, and data envelope.

API selector
TikTok / Social Commerce

API overview

Search and filter global TikTok Shop products by keyword, category, shop type, commission, sales, creator count, and sorting options.

Try this API
Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/run
MCP method
nexscope_tiktok_product_discovery

Authentication

All run endpoints require a user API key. Send it as a bearer token in the Authorization header.

Authorization: Bearer nk-xxxxxxxxxxxxxxxxx
Missing or invalid API keys return an authentication error. Manage keys from .
POSThttps://api.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/run

Run an API

Request parameters documented by ecommerce.tiktok-product-discovery.

Slugtiktok-product-discovery
HeadersAuthorization: Bearer nk-...
Content-Type: application/json
Request bodyAPI-specific JSON object.
Response bodyPlatform envelope: code, msg, data, ts, time, cost, traceId. Inspect data.status for asynchronous completion.

Status codes

CodeDescription
200HTTP request completed. Check JSON code; only 0 indicates business success or acceptance.
400Request JSON or required API parameters are invalid.
401API key is missing, invalid, or cannot be matched to a user.
5xxAPI execution or upstream service failed.

Example request

curl -X POST https://api.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/run \
  -H "Authorization: Bearer nk-xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{   "pageNumber": 1,   "keyword": "phone case",   "pageSize": 10,   "region": "US" }'
All categories/ TikTok / Social Commerce
POSThttps://api.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/run

Run this API

Send a JSON request to execute this API and receive the documented response payload.

Endpoint

MethodPOST
Pathhttps://api.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/run
AuthBearer API key
Content-Typeapplication/json

Request body

NameTypeRequiredDescription
keywordstringoptional
Search keyword (fuzzy match on product title)
Example: phone case
regionstringoptional
Market region code. Options: US (United States), GB (United Kingdom), 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: US
categorystringoptional
English category name, automatically matched to TikTok category ID. Non-English input must be translated to English first
shopTypeintegeroptional
Store type: 1=local store, 2=cross-border store
Example: 1
isTopSellingbooleanoptional
Filter hot-selling products only
Example: false
isNewListedbooleanoptional
Filter newly listed products only
Example: false
isSshopbooleanoptional
Filter TikTok fully managed (S-shop) products only
Example: false
isFreeShippingbooleanoptional
Filter free shipping products only
Example: false
isLocalWarehousebooleanoptional
Filter local warehouse shipping products only
Example: false
unitsSoldRangeobjectoptional
Sales volume range filter, format: {"min": 100, "max": 5000}
Example: {}
commissionRateRangeobjectoptional
Commission rate range filter, format: {"min": 0.05, "max": 0.20} (decimal, 0.10=10%)
Example: {}
creatorCountRangeobjectoptional
Creator count range filter, format: {"min": 10, "max": 500}
Example: {}
orderFieldstringoptional
Sort field: 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 (creator count). Default descending order
pageintegeroptional
Page number, default 1
Example: 1
pageSizeintegeroptional
Items per page, max 10, default 10
Example: 10

Request example

{
  "pageNumber": 1,
  "keyword": "phone case",
  "pageSize": 10,
  "region": "US"
}

Response body

NameTypeRequiredDescription
dataanyrequired
Data value used by this API operation.
codeintegerrequired
0 means accepted or successful; nonzero is a platform error.
msgstring | nullrequired
Msg value used by this API operation.
tsstringrequired
Epoch milliseconds.
timestringrequired
Server local time: yyyy-MM-dd HH:mm:ss.
coststringrequired
Elapsed milliseconds, never credits; -1 outside web requests.
traceIdstring | nullrequired
Trace id value used by this API operation.

Any of option 1

NameTypeRequiredDescription
dataobjectrequired
Data value used by this API operation.
data.totalintegeroptional
Total number of matching records
Example: 1
data.productsarrayoptional
Product information list (see below)
Example: []
data.columnsarrayoptional
Render column definitions
Example: []
data.typestringoptional
Render style type
Example: null
data.costTokenintegeroptional
Token cost
Example: 1
data.products[].titlestringoptional
Product title
Example: null
data.products[].productIdstringoptional
Product unique identifier ID
Example: example-id
data.products[].regionstringoptional
Market region code
Example: US
data.products[].pricenumberoptional
Product price
Example: 1
data.products[].minPricenumberoptional
Minimum price
Example: 1
data.products[].maxPricenumberoptional
Maximum price
Example: 1
data.products[].currencystringoptional
Currency code
Example: null
data.products[].totalSaleCntintegeroptional
Cumulative total sales
Example: 1
data.products[].totalSale1dCntintegeroptional
1-day sales
Example: 1
data.products[].totalSale7dCntintegeroptional
7-day sales
Example: 1
data.products[].totalSale28dCntintegeroptional
28-day sales
Example: 1
data.products[].totalSale90dCntintegeroptional
90-day sales
Example: 1
data.products[].totalSaleGmvAmtnumberoptional
Cumulative total GMV
Example: 1
data.products[].totalSaleGmv7dAmtnumberoptional
7-day GMV
Example: 1
data.products[].totalSaleGmv28dAmtnumberoptional
28-day GMV
Example: 1
data.products[].totalVideoCntintegeroptional
Number of promotional videos
Example: 1
data.products[].totalLiveCntintegeroptional
Number of livestream promotions
Example: 1
data.products[].totalIflCntintegeroptional
Number of promoting creators
Example: 1
data.products[].productCommissionRatenumberoptional
Product commission rate (decimal, 0.10=10%)
Example: 1
data.products[].productRatingnumberoptional
Product rating
Example: 1
data.products[].reviewCountintegeroptional
Review count
Example: 1
data.products[].skuCountintegeroptional
SKU count
Example: 1
data.products[].shopNamestringoptional
Store name
Example: null
data.products[].shopSellerIdstringoptional
Seller ID
Example: example-id
data.products[].shopTotalUnitsSoldintegeroptional
Store total sales
Example: 1
data.products[].isCrossBorderintegeroptional
Whether cross-border: 1=cross-border, 0=local
Example: 1
data.products[].isSShopTextstringoptional
Whether a fully managed store (Yes/No)
Example: null
data.products[].freeShippingTextstringoptional
Whether free shipping (Yes/No)
Example: null
data.products[].availableDatestringoptional
Listing time
Example: 2026-01-01
data.products[].categoryNamestringoptional
Product category name
Example: null
data.products[].salesTrendFlagTextstringoptional
Sales trend indicator
Example: null
data.products[].tiktokUrlstringoptional
TikTok product link
Example: https://example.com/image.jpg
data.products[].fastmossUrlstringoptional
FastMoss product detail link
Example: https://example.com/image.jpg
data.products[].imageUrlstringoptional
Product image URL
Example: https://example.com/image.jpg
data.titlestringoptional
Provider-specific response title.
Example: null
data.sourceTypestringoptional
Provider-specific source platform type.
Example: null
data.sourceToolstringoptional
Provider-specific source tool name.
Example: null
data.costTimeintegeroptional
Execution time reported by the upstream provider.
Example: null
data.pageintegeroptional
Current page returned by the upstream provider.
Example: null
data.pageSizeintegeroptional
Page size returned by the upstream provider.
Example: null
data.pageItemCountintegeroptional
Item count on the current page returned by the upstream provider.
Example: null
data.totalPageintegeroptional
Total page count returned by the upstream provider.
Example: null
data.dataSnapshotMonthstringoptional
Data snapshot month returned by the upstream provider.
Example: null

Any of option 2

NameTypeRequiredDescription
datanullrequired
Data value used by this API operation.

Response example

Platform response envelope. code 0 indicates success or acceptance; data contains the business result.

{
  "data": {
    "total": 1,
    "products": [
      {
        "productId": "example-id",
        "region": "US",
        "price": 1,
        "minPrice": 1,
        "maxPrice": 1,
        "totalSaleCnt": 1,
        "totalSale1dCnt": 1,
        "totalSale7dCnt": 1,
        "totalSale28dCnt": 1,
        "totalSale90dCnt": 1,
        "totalSaleGmvAmt": 1,
        "totalSaleGmv7dAmt": 1,
        "totalSaleGmv28dAmt": 1,
        "totalVideoCnt": 1,
        "totalLiveCnt": 1,
        "totalIflCnt": 1,
        "productCommissionRate": 1,
        "productRating": 1,
        "reviewCount": 1,
        "skuCount": 1,
        "shopSellerId": "example-id",
        "shopTotalUnitsSold": 1,
        "isCrossBorder": 1,
        "availableDate": "2026-01-01",
        "tiktokUrl": "https://example.com/image.jpg",
        "fastmossUrl": "https://example.com/image.jpg",
        "imageUrl": "https://example.com/image.jpg"
      }
    ],
    "columns": [],
    "costToken": 1
  },
  "code": 0,
  "msg": null,
  "ts": "0",
  "time": "2026-01-01 00:00:00",
  "cost": "-1",
  "traceId": null
}

Responses

CodeDescription
200HTTP request completed. Check JSON code; only 0 indicates business success or acceptance.
400Request JSON or required API parameters are invalid.
401API key is missing, invalid, or cannot be matched to a user.
5xxAPI execution or upstream service failed.

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.

Related APIs

MCP

Use the MCP endpoint when an agent needs to discover and call API tools with JSON-RPC.

GET /api/skill-api/v1/mcp
POST /api/skill-api/v1/mcp
Authorization: Bearer nk-xxxxxxxxxxxxxxxxx
Content-Type: application/json

Call a tool

{
  "jsonrpc": "2.0",
  "id": "tool-call-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_tiktok_product_discovery",
    "arguments": {
      "pageNumber": 1,
      "keyword": "phone case",
      "pageSize": 10,
      "region": "US"
    }
  }
}

Online test

Execute the current API with your API key and JSON payload.

15 credits / callAPI usage records

Try it

Send a real request with the same contract shown in the reference.

Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/run
MCP method
nexscope_tiktok_product_discovery
cURL
curl -X POST \
  https://api.nexscope.ai/api/skill-api/v1/skills/tiktok-product-discovery/run \
  -H "Authorization: Bearer nk-..." \
  -H "Content-Type: application/json" \
  -d '{ "pageNumber": 1, "keyword": "phone case", "pageSize": 10, "region": "US" }'
Response
No response yet. Run the request to see the response here.