Collect Posts by Profile Fast API
curl --request POST \
--url https://api.brightdata.com/datasets/v3/scrape \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": [
{
"url": "<string>",
"num_of_posts": 123,
"start_date": "<string>",
"end_date": "<string>"
}
]
}
'import requests
url = "https://api.brightdata.com/datasets/v3/scrape"
payload = { "input": [
{
"url": "<string>",
"num_of_posts": 123,
"start_date": "<string>",
"end_date": "<string>"
}
] }
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({
input: [
{
url: '<string>',
num_of_posts: 123,
start_date: '<string>',
end_date: '<string>'
}
]
})
};
fetch('https://api.brightdata.com/datasets/v3/scrape', 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.brightdata.com/datasets/v3/scrape",
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([
'input' => [
[
'url' => '<string>',
'num_of_posts' => 123,
'start_date' => '<string>',
'end_date' => '<string>'
]
]
]),
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.brightdata.com/datasets/v3/scrape"
payload := strings.NewReader("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"num_of_posts\": 123,\n \"start_date\": \"<string>\",\n \"end_date\": \"<string>\"\n }\n ]\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.brightdata.com/datasets/v3/scrape")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"num_of_posts\": 123,\n \"start_date\": \"<string>\",\n \"end_date\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/v3/scrape")
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 \"input\": [\n {\n \"url\": \"<string>\",\n \"num_of_posts\": 123,\n \"start_date\": \"<string>\",\n \"end_date\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"post_id": "7553300000000000000",
"description": "New challenge video is here #challenge #viral",
"create_time": "2025-02-01T10:00:00.000Z",
"share_count": 95000,
"collect_count": 28000,
"comment_count": 18000,
"play_count": 42000000,
"video_duration": 90,
"hashtags": [
"#challenge",
"#viral"
],
"video_url": "https://v16-webapp-prime.tiktok.com/video/example.mp4",
"profile_username": "examplecreator",
"profile_url": "https://www.tiktok.com/@examplecreator",
"is_verified": true
}
]
TikTok
Scrape TikTok posts by profile Fast API
Collect TikTok posts from a profile URL through the Fast API with the Bright Data Scraper API: POST /datasets/v3/scrape, dataset_id gd_m7n5v2gq296pex2f5m.
POST
/
datasets
/
v3
/
scrape
Collect Posts by Profile Fast API
curl --request POST \
--url https://api.brightdata.com/datasets/v3/scrape \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": [
{
"url": "<string>",
"num_of_posts": 123,
"start_date": "<string>",
"end_date": "<string>"
}
]
}
'import requests
url = "https://api.brightdata.com/datasets/v3/scrape"
payload = { "input": [
{
"url": "<string>",
"num_of_posts": 123,
"start_date": "<string>",
"end_date": "<string>"
}
] }
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({
input: [
{
url: '<string>',
num_of_posts: 123,
start_date: '<string>',
end_date: '<string>'
}
]
})
};
fetch('https://api.brightdata.com/datasets/v3/scrape', 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.brightdata.com/datasets/v3/scrape",
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([
'input' => [
[
'url' => '<string>',
'num_of_posts' => 123,
'start_date' => '<string>',
'end_date' => '<string>'
]
]
]),
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.brightdata.com/datasets/v3/scrape"
payload := strings.NewReader("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"num_of_posts\": 123,\n \"start_date\": \"<string>\",\n \"end_date\": \"<string>\"\n }\n ]\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.brightdata.com/datasets/v3/scrape")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": [\n {\n \"url\": \"<string>\",\n \"num_of_posts\": 123,\n \"start_date\": \"<string>\",\n \"end_date\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/v3/scrape")
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 \"input\": [\n {\n \"url\": \"<string>\",\n \"num_of_posts\": 123,\n \"start_date\": \"<string>\",\n \"end_date\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"post_id": "7553300000000000000",
"description": "New challenge video is here #challenge #viral",
"create_time": "2025-02-01T10:00:00.000Z",
"share_count": 95000,
"collect_count": 28000,
"comment_count": 18000,
"play_count": 42000000,
"video_duration": 90,
"hashtags": [
"#challenge",
"#viral"
],
"video_url": "https://v16-webapp-prime.tiktok.com/video/example.mp4",
"profile_username": "examplecreator",
"profile_url": "https://www.tiktok.com/@examplecreator",
"is_verified": true
}
]
Query Parameters
string
default:"gd_m7n5v2gq296pex2f5m"
required
The dataset ID used for this request.
Must be set to
gd_m7n5v2gq296pex2f5m to collect Posts by Profile Fast API data.boolean
default:false
Whether to send notifications when the request is completed.
boolean
default:true
Whether to include errors in the response.
Request Body
object[]
required
An array of input objects.
Show properties
Show properties
string
required
The URL of the TikTok profile to collect posts from.
number
The number of recent posts to collect. Missing value indicates no limit.
string
Start date filter in
MM-DD-YYYY format (should be earlier than end_date).string
End date filter in
MM-DD-YYYY format (should be later than start_date).Example
{
"input": [
{
"url": "https://www.tiktok.com/@mrbeast",
"num_of_posts": 20,
"start_date": "01-01-2025",
"end_date": "03-01-2025"
}
]
}
[
{
"post_id": "7553300000000000000",
"description": "New challenge video is here #challenge #viral",
"create_time": "2025-02-01T10:00:00.000Z",
"share_count": 95000,
"collect_count": 28000,
"comment_count": 18000,
"play_count": 42000000,
"video_duration": 90,
"hashtags": [
"#challenge",
"#viral"
],
"video_url": "https://v16-webapp-prime.tiktok.com/video/example.mp4",
"profile_username": "examplecreator",
"profile_url": "https://www.tiktok.com/@examplecreator",
"is_verified": true
}
]
Was this page helpful?