All scrapers

Social & video

TikTok Scraper

tiktok.com

99.9% Success rate
9.4s Avg response
In-house anti-bot Protection
1,000 calls Measured over

TikTok is served through five dedicated plugin endpoints rather than the generic page fetch. Give the profile endpoint a handle - like nasa - and it returns the creator already parsed: the exact follower, following, like and video counts (TikTok publishes each number twice, rounded for display and exact underneath, and you get the exact one), bio, link, verified and commerce flags, and the creator's newest videos. The video endpoint takes any post URL, bare id or vm.tiktok.com short link and returns exact plays, likes, comments, shares, saves and reposts, hashtags, mentions, the author with their stats, the sound, per-quality play and download URLs, subtitle tracks, images for photo posts, and TikTok's own topic labels. The hashtag endpoint returns total views and videos under a tag plus its posts. Up to ten listed videos come from TikTok's server-rendered widgets in a couple of seconds; asking for more - up to 200 - opens the real page in a browser session and scrolls the grid (hashtags TikTok does not serve through the widget, like #comedy or #gaming, are read the same way). The same browser session powers keyword search (results in TikTok's own ranking, region selectable) and the comments of any post, with author, likes and preloaded replies - TikTok guards both behind its rotate-the-picture captcha, which the session solves on the fly. Every listed video carries the full video shape - one call is a complete creator, trend or search snapshot. It reads only public data: no TikTok account, cookies or browser involved, and deleted, private or region-locked items come back as a clear 404 with TikTok's reason.

What you can extract

  • Creator profile: handle, display name, bio, bio link, verified, private, organization and seller flags
  • Exact follower, following, total like, video and friend counts
  • The creator's newest videos, and a hashtag's top videos, each with full engagement
  • Per-video exact plays, likes, comments, shares, saves and reposts
  • Caption, hashtags, mentions, language, publish date and TikTok topic labels
  • Sound: title, artist, original flag, play URL; author snapshot with follower counts
  • Media: duration, resolution, cover, play and download URLs, every quality variant, subtitle tracks, photo-post images
  • Hashtag totals: views and video count, hashtag id and URL
  • Keyword search results in TikTok's ranking, per region; comments with author, likes, creator flags and replies

Dedicated endpoints

/social/tiktok-profile

Creator profile + newest videos

A public creator by handle or profile URL: exact stats (followers, following, likes, videos, friends), bio, bioLink, verified, privateAccount, isOrganization, commerce and privacy settings, avatar, and a videos array of the newest posts (max_videos 0-200; up to 10 from the server-rendered widget in seconds, more by scrolling the real grid in a browser session) - each in the full video shape.

/social/tiktok-video

Single video or photo post

One post by URL, bare id or short link: description, hashtags, mentions, language, createdAt, exact stats (plays, likes, comments, shares, saves, reposts), author with stats, video (duration, size, codec, cover, playUrl, downloadUrl, qualities, subtitles), images for photo posts, music, flags, labels, effects and location.

/social/tiktok-hashtag

Hashtag totals + videos

A hashtag by name or URL: id, url, stats (total views and videos) and a videos array of its posts (max_videos 0-200; up to 10 from the server-rendered widget in seconds, more by scrolling the real grid in a browser session), each in the full video shape.

/social/tiktok-search

Keyword search

A TikTok video search for query, run in a browser session that clears TikTok's own captcha, so it carries TikTok's ranking: results (max_results 1-200) each in the full video shape, resultsCollected and hasMore. proxy_country picks the region TikTok ranks for.

/social/tiktok-comments

Comments of a post

The comments of a post by URL, id or short link, read from the opened comment panel in a browser session that clears the captcha: totalComments and comments (max_comments 1-500) each with text, createdAt, likes, replyCount, language, author (username, nickname, userId, avatar), isCreator, likedByCreator and the replies TikTok preloads.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/social/tiktok-profile?username=nasa&max_videos=5"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/social/tiktok-profile",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"username": "nasa", "max_videos": "5"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const profile = await su.tiktokProfile('nasa', {
  maxVideos: 5,
});
console.log(profile);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "username": "nasa",
  "userId": "7664638705177150477",
  "nickname": "NASA",
  "bio": "Making the seemingly impossible, possible.",
  "verified": true,
  "privateAccount": false,
  "isOrganization": true,
  "stats": {
    "followers": 1593675,
    "following": 23,
    "likes": 8063306,
    "videos": 41,
    "friends": 17,
    "diggs": 0
  },
  "profileUrl": "https://www.tiktok.com/@nasa",
  "videos": [
    {
      "id": "7665075736742530317",
      "url": "https://www.tiktok.com/@nasa/video/7665075736742530317",
      "type": "video",
      "description": "Something big just landed on TikTok.",
      "createdAt": "2026-07-21T20:09:02+00:00",
      "stats": {
        "plays": 1200000,
        "likes": 84400,
        "comments": 2528,
        "shares": 2944,
        "saves": 6302,
        "reposts": 0
      }
    }
  ],
  "videosCollected": 5,
  "videosSource": "embed",
  "hasMore": null
}

Read the API docs

Frequently asked questions

Is it legal to scrape TikTok?

Collecting publicly available TikTok data such as follower counts, video captions and comments is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape TikTok without getting blocked?

TikTok is protected by in-house anti-bot systems and guards search and comments behind a captcha. ScrapeUnblocker rotates residential and ISP exits, handles challenges and renders search and comments in a real browser, so the TikTok plugin returns parsed JSON. In ScrapeUnblocker's benchmark it returned real content on 99.9% of 1,000 calls, about 9.4s per call.

What TikTok data can I get?

Five endpoints: a creator profile with exact follower, following, like and video counts plus the newest videos; one video or photo post with exact plays, likes, comments, shares, saves and reposts, hashtags, sound, subtitles and play and download URLs; hashtag totals with videos; keyword search in TikTok's own ranking; and a post's comments with author, likes and preloaded replies.

Do I need a TikTok API or account?

No. The TikTok plugin returns public profiles, posts, hashtags, search results and comments as JSON without a TikTok API account, login or cookies. Private, deleted, banned or region-locked items return 404 with TikTok's own reason. Media URLs are signed by TikTok and expire after a few hours, so download what you need in the same run.

Can I get TikTok search results for a specific country?

Yes. TikTok ranks keyword search by region, so set proxy_country to an ISO-2 code and /social/tiktok-search returns what a user in that country sees. Profiles, posts, hashtags and comments are the same worldwide, so set proxy_country on those endpoints for region-restricted items.

How much does it cost to scrape TikTok?

Pricing is per request: 1 request = 1 credit, from EUR 1.00 per 1,000 on pay as you go to about EUR 0.55 per 1,000 on the Ultimate plan. Plugin calls use the same plan quota as any other request. One profile call can include up to 200 of the creator's newest videos. Blocks, timeouts and errors on ScrapeUnblocker's side are not billed, and the free trial includes 500 requests with no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.