Bridgly SDK
import { Bridgly } from '@bridgly/sdk';
const client = new Bridgly({ apiKey: process.env.BRIDGLY_API_KEY });
const res = await client.tiktok.searchVideos({
query: "string",
count: 30,
});
if (res.type === 'success') console.log(res.data);curl --request POST \
--url https://api.bridgly.app/tiktok/search-videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"cursor": "<string>",
"count": 30
}
'import requests
url = "https://api.bridgly.app/tiktok/search-videos"
payload = {
"query": "<string>",
"cursor": "<string>",
"count": 30
}
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({query: '<string>', cursor: '<string>', count: 30})
};
fetch('https://api.bridgly.app/tiktok/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://api.bridgly.app/tiktok/search-videos",
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([
'query' => '<string>',
'cursor' => '<string>',
'count' => 30
]),
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.bridgly.app/tiktok/search-videos"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"count\": 30\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.bridgly.app/tiktok/search-videos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"count\": 30\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bridgly.app/tiktok/search-videos")
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 \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"count\": 30\n}"
response = http.request(request)
puts response.read_body{
"timeMs": 123,
"creditsCost": 123,
"data": {
"videos": [
{
"id": "<string>",
"url": "<string>",
"description": "<string>",
"createTime": 123,
"language": "<string>",
"duration": 123,
"width": 123,
"height": 123,
"coverUrl": "<string>",
"animatedCoverUrl": "<string>",
"images": [
"<string>"
],
"subtitles": [
{
"language": "<string>",
"format": "<string>",
"autoGenerated": true,
"url": "<string>"
}
],
"stats": {
"playCount": 123,
"likeCount": 123,
"commentCount": 123,
"shareCount": 123,
"saveCount": 123,
"repostCount": 123
},
"author": {
"id": "<string>",
"uniqueId": "<string>",
"nickname": "<string>",
"avatarUrl": "<string>",
"signature": "<string>",
"verified": true,
"secUid": "<string>",
"privateAccount": true,
"followerCount": 123,
"followingCount": 123,
"heartCount": 123,
"videoCount": 123
},
"sound": {
"id": "<string>",
"title": "<string>",
"authorName": "<string>",
"original": true,
"duration": 123,
"coverUrl": "<string>",
"playUrl": "<string>",
"album": "<string>",
"copyrighted": true,
"videoCount": 123
},
"hashtags": [
"<string>"
],
"mentions": [
"<string>"
],
"location": {
"id": "<string>",
"name": "<string>",
"address": "<string>",
"city": "<string>",
"category": "<string>"
},
"playlistId": "<string>",
"isAd": true,
"duetEnabled": true,
"stitchEnabled": true
}
],
"nextCursor": "<string>"
}
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}TikTok
Search TikTok videos
Search TikTok posts by keyword. Each result includes the caption, view, like, comment and share counts, creator, sound and hashtags. Page through results with the cursor from the previous response’s nextCursor. Costs 1 credit per result returned, with a minimum of 1 credit per request.
POST
/
tiktok
/
search-videos
Bridgly SDK
import { Bridgly } from '@bridgly/sdk';
const client = new Bridgly({ apiKey: process.env.BRIDGLY_API_KEY });
const res = await client.tiktok.searchVideos({
query: "string",
count: 30,
});
if (res.type === 'success') console.log(res.data);curl --request POST \
--url https://api.bridgly.app/tiktok/search-videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "<string>",
"cursor": "<string>",
"count": 30
}
'import requests
url = "https://api.bridgly.app/tiktok/search-videos"
payload = {
"query": "<string>",
"cursor": "<string>",
"count": 30
}
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({query: '<string>', cursor: '<string>', count: 30})
};
fetch('https://api.bridgly.app/tiktok/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://api.bridgly.app/tiktok/search-videos",
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([
'query' => '<string>',
'cursor' => '<string>',
'count' => 30
]),
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.bridgly.app/tiktok/search-videos"
payload := strings.NewReader("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"count\": 30\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.bridgly.app/tiktok/search-videos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"count\": 30\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bridgly.app/tiktok/search-videos")
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 \"query\": \"<string>\",\n \"cursor\": \"<string>\",\n \"count\": 30\n}"
response = http.request(request)
puts response.read_body{
"timeMs": 123,
"creditsCost": 123,
"data": {
"videos": [
{
"id": "<string>",
"url": "<string>",
"description": "<string>",
"createTime": 123,
"language": "<string>",
"duration": 123,
"width": 123,
"height": 123,
"coverUrl": "<string>",
"animatedCoverUrl": "<string>",
"images": [
"<string>"
],
"subtitles": [
{
"language": "<string>",
"format": "<string>",
"autoGenerated": true,
"url": "<string>"
}
],
"stats": {
"playCount": 123,
"likeCount": 123,
"commentCount": 123,
"shareCount": 123,
"saveCount": 123,
"repostCount": 123
},
"author": {
"id": "<string>",
"uniqueId": "<string>",
"nickname": "<string>",
"avatarUrl": "<string>",
"signature": "<string>",
"verified": true,
"secUid": "<string>",
"privateAccount": true,
"followerCount": 123,
"followingCount": 123,
"heartCount": 123,
"videoCount": 123
},
"sound": {
"id": "<string>",
"title": "<string>",
"authorName": "<string>",
"original": true,
"duration": 123,
"coverUrl": "<string>",
"playUrl": "<string>",
"album": "<string>",
"copyrighted": true,
"videoCount": 123
},
"hashtags": [
"<string>"
],
"mentions": [
"<string>"
],
"location": {
"id": "<string>",
"name": "<string>",
"address": "<string>",
"city": "<string>",
"category": "<string>"
},
"playlistId": "<string>",
"isAd": true,
"duetEnabled": true,
"stitchEnabled": true
}
],
"nextCursor": "<string>"
}
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}{
"status": "error",
"message": "<string>"
}Authorizations
A Bridgly API key (bgly_…). Metered endpoints deduct credits from the resolved account.
Body
application/json
Search keywords, for example "street food".
Required string length:
1 - 100The previous response's nextCursor, to fetch the next page.
Most results to return per page (1–30). Defaults to 30. A page can hold fewer, so keep paging while nextCursor is set.
Required range:
1 <= x <= 30Was this page helpful?