Nexscope

TikTok Product Analytics

Analyze TikTok Shop product leaderboards and product-level price, sales, revenue, commission, listing status, and shop data. Call it via REST API or MCP.

CostRecent Avg. 22 · Range 11–22 credits / call
Try online
POST · https://api.nexscope.ai/kd/product/rankMCP · nexscope_tiktok_product_analytics

What this API does

Analyze TikTok Shop product leaderboards and product-level price, sales, revenue, commission, listing status, and shop data. The request accepts region, dateRange, currency, language, category_ids. Its documented result includes errcode, errmsg, product_id, product_name, unit_price, sales_volumn, revenue, video_revenue.

TikTok Product Analytics API use cases

Inspect a candidate product

To inspect a candidate product, a marketplace analyst submits region and dateRange to TikTok Product Analytics. The returned errcode, errmsg, product_id help inspect the documented attributes of the candidate product.

Compare listing details

A marketplace analyst uses TikTok Product Analytics with region and dateRange to compare listing details. The returned errcode, errmsg, product_id help compare product details with another shortlisted listing.

Prepare product evidence for a sourcing review

For this workflow, a marketplace analyst calls TikTok Product Analytics with region and dateRange to prepare product evidence for a sourcing review. The result helps record product facts before a sourcing discussion.

TikTok Product Analytics API FAQ

What does the TikTok Product Analytics API return?

Analyze TikTok Shop product leaderboards and product-level price, sales, revenue, commission, listing status, and shop data. The documented output includes errcode, errmsg, product_id, product_name, unit_price, sales_volumn, revenue, video_revenue. It corresponds to the supplied region, dateRange, currency, language, category_ids. Optional fields can be absent; a missing value should not be interpreted as a measured zero. Example values illustrate the response shape, rather than live account results.

How many credits does the TikTok Product Analytics API cost?

The current documented cost is Recent Avg. 22 · Range 11–22 credits / call. This is the same cost shown at the top of this page. If a range or estimate is displayed, the final charge depends on the request. Review your available credits and the pricing page before calling the API, and check API usage records for the actual charge.

How do I call the TikTok Product Analytics API from my app or an MCP client?

Send a POST request to https://api.nexscope.ai/kd/product/rank with your API key as a Bearer token and the JSON inputs shown in API integration. In a compatible MCP client such as Claude or Cursor, connect Nexscope and call nexscope_tiktok_product_analytics. Use the MCP arguments shown in the MCP guide, or switch Online test to MCP to review its request before adding it to your app.

View plans and creditsConnect this API with MCP

Try this API
Endpoint
https://api.nexscope.ai/kd/product/rank
MCP method
nexscope_tiktok_product_analytics

Step 1 of 3 · Authenticate

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 .

Step 2 of 3 · Send a request

POSThttps://api.nexscope.ai/kd/product/rank

Run an API

Send a JSON request body using the parameters described below.

Example request

Replace YOUR_API_KEY, then run this command in your terminal.

curl -X POST 'https://api.nexscope.ai/kd/product/rank' \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "currency": "USD",
  "dateRange": "last7Day",
  "pageNumber": 1,
  "pageSize": 20,
  "region": "US"
}'

Code example

{
  "currency": "USD",
  "dateRange": "last7Day",
  "pageNumber": 1,
  "pageSize": 20,
  "region": "US"
}

Step 3 of 3 · Inspect the result

Check the response

Read code for the request status and data for the result. Open the parameter and response reference for the full field definitions.

HTTP status codes

CodeDescription
200Default HTTP response for both success and many business errors. Only outer JSON code 0 indicates success or asynchronous acceptance; inspect data for the result.
429Execution admission rate limit; honor Retry-After when present.
503Execution admission is temporarily unavailable; honor Retry-After when present.
Opt-inX-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.
All categories/ TikTok Intelligence KD
POSThttps://api.nexscope.ai/kd/product/rank

Run this API

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

Endpoint

MethodPOST
Pathhttps://api.nexscope.ai/kd/product/rank
AuthBearer API key
Content-Typeapplication/json

Request parameters

NameTypeRequiredDescription
regionstringoptional
Region/market code, such as `US`
dateRangestringoptional
Time range, such as `last7Day`, `last30Day`
currencystringoptional
Currency unit, such as `USD`
languagestringoptional
Return language, for example `zh-CN`, `en-US`
category_idsstring[]optional
Category ID list filter
shop_idstringoptional
Store ID filter
creator_idstringoptional
Expert ID filtering
video_idstringoptional
Returns the products associated with the specified video
livestream_idstringoptional
Returns the products associated with the specified live broadcast
revenue_rangestringoptional
Transaction amount / GMV range, left closed and right open
is_affiliatestringoptional
Whether it is an alliance product: `PUBLIC_PLAN` (yes) or `NON_AFFILIATE` (no)
commission_ratenumberoptional
Affiliate product commission rate, such as `0.15`
is_tts_productintegeroptional
Whether the product is fully managed: `1` (fully managed) or `0` (not fully managed)
unit_price_rangestringoptional
Product price range, left closed and right open
sortFieldobjectoptional
Sorting specification object, the available fields are subject to those actually accepted by the gateway.
pageNumberintegeroptional
Page number, range 1-5
pageSizeintegeroptional
Number of items per page, range 5-100
productIdstringrequired
TikTok product ID, such as `1729508370969629931`; the string can avoid the loss of large integer precision and can be obtained from the `product_id` of the list response

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 (37 fields)

NameTypeRequiredDescription
errcodeintegeroptional
Business status code, `200` indicates success
dataarrayoptional
List or detailed data; real response does not return `total`
costTokenintegeroptional
The deduction token for this call is usually `14000`
errmsgstringoptional
Status message, `ok` on success
product_idstringoptional
Product ID (string format to avoid loss of large integer precision), can be used as `productId` to query details
product_namestringoptional
Product title
unit_pricenumberoptional
Unit price, currency depends on `region`, such as US is USD
sales_volumnintegeroptional
Sales volume (units); field name `sales_volumn`, not `volume`
revenuenumberoptional
Total sales / GMV, equals `video_revenue` + `live_revenue` + `showcase_revenue`
video_revenuenumberoptional
Video channel sales
live_revenuenumberoptional
Live broadcast channel sales
showcase_revenuenumberoptional
Window/display channel sales
revenue_growth_ratenumberoptional
Sales growth rate (percentage, e.g. `27.94` represents 27.94%)
commission_ratenumberoptional
Commission rate, direct percentage, such as `25.0` means 25%, not basis points
launch_datestringoptional
Date on shelves (`YYYY-MM-DD`)
product_idstringoptional
Unique product ID (string, to avoid loss of large integer precision)
product_namestringoptional
Product name
product_regionstringoptional
The region/market where the product is located, such as `us`
product_shop_idstringoptional
Store ID
pri_cate_idstringoptional
First level category ID
sec_cate_idstringoptional
Secondary category ID
ter_cate_idstringoptional
Third-level category ID
unit_pricenumberoptional
Unit price in requested `currency` currency
min_pricenumberoptional
Lowest price in requested `currency` currency
max_pricenumberoptional
Highest price in requested `currency` currency
revenuenumberoptional
Total sales/GMV by requested `currency` currency
sales_volumnintegeroptional
Sales volume, field spelled `volumn`
commission_ratenumberoptional
Commission rate, direct percentage, `25.0` means 25%
product_review_countintegeroptional
Number of product reviews
launch_datestringoptional
Date on shelves (`YYYY-MM-DD`)
delivery_typestringoptional
Shipping method, such as `local`
video_numberintegeroptional
Number of associated videos
video_revenuenumberoptional
Sales generated by video in requested `currency` currency
live_numberintegeroptional
Number of associated live broadcasts
live_revenuenumberoptional
Sales generated by live streaming, in requested `currency` currency
shopping_mall_revenuenumberoptional
Marketplace sales in requested `currency` currency
creator_numberintegeroptional
Number of connected people

Responses

CodeDescription
200Default HTTP response for both success and many business errors. Only outer JSON code 0 indicates success or asynchronous acceptance; inspect data for the result.
429Execution admission rate limit; honor Retry-After when present.
503Execution admission is temporarily unavailable; honor Retry-After when present.
Opt-inX-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.

Step 1 of 2 · Connect your MCP client

MCP

V2 recommended

Connect remote agents through the standard MCP 2025-11-25 Streamable HTTP endpoint. Use OAuth 2.1 Authorization Code with PKCE, or an API key for compatibility.

POST https://api.nexscope.ai/mcp
MCP-Protocol-Version: 2025-11-25
Content-Type: application/json
Authentication

OAuth clients request the mcp:tools scope. The endpoint's 401 response advertises protected-resource metadata for authorization discovery.

Step 2 of 2 · Call the tool

Call a tool

{
  "jsonrpc": "2.0",
  "id": "tool-call-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_tiktok_product_analytics",
    "arguments": {
      "dateRange": "last30Day",
      "pageNumber": 1,
      "pageSize": 10,
      "productId": "1732505564636812173",
      "region": "US",
      "sortField": {}
    }
  }
}

Legacy MCP v1

Existing API-key clients can continue using the compatibility endpoint. New integrations should use MCP v2.

GET / POST /mcp/legacy

Data Example

Request parameters

{
  "productId": "1734020651102734110",
  "region": "TH",
  "currency": "THB",
  "dateRange": "last30Day",
  "pageNumber": 1,
  "pageSize": 5
}

Response

{
  "code": 0,
  "msg": null,
  "data": {
    "data": [
      {
        "sec_cate_id": "950792",
        "product_region": "th",
        "creator_number": 611,
        "video_revenue": 2203814.26,
        "sales_volumn": 30211,
        "video_number": 1970,
        "ter_cate_id": "951176",
        "unit_price": 73.24,
        "product_name": "AKCKแผ่นแปะสมุนไพรหอมระเหยจากพืช ช่วยผ่อนคลายจิตใจ สร้างบรรยากาศสบายก่อนนอน และบรรเทาความเจ็บปวดในยามค่ำคืน",
        "revenue": 2212535.2,
        "max_price": 201.73,
        "min_price": 84.47,
        "delivery_type": "local",
        "product_review_count": 9060,
        "product_id": "1734020651102734110",
        "pri_cate_id": "700645",
        "live_number": 222,
        "commission_rate": 11,
        "launch_date": "2026-01-16",
        "shopping_mall_revenue": 71.15,
        "product_description": [
          {
            "sub": [
              {
                "b": true,
                "t": "ฝ่ายบริการลูกค้า: หากคุณได้รับสินค้าที่เสียหาย จำนวนไม่ครบ หรือสินค้ามีตำหนิ โปรดติดต่อฝ่ายบริการลูกค้าของเราผ่านทางข้อความส่วนตัวใน TikTok ก่อนที่จะเขียนรีวิว และส่งรูปภาพของปัญหามาด้วย เราจะแก้ไขปัญหาให้คุณทันที!"
              }
            ],
            "text": "ฝ่ายบริการลูกค้า: หากคุณได้รับสินค้าที่เสียหาย จำนวนไม่ครบ หรือสินค้ามีตำหนิ โปรดติดต่อฝ่ายบริการลูกค้าของเราผ่านทางข้อความส่วนตัวใน TikTok ก่อนที่จะเขียนรีวิว และส่งรูปภาพของปัญหามาด้วย เราจะแก้ไขปัญหาให้คุณทันที!",
            "type": "text"
          },
          {
            "sub": [
              {
                "t": "วิธีใช้:"
              }
            ],
            "text": "วิธีใช้:",
            "type": "text"
          },
          {
            "sub": [
              {
                "t": "1. ลอกแผ่นฟิล์มออก"
              }
            ],
            "text": "1. ลอกแผ่นฟิล์มออก",
            "type": "text"
          },
          {
            "sub": [
              {
                "t": "2. ทาผลิตภัณฑ์ลงบนร่างกายของคุณ"
              }
            ],
            "text": "2. ทาผลิตภัณฑ์ลงบนร่างกายของคุณ",
            "type": "text"
          },
          {
            "sub": [
              {
                "t": "3. ลอกออกหลังจากตื่นนอน (ประมาณ 8-12 ชั่วโมง)"
              }
            ],
            "text": "3. ลอกออกหลังจากตื่นนอน (ประมาณ 8-12 ชั่วโมง)",
            "type": "text"
          },
          {
            "sub": [
              {
                "t": "4. แนะนำว่าไม่ควรใช้เกิน 48 ชั่วโมง มิเช่นนั้นผิวหนังอาจรับไม่ไหว (แตกต่างกันไปในแต่ละบุคคล)"
              }
            ],
            "text": "4. แนะนำว่าไม่ควรใช้เกิน 48 ชั่วโมง มิเช่นนั้นผิวหนังอาจรับไม่ไหว (แตกต่างกันไปในแต่ละบุคคล)",
            "type": "text"
          },
          {
            "sub": [
              {
                "t": "ชื่อผลิตภัณฑ์: แผ่นแปะช่วยนอนหลับ สรรพคุณ: ช่วยในการนอนหลับ จำนวน: 12 ชิ้น วัสดุ: ผ้าไม่ทอ อายุการใช้งาน: 3 ปี การเก็บรักษา: เก็บในที่แห้งและเย็น"
              }
            ],
            "text": "ชื่อผลิตภัณฑ์: แผ่นแปะช่วยนอนหลับ สรรพคุณ: ช่วยในการนอนหลับ จำนวน: 12 ชิ้น วัสดุ: ผ้าไม่ทอ อายุการใช้งาน: 3 ปี การเก็บรักษา: เก็บในที่แห้งและเย็น",
            "type": "text"
          },
          {
            "image": {
              "remove_gap": "false",
              "url_list": [
                "https://p16-oec-sg.ibyteimg.com/tos-alisg-i-aphluv4xwc-sg/d908990783624c5d9e106c582fb31d00~tplv-aphluv4xwc-origin-jpeg.jpeg?dr=15568&t=555f072d&ps=933b5bde&shp=a3510d86&shcp=6ce186a1&idc=my2&from=2739998086",
                "https://p19-oec-sg.ibyteimg.com/tos-alisg-i-aphluv4xwc-sg/d908990783624c5d9e106c582fb31d00~tplv-aphluv4xwc-origin-jpeg.jpeg?dr=15568&t=555f072d&ps=933b5bde&shp=a3510d86&shcp=6ce186a1&idc=my2&from=2739998086"
              ],
              "width": 1728,
              "uri": "tos-alisg-i-aphluv4xwc-sg/d908990783624c5d9e106c582fb31d00",
              "height": 2304
            },
            "type": "image"
          },
          {
            "image": {
              "remove_gap": "false",
              "url_list": [
                "https://p16-oec-sg.ibyteimg.com/tos-alisg-i-aphluv4xwc-sg/a18f59aa845e4874983411919a78a34a~tplv-aphluv4xwc-origin-jpeg.jpeg?dr=15568&t=555f072d&ps=933b5bde&shp=a3510d86&shcp=6ce186a1&idc=my2&from=2739998086",
                "https://p19-oec-sg.ibyteimg.com/tos-alisg-i-aphluv4xwc-sg/a18f59aa845e4874983411919a78a34a~tplv-aphluv4xwc-origin-jpeg.jpeg?dr=15568&t=555f072d&ps=933b5bde&shp=a3510d86&shcp=6ce186a1&idc=my2&from=2739998086"
              ],
              "width": 1728,
              "uri": "tos-alisg-i-aphluv4xwc-sg/a18f59aa845e4874983411919a78a34a",
              "height": 2304
            },
            "type": "image"
          },
          {
            "image": {
              "remove_gap": "false",
              "url_list": [
                "https://p16-oec-sg.ibyteimg.com/tos-alisg-i-aphluv4xwc-sg/b07a49c754f846acb3e6d465e77ab4f9~tplv-aphluv4xwc-origin-jpeg.jpeg?dr=15568&t=555f072d&ps=933b5bde&shp=a3510d86&shcp=6ce186a1&idc=my2&from=2739998086",
                "https://p19-oec-sg.ibyteimg.com/tos-alisg-i-aphluv4xwc-sg/b07a49c754f846acb3e6d465e77ab4f9~tplv-aphluv4xwc-origin-jpeg.jpeg?dr=15568&t=555f072d&ps=933b5bde&shp=a3510d86&shcp=6ce186a1&idc=my2&from=2739998086"
              ],
              "width": 1728,
              "uri": "tos-alisg-i-aphluv4xwc-sg/b07a49c754f846acb3e6d465e77ab4f9",
              "height": 2304
            },
            "type": "image"
          }
        ],
        "product_shop_id": "7494255174154028830",
        "live_revenue": 8649.8
      }
    ]
  }
}

Online test

Execute the current API with your API key and JSON payload. Online tests use this site's configured API environment; the Endpoint and copyable examples use the public integration address.

Recent Avg. 22 · Range 11–22 credits / callAPI usage records

Try it

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

Endpoint
/kd/product/rank
MCP method
nexscope_tiktok_product_analytics
cURL
curl -X POST \
  https://api.nexscope.ai/kd/product/rank \
  -H "Authorization: Bearer nk-..." \
  -H "Content-Type: application/json" \
  -d '{ "currency": "USD", "dateRange": "last7Day", "pageNumber": 1, "pageSize": 20, "region": "US" }'
Response
No response yet. Run the request to see the response here.

Related APIs