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
Collect posts by profile Fast API
Use the Bright Data Web Scraper API to collect Posts by Profile Fast API. Calls the POST /datasets/v3/scrape endpoint and returns a snapshot ID.
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?
⌘I