Get Results
curl --request GET \
--url https://api.lobstr.io/v1/results \
--header 'Authorization: <authorization>'import requests
url = "https://api.lobstr.io/v1/results"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.lobstr.io/v1/results', 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.lobstr.io/v1/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://api.lobstr.io/v1/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lobstr.io/v1/results")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"hashtag": "<string>",
"hashtag_rank": 123,
"video_id": "<string>",
"description": "<string>",
"text_language": "<string>",
"hashtags": "<any>",
"mentions": "<any>",
"created_at": {},
"play_count": 123,
"like_count": 123,
"comment_count": 123,
"share_count": 123,
"collect_count": 123,
"repost_count": 123,
"duration": 123,
"width": 123,
"height": 123,
"definition": "<string>",
"video_format": "<string>",
"bitrate": 123,
"file_size": 123,
"is_ad": true,
"duet_enabled": true,
"stitch_enabled": true,
"location_created": "<string>",
"video_url": "<string>",
"play_url": "<string>",
"download_url": "<string>",
"cover_url": "<string>",
"dynamic_cover": "<string>",
"music_id": "<string>",
"music_title": "<string>",
"music_author": "<string>",
"music_play_url": "<string>",
"music_cover_url": "<string>",
"music_duration": 123,
"music_original": true,
"music_is_copyrighted": true,
"author_id": "<string>",
"author_sec_uid": "<string>",
"author_username": "<string>",
"author_nickname": "<string>",
"author_verified": true,
"author_private_account": true,
"author_bio": "<string>",
"author_follower_count": 123,
"author_following_count": 123,
"author_total_likes": 123,
"author_video_count": 123,
"author_digg_count": 123,
"author_friend_count": 123,
"author_avatar": "<string>",
"effect_stickers": "<any>",
"scraping_time": {}
}TikTok Hashtag Scraper
Get Results
Retrieve scraped data from TikTok Hashtag Scraper
GET
/
v1
/
results
Get Results
curl --request GET \
--url https://api.lobstr.io/v1/results \
--header 'Authorization: <authorization>'import requests
url = "https://api.lobstr.io/v1/results"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.lobstr.io/v1/results', 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.lobstr.io/v1/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://api.lobstr.io/v1/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lobstr.io/v1/results")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"hashtag": "<string>",
"hashtag_rank": 123,
"video_id": "<string>",
"description": "<string>",
"text_language": "<string>",
"hashtags": "<any>",
"mentions": "<any>",
"created_at": {},
"play_count": 123,
"like_count": 123,
"comment_count": 123,
"share_count": 123,
"collect_count": 123,
"repost_count": 123,
"duration": 123,
"width": 123,
"height": 123,
"definition": "<string>",
"video_format": "<string>",
"bitrate": 123,
"file_size": 123,
"is_ad": true,
"duet_enabled": true,
"stitch_enabled": true,
"location_created": "<string>",
"video_url": "<string>",
"play_url": "<string>",
"download_url": "<string>",
"cover_url": "<string>",
"dynamic_cover": "<string>",
"music_id": "<string>",
"music_title": "<string>",
"music_author": "<string>",
"music_play_url": "<string>",
"music_cover_url": "<string>",
"music_duration": 123,
"music_original": true,
"music_is_copyrighted": true,
"author_id": "<string>",
"author_sec_uid": "<string>",
"author_username": "<string>",
"author_nickname": "<string>",
"author_verified": true,
"author_private_account": true,
"author_bio": "<string>",
"author_follower_count": 123,
"author_following_count": 123,
"author_total_likes": 123,
"author_video_count": 123,
"author_digg_count": 123,
"author_friend_count": 123,
"author_avatar": "<string>",
"effect_stickers": "<any>",
"scraping_time": {}
}Retrieve scraped data from your TikTok Hashtag Scraper runs.
Headers
string
required
Your API authentication token. Value:
Token YOUR_API_KEY.Query Parameters
string
required
Hash of the squid to get results from.
integer
Page number (default: 1).
Result Fields
string
The hashtag this video was collected from (without the leading #). Example:
lobstrinteger
Position of this video in the hashtag’s video feed at scrape time. Example:
1string
Unique TikTok video identifier. Example:
7680941891700935944string
Caption or description of the TikTok video. Example:
GoPro POV: I found a party inside the lobster den #lobster #underwater #pov #party #higgsfield string
Detected language code of the video’s caption. Example:
enjson
List of hashtags used in the video’s own caption. Example:
["lobster", "underwater", "pov", "party", "higgsfield"]json
List of TikTok accounts (@mentions) tagged in the video’s caption. Example:
[]datetime
Date and time the video was published. Example:
2026-09-02T12:17:29Zinteger
Total number of times the video has been played. Example:
1500000integer
Total number of likes on the video. Example:
60900integer
Total number of comments on the video. Example:
662integer
Total number of times the video has been shared. Example:
23300integer
Total number of times the video has been saved to collections. Example:
4940integer
Total number of times the video has been reposted. Example:
0integer
Duration of the video in seconds. Example:
12integer
Width of the video in pixels. Example:
576integer
Height of the video in pixels. Example:
1024string
Video resolution definition (e.g. 540p, 720p, 1080p). Example:
540pstring
Container format of the video file. Example:
mp4integer
Video bitrate in bits per second. Example:
641117integer
File size of the video in bytes. Example:
988443boolean
Whether the video is a paid advertisement. Example:
Falseboolean
Whether the author has enabled duets for this video. Example:
Trueboolean
Whether the author has enabled stitches for this video. Example:
Truestring
ISO country code of where the video was created.
string
Canonical TikTok video page URL. Unlike play_url/download_url (signed CDN links tied to the proxy IP that fetched them, and unusable elsewhere), this always works. Example:
https://www.tiktok.com/@kennyslowbird/video/7680941891700935944string
Direct streaming URL for the video. Signed and tied to the proxy IP that fetched it — confirmed to 403 from any other network, even with full browser TLS impersonation. Use video_url for a link guaranteed to keep working. Example:
https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/osPMAPFpquB5whsYB2iigfBnEmARMIREIyfDUC/?a=1988&bti=ODszNWYuMDE6&&bt=626&ft=-Csk_m.MPD12NpP3Jn-Uxl7FSY3W3wv25ycAp&mime_type=video_mp4&rc=NmQ6Mzk5ODNkZDs7ZGk7N0BpajRqNnA5cm01ZDMzODczNEBiLjIxX19eNl4xLl40YmIwYSNoNHFtMmRzc2BhLS1kMTFzcw%3D%3D&expire=1788988144&l=202609072108521145CE1BA5A6675D4565&ply_type=2&policy=2&signature=3a1dd0cf1932bd6dffda58177499342f&tk=tt_chain_token&btag=e000b0000string
Direct download URL for the video. Same IP-binding limitation as play_url — use video_url for a link guaranteed to keep working.
string
URL of the video thumbnail (cover image). Example:
https://p19-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/ocGMEGfYAbdQDHfqSLQLI8HYQFfesTwwcAGXRI~tplv-tiktokx-origin.image?dr=10395&x-expires=1788987600&x-signature=o7cWRDAV2XzbPvIXQ%2FcYS24BwIc%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1astring
URL of the animated dynamic cover (GIF-like preview). Example:
https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/o4QwQEGJGXYYAyGqILEReDTfS8bRfIjAQHLfF2~tplv-tiktokx-origin.image?dr=10395&x-expires=1788987600&x-signature=mzIZiNAQrJvIOm40dm1XaHHQpvU%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1astring
Unique identifier of the music track used in the video. Example:
7639424214639167489string
Title of the music track used in the video. Example:
Movin' To The Sunstring
Artist name of the music track used in the video. Example:
HUGEL & Imael Angel & Ultra Natéstring
Direct URL to stream the audio track. Example:
https://sf16-music.tiktokcdn-eu.com/obj/tos-alisg-ve-2774/owYPQBSopi5XcEAa58MUvAixnPAWIp93tiLnrstring
URL of the music track’s cover art. Example:
https://p77-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oYmBAs9EvpUPMEAiAHxSsYrqAWiBAmAQCawAV.jpeginteger
Duration of the music track in seconds. Example:
48boolean
Whether the audio is an original sound created by the author. Example:
Falseboolean
Whether the music track is under copyright protection. Example:
Falsestring
Unique numeric identifier of the video author. Example:
6829825193482929158string
Secondary unique identifier of the author (used in API calls). Example:
MS4wLjABAAAAzeLkt1OZZGvXNE4urbCiOvdjecJhZuPMjTzCM_RZYVnW9gG0AiIOEQiv7u75lmX0string
TikTok username (handle) of the video author. Example:
kennyslowbirdstring
Display name of the video author. Example:
Kennyboolean
Whether the author’s account is verified by TikTok. Example:
Falseboolean
Whether the author’s account is set to private. Example:
Falsestring
Biography or description on the author’s TikTok profile Example:
⬆️ 2.7 million across all platforms 🔥Music Release & Collabs & partnerships🔥 📩 kennyslowbird@gmail.com 📩 🔥 Higgsfield Partner 🔥 ⬇️ buy my secret ⬇️integer
Number of followers the author has. Example:
1700000integer
Number of accounts the author is following. Example:
381integer
Total likes received by the author across all their videos. Example:
67900000integer
Total number of videos published by the author. Example:
1893integer
Total number of likes the author has given to other videos. Example:
2209integer
Number of mutual followers (friends) the author has. Example:
0string
URL of the author’s profile picture. Example:
https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/a0d2d60a3d45a05ea7d2220c875cba22~tplv-tiktokx-cropcenter:100:100.jpeg?dr=10399&refresh_token=3b6951e9&x-expires=1788987600&x-signature=MP2LVGgC8j02XYhQROa%2BKDQ00HE%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=no1ajson
List of visual effects/stickers applied to the video. Example:
[{"id": "1911622141", "name": "IPHONE EVENING CAPTURE", "use_count": 0}, {"id": "127702155", "name": "comfy", "use_count": 0}]datetime
Date and time when this video was scraped. Example:
2026-09-07T21:09:20.934ZCode Examples
curl -G https://api.lobstr.io/v1/results \
-H "Authorization: Token YOUR_API_KEY" \
-d "squid=YOUR_SQUID_HASH" \
-d "page=1"
import requests
response = requests.get(
"https://api.lobstr.io/v1/results",
headers={"Authorization": "Token YOUR_API_KEY"},
params={"squid": "YOUR_SQUID_HASH", "page": 1},
)
print(response.json())
Response
200
{"total_results": 1, "data": [{"hashtag": "lobstr", "hashtag_rank": 1, "video_id": "7680941891700935944", "description": "GoPro POV: I found a party inside the lobster den #lobster #underwater #pov #party #higgsfield ", "text_language": "en", "hashtags": ["lobster", "underwater", "pov", "party", "higgsfield"], "mentions": [], "created_at": "2026-09-02T12:17:29Z", "play_count": 1500000, "like_count": 60900}]}