Send a video URL, a username, a keyword or a sound ID and get structured JSON back: engagement stats, download links, followers, comments and replies, and paginated feeds. No TikTok account, cookies or headless browser required.
Every call is a POST to /api/v1/tiktok with an endpoint path and its params, and every response comes back in the same envelope, with the results in data.
POST https://scrapingbot.io/api/v1/tiktok x-api-key: YOUR_API_KEY content-type: application/json { "endpoint": "/user/posts", "params": { "unique_id": "tiktok", "count": 10 } }
You can also send the key as a Bearer token or an api_key query parameter.
/
Video details
One video with its caption, duration, view, like, comment and share counts, author, sound and download links.
/video/
"1" for the HD download link
/feed/search
Search videos
Videos matching a keyword, with the same fields as a video lookup, one page at a time.
searchId from the previous page
/user/info
Creator profile
Profile details (nickname, bio, avatar, verification) plus follower, following, like and video counts.
unique_id
/user/posts
Creator videos
The videos a creator has posted, one page at a time, with stats and download links.
/user/search
Search creators
Accounts matching a keyword, each with its profile and stats.
/user/followers
Followers
Accounts that follow a creator, each with its profile and counters, plus the creator’s total follower count.
/user/info
/user/following
Following
Accounts a creator follows, with the same fields, plus the total.
/user/info
/music/info
Sound details
A sound’s title, author, album, duration, cover, audio link and how many videos use it.
url of the sound page
/music/posts
Videos using a sound
Videos that use a sound, one page at a time, with stats and authors.
url of the sound page
/comment/list
Video comments
Comments on a video with text, like and reply counts, timestamps and commenter profiles, plus the total count.
/comment/reply
Comment replies
The replies to one comment, with text, likes, timestamps and replier profiles, one page at a time.
/comment/list
url
Full parameter reference and response examples are in the TikTok docs. New to TikTok data? Read the TikTok scraping guide.
Feeds come back one page at a time. Hand each response’s cursor to the next request and keep going until TikTok says there is nothing left.
/user/posts, /music/posts and /comment/list return a cursor. Pass it in params to get the next page.
Pages typically hold around 10 videos, but sizes vary. Only hasMore: 0 means the list has ended.
video_id is the stable post ID, so overlapping pages never create duplicates in your store.
import requests API = "https://scrapingbot.io/api/v1/tiktok" HEADERS = {"x-api-key": "YOUR_API_KEY"} params = {"music_id": "7682907287056337667", "cursor": 0} videos = {} while True: body = {"endpoint": "/music/posts", "params": params} res = requests.post(API, headers=HEADERS, json=body) res.raise_for_status() data = res.json()["data"] for video in data["videos"]: videos[video["video_id"]] = video # stable post id if not data["hasMore"]: # only hasMore: 0 ends the list break params["cursor"] = data["cursor"] print(len(videos), "videos")
A few patterns we see often, and the endpoints behind each one.
Track followers, likes and posting cadence for a list of creators, see who they follow, and benchmark their videos against each other.
See which videos use a sound, how many there are and how they perform as a trend spreads.
Find new videos for your brand or category keywords and read what people say in the comments and their replies.
Store video metadata, captions, stats and media links for research datasets, moderation or reporting.
A TikTok call costs 1 credit, and only when it succeeds. Every endpoint costs the same.
creditsUsed field, and your dashboard logs every request with its status, duration and credits.
Every successful TikTok call
1credit
No. You authenticate with your ScrapingBot API key and nothing else. There is no TikTok login, cookie or headless browser to manage on your side.
Depending on the endpoint: a video URL, a username (plain, with @, or a profile URL) or numeric user ID, a keyword, a sound ID or sound URL, or a comment ID. List endpoints also take optional count and cursor values.
Yes. Look up the profile with /user/info, then pass its numeric data.user.id as user_id to /user/followers or /user/following. Each call returns up to 50 accounts (set count) and the full count in total. These lists have no cursor, so one call is one page.
Yes. /comment/list gives each comment’s id and reply_total. Pass the id as comment_id to /comment/reply, with the video’s video_id or URL, and page with cursor while hasMore is set.
Call /user/posts or /music/posts and send the cursor from each response with the next request. Pages typically hold around 10 videos and sizes vary, so keep going while hasMore is set: only hasMore: 0 means the list has ended. Use video_id as the stable ID when you store posts.
Yes. Video lookups include play and watermarked wmplay video links and the audio track in music. Set hd to "1" to ask for the HD link.
1 credit per successful call, whatever the endpoint or page size. Errors and timeouts are refunded automatically, so failed calls cost nothing. New accounts get 100 free credits, enough for 100 calls.
TikTok requests time out after 30 seconds. A request that times out returns an error and its credit is refunded.
Every account has a TikTok playground in the dashboard: pick an endpoint, fill in the params, run it and copy the request. The docs list every endpoint with examples.
Create an account, copy your API key and make your first request in a few minutes. No credit card required.