curl --request POST \
--url https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"backtrace": "",
"content_type": "0",
"cursor": 0,
"filter_duration": "0",
"keyword": "猫咪",
"publish_time": "0",
"search_id": "",
"sort_type": "0"
}
'import requests
url = "https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search"
payload = {
"backtrace": "",
"content_type": "0",
"cursor": 0,
"filter_duration": "0",
"keyword": "猫咪",
"publish_time": "0",
"search_id": "",
"sort_type": "0"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
backtrace: '',
content_type: '0',
cursor: 0,
filter_duration: '0',
keyword: '猫咪',
publish_time: '0',
search_id: '',
sort_type: '0'
})
};
fetch('https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'backtrace' => '',
'content_type' => '0',
'cursor' => 0,
'filter_duration' => '0',
'keyword' => '猫咪',
'publish_time' => '0',
'search_id' => '',
'sort_type' => '0'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search"
payload := strings.NewReader("{\n \"backtrace\": \"\",\n \"content_type\": \"0\",\n \"cursor\": 0,\n \"filter_duration\": \"0\",\n \"keyword\": \"猫咪\",\n \"publish_time\": \"0\",\n \"search_id\": \"\",\n \"sort_type\": \"0\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"backtrace\": \"\",\n \"content_type\": \"0\",\n \"cursor\": 0,\n \"filter_duration\": \"0\",\n \"keyword\": \"猫咪\",\n \"publish_time\": \"0\",\n \"search_id\": \"\",\n \"sort_type\": \"0\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"backtrace\": \"\",\n \"content_type\": \"0\",\n \"cursor\": 0,\n \"filter_duration\": \"0\",\n \"keyword\": \"猫咪\",\n \"publish_time\": \"0\",\n \"search_id\": \"\",\n \"sort_type\": \"0\"\n}"
response = http.request(request)
puts response.read_body{
"cache_message": "This response is cached and accessible via the URL below for 24 hours at no extra cost. The cache is for request tracing only — it doesn't affect the API's data freshness and won't be returned through the API again.",
"cache_message_zh": "本次响应已缓存,可通过下方 URL 直接查看,有效期 24 小时,访问缓存链接无额外费用。缓存仅用于请求溯源,不影响接口数据的时效性,也不会再次通过接口返回。",
"cache_url": "<string>",
"code": 200,
"data": "<unknown>",
"docs": "<string>",
"message": "Request successful. This request will incur a charge.",
"message_zh": "请求成功,本次请求将被计费。",
"params": {},
"request_id": "<string>",
"router": "",
"support": "Discord: https://discord.gg/aMEAS8Xsvz",
"time": "<string>",
"time_stamp": 123,
"time_zone": "America/Los_Angeles"
}douyin fetch_discuss_search
Fetch discussion search
curl --request POST \
--url https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"backtrace": "",
"content_type": "0",
"cursor": 0,
"filter_duration": "0",
"keyword": "猫咪",
"publish_time": "0",
"search_id": "",
"sort_type": "0"
}
'import requests
url = "https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search"
payload = {
"backtrace": "",
"content_type": "0",
"cursor": 0,
"filter_duration": "0",
"keyword": "猫咪",
"publish_time": "0",
"search_id": "",
"sort_type": "0"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
backtrace: '',
content_type: '0',
cursor: 0,
filter_duration: '0',
keyword: '猫咪',
publish_time: '0',
search_id: '',
sort_type: '0'
})
};
fetch('https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'backtrace' => '',
'content_type' => '0',
'cursor' => 0,
'filter_duration' => '0',
'keyword' => '猫咪',
'publish_time' => '0',
'search_id' => '',
'sort_type' => '0'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search"
payload := strings.NewReader("{\n \"backtrace\": \"\",\n \"content_type\": \"0\",\n \"cursor\": 0,\n \"filter_duration\": \"0\",\n \"keyword\": \"猫咪\",\n \"publish_time\": \"0\",\n \"search_id\": \"\",\n \"sort_type\": \"0\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"backtrace\": \"\",\n \"content_type\": \"0\",\n \"cursor\": 0,\n \"filter_duration\": \"0\",\n \"keyword\": \"猫咪\",\n \"publish_time\": \"0\",\n \"search_id\": \"\",\n \"sort_type\": \"0\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"backtrace\": \"\",\n \"content_type\": \"0\",\n \"cursor\": 0,\n \"filter_duration\": \"0\",\n \"keyword\": \"猫咪\",\n \"publish_time\": \"0\",\n \"search_id\": \"\",\n \"sort_type\": \"0\"\n}"
response = http.request(request)
puts response.read_body{
"cache_message": "This response is cached and accessible via the URL below for 24 hours at no extra cost. The cache is for request tracing only — it doesn't affect the API's data freshness and won't be returned through the API again.",
"cache_message_zh": "本次响应已缓存,可通过下方 URL 直接查看,有效期 24 小时,访问缓存链接无额外费用。缓存仅用于请求溯源,不影响接口数据的时效性,也不会再次通过接口返回。",
"cache_url": "<string>",
"code": 200,
"data": "<unknown>",
"docs": "<string>",
"message": "Request successful. This request will incur a charge.",
"message_zh": "请求成功,本次请求将被计费。",
"params": {},
"request_id": "<string>",
"router": "",
"support": "Discord: https://discord.gg/aMEAS8Xsvz",
"time": "<string>",
"time_stamp": 123,
"time_zone": "America/Los_Angeles"
}code is 200.
Example
curl -X POST "https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' # see request schema below
Request contract
- Method and path: POST /apis/v1/tikhub/douyin/search/fetch_discuss_search
- Availability: enabled
- Request URL template:
https://api.aisa.one/apis/v1/tikhub/douyin/search/fetch_discuss_search - Runtime facts: 85ae03121f63417c9ff9d57a0fd59fdc6386fd71e2dc732a002843e6d8979d87
{
"operationId": "post_tikhub_douyin_search_fetch_discuss_search",
"method": "POST",
"path": "/apis/v1/tikhub/douyin/search/fetch_discuss_search",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [],
"security": [
{
"bearerAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"backtrace": {
"default": "",
"description": "Backtrace for pagination, obtained from the last response",
"title": "Backtrace",
"type": "string"
},
"content_type": {
"default": "0",
"description": "Content type: 0=All, 1=Video, 2=Picture, 3=Article\n\nUsage: Content type filter\n - `0`: Unlimited\n - `1`: Video\n - `2`: Picture\n - `3`: Article",
"title": "Content Type",
"type": "string"
},
"cursor": {
"default": 0,
"description": "Offset cursor for pagination, obtained from the last response\n\nUsage: Pagination cursor (0 for first page, use the last response cursor for subsequent pages)",
"title": "Cursor",
"type": "integer"
},
"filter_duration": {
"default": "0",
"description": "Video duration filter: 0=Unlimited, 0-1=Within 1 minute, 1-5=1 to 5 minutes, 5-10000=More than 5 minutes",
"title": "Filter Duration",
"type": "string"
},
"keyword": {
"default": "猫咪",
"description": "Keyword",
"title": "Keyword",
"type": "string"
},
"publish_time": {
"default": "0",
"description": "Publish time filter: 0=Unlimited, 1=Last day, 7=Last week, 180=Last half year",
"title": "Publish Time",
"type": "string"
},
"search_id": {
"default": "",
"description": "Search ID for pagination, obtained from the last response",
"title": "Search Id",
"type": "string"
},
"sort_type": {
"default": "0",
"description": "Sort type: 0=Comprehensive, 1=Most Likes, 2=Latest\n\nUsage: Sorting method\n - `0`: Comprehensive\n - `1`: Most likes\n - `2`: Latest",
"title": "Sort Type",
"type": "string"
}
},
"title": "DiscussSearchRequest",
"type": "object"
}
}
},
"required": true
},
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "fixed_success",
"customer_multiplier": 1.0,
"customer_pricing": "provider_cost_multiplier",
"default_request_estimate_usd": 0.01,
"estimate_source": "profile_seed",
"evidence_source": "request_snapshot"
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
Published reference price: $0.01 USD per successful request. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.01
- Cost contract: fixed_success
- Published reference multiplier: 1.0
- Settlement evidence source: request_snapshot
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Backtrace for pagination, obtained from the last response
Content type: 0=All, 1=Video, 2=Picture, 3=Article
Usage: Content type filter
0: Unlimited1: Video2: Picture3: Article
Offset cursor for pagination, obtained from the last response
Usage: Pagination cursor (0 for first page, use the last response cursor for subsequent pages)
Video duration filter: 0=Unlimited, 0-1=Within 1 minute, 1-5=1 to 5 minutes, 5-10000=More than 5 minutes
Keyword
Publish time filter: 0=Unlimited, 1=Last day, 7=Last week, 180=Last half year
Search ID for pagination, obtained from the last response
Sort type: 0=Comprehensive, 1=Most Likes, 2=Latest
Usage: Sorting method
0: Comprehensive1: Most likes2: Latest
Response
Successful Response
Response (common fields, actual response may contain more fields)
data: List of search result itemstype: Result type (usually1)aweme_info: Video informationaweme_id: Video IDdesc: Descriptionauthor:uid: User IDnickname: User nicknameis_verified: Verified user or notregion: User regionavatar_thumb.url_list: Thumbnail avatar URLsavatar_medium.url_list: Medium avatar URLsavatar_larger.url_list: Large avatar URLs
video:play_addr.url_list: Video playback URLscover.url_list: Video cover URLsdynamic_cover.url_list: Dynamic cover URLsorigin_cover.url_list: Original cover URLswidth: Width in pixelsheight: Height in pixelsratio: Resolution ratio (e.g., 540p)duration: Duration in millisecondsdownload_addr.url_list: Download URLs with watermark
statistics:comment_count: Number of commentsdigg_count: Number of likesshare_count: Number of sharesplay_count: Number of playscollect_count: Number of collections
cha_list:cha_name: Hashtag nameshare_url: Hashtag share link
music:id_str: Music IDtitle: Music titleauthor: Music creator nameplay_url.url_list: List of music playback URLs
status:is_delete: Whether deletedis_private: Whether privateallow_share: Allow sharingallow_comment: Allow commenting
share_url: External video share link
Cache message (EN-US)
Cache message (ZH-CN)
The URL to access the cached result
HTTP status code
Endpoint-specific response payload. The official shared model does not declare a fixed type or field set. Use the operation's documented return fields or response example; an operation-specific schema, when present, describes the documented fields. Undocumented fields must be read from the actual response rather than assumed.
Link to the API Swagger documentation for this endpoint
Response message (EN-US)
Response message (ZH-CN)
The parameters used in the request
Unique request identifier
The endpoint that generated this response
Support message
The time the response was generated
The timestamp the response was generated
The timezone of the response time