curl --request POST \
--url https://api.scrapeunblocker.com/social/tiktok-video \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/social/tiktok-video"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/social/tiktok-video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Scrape one TikTok video or photo post
Fetches a single public TikTok post by url (video URL, photo-post URL, bare id or short link) and returns it as JSON: id, url, type (video/photo), description, title, hashtags, mentions, language, createdAt, exact stats (plays, likes, comments, shares, saves, reposts), an author snapshot with its own stats, video (duration, size, codec, cover, play/download URLs, per-quality URLs, subtitles), images for photo posts, music (title, author, original, play URL), flags (isAd, isAigc, duet/stitch/share enabled), content labels, effects and location. With include_transcript=true the subtitle track is downloaded too and returned as plain text in transcript (with transcriptLanguage). Media URLs are signed by TikTok and expire after a few hours. No login or cookies; deleted, private or region-locked posts return 404 with TikTok’s reason.
curl --request POST \
--url https://api.scrapeunblocker.com/social/tiktok-video \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/social/tiktok-video"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/social/tiktok-video', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Your ScrapeUnblocker API key. Apply on every request.
Query Parameters
A TikTok video or photo-post URL ('https://www.tiktok.com/@nasa/video/7665075736742530317'), a bare video id, or a vm.tiktok.com / tiktok.com/t/ short link.
Also download the video's subtitle track (TikTok's own captions, mostly auto-generated) and return it as plain text in transcript - one line per cue. Adds ~1 s. Empty when the video has no subtitle track.
Preferred subtitle language when several exist, matched against TikTok's codes (e.g. 'eng-US', 'spa-ES', or just 'eng'). Default: the first track.
Exit-IP country (ISO-2, e.g. 'US', 'DE'). Optional - TikTok's public pages are the same worldwide; set it only for region-restricted items.
Response
JSON video object.

