TikTok video search
Page through public TikTok videos for a keyword, sorted by relevance or likes and optionally limited by publish time.
/v1/tiktok/videos/searchChinese name: TikTok 视频搜索 · 视频 · 搜索 按关键词分页搜索 TikTok 公开视频,可按相关度或点赞排序并限定发布时间。tiktok.videos.search@v1
Price per call
¥0.02/ call
Nonempty complete results are charged; empty, partial, and failed results are not.
Checking live statusTry it
This API is coming soon
We are running launch checks. Once live, you can try it right here at the price shown above; nothing is charged before then. You can already read the parameters and response example.
Sign in and run one real call. The result and charge appear right here.
Security check
Loading the security check…
Checking live execution status…
Execution result
// Result
Request parameters
keywordstringrequiredminLength: 1 · maxLength: 100
Example:
"skincare routine"sort_typestringoptionalenum: "0" | "1" · default: "0"
Example:
"0"publish_timestringoptionalenum: "0" | "1" | "7" | "30" | "90" | "180" · default: "0"
Example:
"7"countintegeroptionaldefault: 20 · minimum: 1 · maximum: 30
cursorstringoptionalminLength: 1
Request JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"sort_type": {
"default": "0",
"type": "string",
"enum": [
"0",
"1"
]
},
"publish_time": {
"default": "0",
"type": "string",
"enum": [
"0",
"1",
"7",
"30",
"90",
"180"
]
},
"count": {
"default": 20,
"type": "integer",
"minimum": 1,
"maximum": 30
},
"cursor": {
"type": "string",
"minLength": 1
}
},
"required": [
"keyword"
],
"additionalProperties": false
}Code samples
Install the SDK with npm i @dataxapi/sdk or pip install dataxapi, and put your API key in the DATAXAPI_API_KEY environment variable.
curl -X POST https://api.dataxapi.com/v1/tiktok/videos/search \
-H "Authorization: Bearer $DATAXAPI_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"keyword":"skincare routine","sort_type":"0","publish_time":"7"}'import { ExactApiClient } from "@dataxapi/sdk";
const client = new ExactApiClient({
baseUrl: "https://api.dataxapi.com",
apiKey: process.env.DATAXAPI_API_KEY,
});
const result = await client.call("tiktok_videos_search_v1", {
"keyword": "skincare routine",
"sort_type": "0",
"publish_time": "7"
});
console.log(result.data);import os
from dataxapi import ExactApiClient
client = ExactApiClient("https://api.dataxapi.com", os.environ["DATAXAPI_API_KEY"])
result = client.call("tiktok_videos_search_v1", {
"keyword": "skincare routine",
"sort_type": "0",
"publish_time": "7",
})
print(result["data"])[mcp_servers.dataxapi]
url = "https://api.dataxapi.com/mcp"
bearer_token_env_var = "DATAXAPI_API_KEY"Response example
{
"code": 200,
"request_id": "req_example_tiktok_videos_search",
"message": "success",
"data": {
"items": [
{
"aweme_id": "7326156045968067873",
"desc": "Public TikTok caption",
"create_time": 1705900000,
"author": {
"uid": "107955",
"unique_id": "tiktok",
"nickname": "TikTok"
},
"statistics": {
"digg_count": 1200,
"comment_count": 80,
"share_count": 35,
"play_count": 54000
},
"region": "US",
"text_extra": [
{
"hashtag_name": "fyp"
}
],
"video": {
"duration": 15000,
"cover": {
"url_list": [
"https://p16-sign.tiktokcdn-us.com/obj/cover.jpeg"
]
},
"play_addr": {
"url_list": [
"https://v16m.tiktokcdn-us.com/video.mp4"
]
}
},
"share_url": "https://www.tiktok.com/@tiktok/video/7326156045968067873"
}
]
},
"page": {
"next_cursor": "cursor_example"
},
"warnings": [],
"meta": {
"listing_id": "tiktok.videos.search",
"version": "v1",
"catalog_release_id": "catalog-production-2026-09-19.b069be57",
"price_book_version": "pricebook-production-2026-09-19.4487e352",
"result_status": "complete",
"charged_amount": "0.02",
"balance_after": "49.98",
"currency": "CNY"
}
}Response fields
codenumber- const: 200
request_idstringmessagestring- const: "success"
dataobjectpageobjectwarningsarraymetaobject
Response JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"code": {
"type": "number",
"const": 200
},
"request_id": {
"type": "string"
},
"message": {
"type": "string",
"const": "success"
},
"data": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"aweme_id": {},
"desc": {},
"create_time": {},
"author": {},
"statistics": {},
"region": {},
"text_extra": {},
"video": {},
"share_url": {}
},
"additionalProperties": false
}
}
},
"required": [
"items"
],
"additionalProperties": false
},
"page": {
"type": "object",
"properties": {
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"next_cursor"
],
"additionalProperties": false
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"meta": {
"type": "object",
"properties": {
"listing_id": {
"type": "string",
"const": "tiktok.videos.search"
},
"version": {
"type": "string",
"const": "v1"
},
"catalog_release_id": {
"type": "string",
"minLength": 1
},
"price_book_version": {
"type": "string",
"minLength": 1
},
"result_status": {
"type": "string",
"enum": [
"complete",
"empty",
"partial"
]
},
"charged_amount": {
"type": "string"
},
"balance_after": {
"type": "string"
},
"currency": {
"type": "string",
"const": "CNY"
}
},
"required": [
"listing_id",
"version",
"catalog_release_id",
"price_book_version",
"result_status",
"charged_amount",
"balance_after",
"currency"
],
"additionalProperties": false
}
},
"required": [
"code",
"request_id",
"message",
"data",
"page",
"warnings",
"meta"
],
"additionalProperties": false
}Usage notes
Good for
- Use it to discover public TikTok videos and content trends around a keyword.
Not for
- Do not use it for user search, ad delivery data, or search-volume estimates.
Known limitations
- sort_type=0 is relevance and 1 is most liked; publish_time is in days, 0 means any time.
- video carries cover and play URLs, which expire.
- Result order is set by the platform and does not explain ranking causality.
- Only the returned DataXAPI cursor can continue the same query.
- Nested objects such as the author are returned as upstream sends them, minus tokens, account-binding flags, privacy settings, and tracking fields; avatar and media links inside them may expire.
Billing
¥0.02 per call. Nonempty complete results are charged; empty, partial, and failed results are not.
See all pricing →