Video Search
Introduction
Search for video information by video title or creator unique_id, with the following features:
- Supports fuzzy search
- Supports filtering parameters
- Supports custom result sorting
API Endpoint
bash
POST /video/v1/searchRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
keywords | string | No | Search keywords |
filter | object | No | Filter parameters |
orderby | object | No | Sorting parameters |
search_after | array | No | Deep pagination parameter, mutually exclusive with the page parameter. When the total number of paginated query results exceeds 60,000, this parameter needs to be used. The value for the next page should be taken from data.sort of the previous page's results. |
page | integer | No | Page number, default: 1 |
pagesize | integer | No | Items per page, default: 10 |
lang | string | No | Language Settings Supported Languages, English(Default):EN_US Indonesian: ID_ID Japanese:JA_JP Thai:TH_TH Vietnamese:VI_VN Spanish:ES_ES French:FR_FR Portuguese:PT_BR Chinese:ZH_CN |
keywords Details
- Maximum length:
120characters - Default: Empty string
filter Type object Optional Values
| Field | Type | Required | Description |
|---|---|---|---|
publish_time_range | object | Yes | Publish time range (timestamp, integer), for example: {'min': 13345241234, 'max': 1567677878787}. This parameter is required, and the time range cannot exceed 90 days. |
region | string | No | Country/Region, e.g., ['US', 'GB', 'MX', 'ES', 'ID', 'VN', 'MY', 'TH', 'PH'] |
category_id | integer | No | Creator category ID |
follower_count_range | object | No | Follower count range, e.g., {'min': 1, 'max': 100} |
play_count_range | object | No | Play count range, e.g., {'min': 1, 'max': 100} |
digg_count_range | object | No | Like count range, e.g., {'min': 1, 'max': 100} |
interact_rate_range | object | No | Engagement rate range, e.g., {'min': 1, 'max': 100} |
is_ecommerce_creator | boolean | No | Whether the creator is an e-commerce creator |
orderby Type string Optional Values
| Field | Required | Description |
|---|---|---|
follower_count | No | Follower count (descending) |
create_time | No | Publish time (descending) |
play_count | No | Play count (descending) |
digg_count | No | Like count (descending) |
interact_rate | No | Engagement rate (descending) |
Request Example
bash
Using page and pageSize for pagination
curl 'https://openapi.test.fastmoss.com/video/v1/search?×tamp=XXX&access_token=XXX&sign=XXX' \
--header 'Content-Type: application/json' \
{
"keywords": "hello",
"filter": {
"region": "US",
"publish_time_rane": {"min": 1678092800, "max": 1678697600},
"category_id": 12,
"follower_count_range": {"min": 1000, "max": 100000},
},
"orderby": "follower_count",
"page": 1,
"pagesize": 10
}bash
Deep Pagination
curl 'https://openapi.test.fastmoss.com/video/v1/search?×tamp=XXX&access_token=XXX&sign=XXX' \
--header 'Content-Type: application/json' \
{
"keywords": "hello",
"filter": {
"region": "US",
"publish_time_rane": {"min": 1678092800, "max": 1678697600},
"category_id": 12,
"follower_count_range": {"min": 1000, "max": 100000},
},
"orderby": "follower_count",
"search_after": [43500000],
"pagesize": 10
}Response Body
data.has_more
- Type:integer
- Description: Indicates whether there is a next page of data, 1 for yes, 0 for no
data.list
| Field | Type | Description |
|---|---|---|
video_id | integer | Video ID |
desc | string | Video description |
uid | string | Creator UID |
is_ad | integer | Advertisement flag, 1 for ad, 0 for non-ad |
region | string | Country/Region code |
create_time | integer | Video publish time, timestamp (seconds) |
comment_count | integer | Number of comments |
play_count | integer | Number of plays |
digg_count | integer | Number of likes |
share_count | integer | Number of shares |
forward_count | integer | Number of favorites |
duration | integer | Video duration (seconds) |
cover | string | Video cover URL |
interact_rate | integer | Engagement rate (e.g., 10 means 10%) |
create_date | datetime | Publish date (YYYY-MM-DD HH:mm:ss format) |
is_ecommerce | integer | E-commerce video flag (1 for yes, 0 for no) |
video_url | integer | TikTok Video URL |
sold_count | integer | Number of products sold |
sale_amount | float | Sales amount |
creator | object | Creator information |
product_info | array[object] | List of products |
data.list.creator Creator information
| Field | Type | Description |
|---|---|---|
uid | integer | Creator ID |
avatar | string | Avatar URL |
unique_id | string | Creator unique ID |
nickname | string | Nickname |
region | string | Country/Region code |
category_id | integer | Creator category ID |
category_name | string | Creator category name |
follower_count | integer | Number of followers |
data.list.product_info Product List
| Field | Type | Description |
|---|---|---|
product_id | string | Product ID |
title | string | Product name |
cover | string | Product cover image |
region | string | Product country/region code |
currency | string | Currency code (e.g., USD) |
price | string | Product price |
sold_count | integer | Product sales volume |
sale_amount | float | Product sales amount |
category_id | integer | Product category ID |
category_name | string | Product category name |
source | string | Source, currently only "TikTok Shop" |
detail_url | string | Product detail page URL |
data.sort Type arraySort Value
- When using search_after for deep pagination, to go to the next page, you need to pass the value returned from the previous page.
Response Example
json
{
"code": 0,
"data": {
"has_more": 1,
"list": [
{
"id": "7517469614079610142",
"video_id": "7517469614079610142",
"desc": "#fyp #foryou #relatable #xyzbca #blowthisup ",
"uid": "6764812635147207685",
"is_ad": 0,
"cover": "https://s.500fd.com/tt_video/ogoJVwT1ZBfI2AFR9EkI8uLCpUE9AHfturaDEt~tplv-tiktokx-cropcenter-q:300:400:q72.jpeg",
"region": "US",
"create_time": 1750297310,
"duration": 5,
"play_count": 20600000,
"share_count": 378200,
"digg_count": 3800000,
"comment_count": 16400,
"forward_count": 264159,
"interact_rate": 20.36,
"create_date": "2025-06-19 09:41:50",
"is_ecommerce": 1,
"video_url": "https://www.tiktok.com/@seenontiktokltd/video/7516849526523858199",
"creator": {
"uid": "6764812635147207685",
"avatar": "https://s.500fd.com/tt_author/d19f10b759f11d0043878ed0acbeae7f~tplv-tiktokx-cropcenter:1080:1080.jpeg",
"nickname": "Julz",
"unique_id": "julzgeekin",
"region": "US",
"category_id": 6,
"category_name": "时尚穿搭",
"follower_count": 28188
},
"sold_count": 2,
"sale_amount": 103,
"product_info": [
{
"product_id": "1730186290864034458",
"title": "Pacsun Men's Escape Reality Zip Up Hoodie",
"cover": "https://s.500fd.com/tt_product/97468f66b806475a9a16bcfc03826bc1~tplv-omjb5zjo8w-crop-webp:500:500.webp",
"region": "US",
"currency": "USD",
"price": "$51.96",
"sold_count": 2,
"sale_amount": 103.92,
"category_id": 3,
"category_name": "男装与男士内衣",
"source": "TikTok Shop",
"detail_url": "https://shop.tiktok.com/view/product/1730186290864034458?region=US&local=en"
}
]
}
],
"sort": [
20600000
]
},
"message": "",
"timestamp": 1750745256,
"request_id": "7885f669-27e0-bdb2-1140-b6742978f5f1"
}