Search for videos by keyword
curl --request GET \
--url https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos \
--header 'x-rapidapi-key: <api-key>'import requests
url = "https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos"
headers = {"x-rapidapi-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-rapidapi-key': '<api-key>'}};
fetch('https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos', 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://full-tiktok-api.p.rapidapi.com/api/v1/search/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-rapidapi-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-rapidapi-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos")
.header("x-rapidapi-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-rapidapi-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2025-03-12T14:32:01.498Z",
"cached": false,
"version": "2025-01"
},
"data": [
{
"post_id": "7351234567890123456",
"caption": "do this for a week and see what happens #fitness",
"created_at": 1711929600,
"is_ad": false,
"plays": 42000000,
"likes": 3100000,
"comments": 18000,
"shares": 92000,
"saves": 410000,
"reposts": 5200,
"cover_url": "https://p16-sign.tiktokcdn-us.com/...",
"share_url": "https://www.tiktok.com/@charlidamelio/video/7351234567890123456",
"sound_id": "7016547803243022337",
"sound_title": "original sound",
"sound_author": "charlidamelio",
"sound_is_original": true,
"hashtags": [
{
"id": "229207",
"name": "fitness"
}
],
"author_username": "charlidamelio",
"author_display_name": "charli d'amelio",
"author_verified": true,
"author_avatar_url": "https://p16-sign.tiktokcdn-us.com/...",
"duration_seconds": 27,
"video_height": 1024,
"video_width": 576
}
],
"pagination": {
"cursor": "1778971238000",
"has_more": true
},
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found.",
"details": null
}
}{
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2025-03-12T14:32:01.498Z",
"cached": false,
"version": "2025-01"
},
"data": null,
"pagination": null,
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found.",
"details": null
}
}{
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2025-03-12T14:32:01.498Z",
"cached": false,
"version": "2025-01"
},
"data": null,
"pagination": null,
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found.",
"details": null
}
}Search
Search for videos by keyword
Returns a paginated list of videos matching the keyword. Equivalent to TikTok’s video search tab.
GET
/
api
/
v1
/
search
/
videos
Search for videos by keyword
curl --request GET \
--url https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos \
--header 'x-rapidapi-key: <api-key>'import requests
url = "https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos"
headers = {"x-rapidapi-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-rapidapi-key': '<api-key>'}};
fetch('https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos', 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://full-tiktok-api.p.rapidapi.com/api/v1/search/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-rapidapi-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-rapidapi-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos")
.header("x-rapidapi-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://full-tiktok-api.p.rapidapi.com/api/v1/search/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-rapidapi-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2025-03-12T14:32:01.498Z",
"cached": false,
"version": "2025-01"
},
"data": [
{
"post_id": "7351234567890123456",
"caption": "do this for a week and see what happens #fitness",
"created_at": 1711929600,
"is_ad": false,
"plays": 42000000,
"likes": 3100000,
"comments": 18000,
"shares": 92000,
"saves": 410000,
"reposts": 5200,
"cover_url": "https://p16-sign.tiktokcdn-us.com/...",
"share_url": "https://www.tiktok.com/@charlidamelio/video/7351234567890123456",
"sound_id": "7016547803243022337",
"sound_title": "original sound",
"sound_author": "charlidamelio",
"sound_is_original": true,
"hashtags": [
{
"id": "229207",
"name": "fitness"
}
],
"author_username": "charlidamelio",
"author_display_name": "charli d'amelio",
"author_verified": true,
"author_avatar_url": "https://p16-sign.tiktokcdn-us.com/...",
"duration_seconds": 27,
"video_height": 1024,
"video_width": 576
}
],
"pagination": {
"cursor": "1778971238000",
"has_more": true
},
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found.",
"details": null
}
}{
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2025-03-12T14:32:01.498Z",
"cached": false,
"version": "2025-01"
},
"data": null,
"pagination": null,
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found.",
"details": null
}
}{
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": "2025-03-12T14:32:01.498Z",
"cached": false,
"version": "2025-01"
},
"data": null,
"pagination": null,
"error": {
"code": "NOT_FOUND",
"message": "The requested resource was not found.",
"details": null
}
}Returns a paginated list of videos matching the keyword. Equivalent to TikTok’s video search tab.
Authorizations
Your RapidAPI subscription key. Injected automatically by the RapidAPI gateway in production.
Query Parameters
Search term. Also accepted as ?q=
Opaque base64 pagination token returned by the previous response. Encodes both the offset and the search session ID required by the upstream API.
Response
Success
⌘I