Scrape
Scrape TikTok profile
Fetch public TikTok profile data via Scrape Creators. Counts as 1 request against the shared scrape group (500/day); staging media with download_media does not consume extra quota.
POST
/
v1
/
scrape
/
tiktok
/
profile
Scrape TikTok profile
curl --request POST \
--url https://api.vidjutsu.ai/v1/scrape/tiktok/profile \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"handle": "<string>",
"trim": true,
"download_media": false
}
'import requests
url = "https://api.vidjutsu.ai/v1/scrape/tiktok/profile"
payload = {
"handle": "<string>",
"trim": True,
"download_media": False
}
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({handle: '<string>', trim: true, download_media: false})
};
fetch('https://api.vidjutsu.ai/v1/scrape/tiktok/profile', 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.vidjutsu.ai/v1/scrape/tiktok/profile",
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([
'handle' => '<string>',
'trim' => true,
'download_media' => false
]),
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.vidjutsu.ai/v1/scrape/tiktok/profile"
payload := strings.NewReader("{\n \"handle\": \"<string>\",\n \"trim\": true,\n \"download_media\": false\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.vidjutsu.ai/v1/scrape/tiktok/profile")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"handle\": \"<string>\",\n \"trim\": true,\n \"download_media\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vidjutsu.ai/v1/scrape/tiktok/profile")
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 \"handle\": \"<string>\",\n \"trim\": true,\n \"download_media\": false\n}"
response = http.request(request)
puts response.read_body{
"data": "<unknown>"
}{
"error": "<string>",
"message": "<string>",
"setup": "<string>"
}{
"error": "<string>",
"message": "<string>",
"setup": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
TikTok username (without @)
Reduce response size by trimming large fields
When true, media URLs in the response are staged through VidJutsu CDN and the response contains ONLY VidJutsu URLs. Defaults to false (raw source URLs returned as-is).
Response
The request has succeeded.
Pass-through response from Scrape Creators. Shape varies per endpoint. When download_media was true, all media URLs are replaced with VidJutsu CDN URLs.
⌘I
Scrape TikTok profile
curl --request POST \
--url https://api.vidjutsu.ai/v1/scrape/tiktok/profile \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"handle": "<string>",
"trim": true,
"download_media": false
}
'import requests
url = "https://api.vidjutsu.ai/v1/scrape/tiktok/profile"
payload = {
"handle": "<string>",
"trim": True,
"download_media": False
}
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({handle: '<string>', trim: true, download_media: false})
};
fetch('https://api.vidjutsu.ai/v1/scrape/tiktok/profile', 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.vidjutsu.ai/v1/scrape/tiktok/profile",
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([
'handle' => '<string>',
'trim' => true,
'download_media' => false
]),
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.vidjutsu.ai/v1/scrape/tiktok/profile"
payload := strings.NewReader("{\n \"handle\": \"<string>\",\n \"trim\": true,\n \"download_media\": false\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.vidjutsu.ai/v1/scrape/tiktok/profile")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"handle\": \"<string>\",\n \"trim\": true,\n \"download_media\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vidjutsu.ai/v1/scrape/tiktok/profile")
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 \"handle\": \"<string>\",\n \"trim\": true,\n \"download_media\": false\n}"
response = http.request(request)
puts response.read_body{
"data": "<unknown>"
}{
"error": "<string>",
"message": "<string>",
"setup": "<string>"
}{
"error": "<string>",
"message": "<string>",
"setup": "<string>"
}