TikTok Ad Search
Search TikTok ads for competitor and creative research.
Cost38 credits / call
POST ·
https://api.nexscope.ai/api/skill-api/v1/skills/chuhaijiang-tiktok-ad-search/runMCP · nexscope_chuhaijiang_tiktok_ad_searchChoose an integration method
TikTok / Social Commerce
What this API does
Use TikTok Ad Search with documented parameters and structured results for ecommerce research through Nexscope.
Endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/chuhaijiang-tiktok-ad-search/runMCP method
nexscope_chuhaijiang_tiktok_ad_searchStep 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-xxxxxxxxxxxxxxxxxMissing or invalid API keys return an authentication error. Manage keys from .
Step 2 of 3 · Send a request
POST
https://api.nexscope.ai/api/skill-api/v1/skills/chuhaijiang-tiktok-ad-search/runRun 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/api/skill-api/v1/skills/chuhaijiang-tiktok-ad-search/run' \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"pageSize": 3,
"country": "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
| Code | Description |
|---|---|
| 200 | HTTP request completed. Check JSON code; only 0 indicates business success or acceptance. |
| 400 | Request JSON or required API parameters are invalid. |
| 401 | API key is missing, invalid, or cannot be matched to a user. |
| 5xx | API execution or upstream service failed. |
All categories/ TikTok / Social Commerce
POST
https://api.nexscope.ai/api/skill-api/v1/skills/chuhaijiang-tiktok-ad-search/runRun this API
Send a JSON request to execute this API and receive the documented response payload.
Endpoint
| Method | POST |
| Path | https://api.nexscope.ai/api/skill-api/v1/skills/chuhaijiang-tiktok-ad-search/run |
| Auth | Bearer API key |
| Content-Type | application/json |
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
country | string | required | Lowercase request market. Returned country_code may differ; preserve both. Example: us |
page | integer | optional | Page number, starting at 1. No automatic pagination. Example: 1 |
pageSize | integer | optional | Items per page, from 1 to 10. Omission preserves the upstream default. Example: 3 |
keyword | string | optional | Ad search keyword. Example: beauty |
category | string | optional | Provider-approved product category. Example: |
adType | string | optional | Provider-approved ad type value; no enum is published. Example: |
excludeSparkAds | boolean | optional | Whether to exclude Spark Ads. Example: true |
minViews | number | optional | Provider filter value; retain the provider metric definition without unit conversion. Example: 0 |
maxViews | number | optional | Provider filter value; retain the provider metric definition without unit conversion. Example: 0 |
minGmv | number | optional | Provider filter value; retain the provider metric definition without unit conversion. Example: 0 |
maxGmv | number | optional | Provider filter value; retain the provider metric definition without unit conversion. Example: 0 |
minDays | number | optional | Provider filter value; retain the provider metric definition without unit conversion. Example: 0 |
maxDays | number | optional | Provider filter value; retain the provider metric definition without unit conversion. Example: 0 |
sort | string | optional | Provider-approved field followed by :asc or :desc. No complete field enum is published. Example: gmv:desc |
Code example
{
"page": 1,
"pageSize": 3,
"country": "us"
}Response example
Platform response envelope. code 0 indicates success or acceptance; data contains the business result.
{
"data": {
"data": {
"items": [],
"total_count": 0
}
},
"code": 0,
"msg": "ok",
"ts": "0",
"time": "2026-01-01 00:00:00",
"cost": "-1",
"traceId": null
}Response fields
| 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.data | object | optional | Data value used by this API operation. |
data.data.items | array | optional | Items value used by this API operation. |
data.data.items[] | object | required | Item in data data items. |
data.data.items[].id | string | optional | Ad identity and copy: id. |
data.data.items[].video_id | string | optional | Ad identity and copy: video id. |
data.data.items[].product_id | string | optional | Ad identity and copy: product id. |
data.data.items[].advertiser_id | string | optional | Ad identity and copy: advertiser id. |
data.data.items[].ad_url | string | optional | Ad identity and copy: ad url. |
data.data.items[].web_url | string | optional | Ad identity and copy: web url. |
data.data.items[].advertiser_url | string | optional | Ad identity and copy: advertiser url. |
data.data.items[].ad_title | string | optional | Ad identity and copy: ad title. |
data.data.items[].advertiser_name | string | optional | Ad identity and copy: advertiser name. |
data.data.items[].button_text | string | optional | Ad identity and copy: button text. |
data.data.items[].product_title | string | optional | Ad identity and copy: product title. |
data.data.items[].video_play_count | integer | optional | Ad delivery count: video play count. |
data.data.items[].video_like_count | integer | optional | Ad delivery count: video like count. |
data.data.items[].ad_day_count | integer | optional | Ad delivery count: ad day count. |
data.data.items[].video_like_rate | number | optional | Provider engagement ratio: video like rate. |
data.data.items[].video_engagement_rate | number | optional | Provider engagement ratio: video engagement rate. |
data.data.items[].total_gmv | object | optional | Monetary metric with original unit and value: total gmv. |
data.data.items[].video_gpm_30d | object | optional | Monetary metric with original unit and value: video gpm 30d. |
data.data.items[].total_sc | any | optional | Provider total sc. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].last_update_time | any | optional | Provider last update time. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].video_popularity | any | optional | Provider video popularity. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].ad_roas | any | optional | Provider return on ad spend; preserve the runtime JSON type and metric definition. |
data.data.items[].duration | any | optional | Provider duration. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].create_time | any | optional | Provider create time. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].product_l1_category | any | optional | Provider product l1 category. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].product_l2_category | any | optional | Provider product l2 category. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].product_l3_category | any | optional | Provider product l3 category. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.items[].ad_maximum_cost | any | optional | Maximum ad spend as returned; preserve monetary units and the runtime JSON type. |
data.data.items[].ad_create_time | any | optional | Provider ad create time. The source establishes this field name; preserve its runtime JSON type and missing values. |
data.data.total_count | integer | optional | Total count value used by this API operation. |
data.request_id | string | optional | Request id value used by this API operation. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Responses
| Code | Description |
|---|---|
| 200 | HTTP request completed. Check JSON code; only 0 indicates business success or acceptance. |
| 400 | Request JSON or required API parameters are invalid. |
| 401 | API key is missing, invalid, or cannot be matched to a user. |
| 5xx | API 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.
Step 1 of 2 · Connect your MCP client
MCP
V2 recommendedConnect 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/api/skill-api/v2/mcp
MCP-Protocol-Version: 2025-11-25
Content-Type: application/jsonAuthentication
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_chuhaijiang_tiktok_ad_search",
"arguments": {
"page": 1,
"pageSize": 3,
"country": "us"
}
}
}Legacy MCP v1
Existing API-key clients can continue using the compatibility endpoint. New integrations should use MCP v2.
GET / POST /api/skill-api/v1/mcpOnline test
Execute the current API with your API key and JSON payload.
38 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/chuhaijiang-tiktok-ad-search/runMCP method
nexscope_chuhaijiang_tiktok_ad_searchcURL
curl -X POST \
https://api.nexscope.ai/api/skill-api/v1/skills/chuhaijiang-tiktok-ad-search/run \
-H "Authorization: Bearer nk-..." \
-H "Content-Type: application/json" \
-d '{ "page": 1, "pageSize": 3, "country": "us" }'Response
No response yet. Run the request to see the response here.
Related APIs
TikTok Product Market Search
Search TikTok products by market, seller type, shipping, price, and sales filters.
TikTok Product Detail
Look up a TikTok Shop product to research a competing listing.
TikTok Shop Detail
Look up a TikTok shop to research a competing seller.
TikTok Creator Detail
View a TikTok creator’s profile for potential partnerships.