TikTok API · 100 free credits

TikTok data,
one call away.

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.

Real examples
POST/api/v1/tiktok endpoint/user/infounique_idnasa
Free account, 100 credits to start. No card needed. Try your own
Real response
Creator profile Hover anything to see its field, click to find it in the JSON
Hover a line or the preview to see its JSON path
Endpoints

Eleven endpoints. One request shape.

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.

Request format
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.

Videos 2

/

Video details

One video with its caption, duration, view, like, comment and share counts, author, sound and download links.

  • url required · video URL containing /video/
  • hd · "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.

  • keywords required
  • count · 1–50, default 10
  • cursor · from the previous page
  • search_id · searchId from the previous page
  • region · two-letter country code
Creators 3

/user/info

Creator profile

Profile details (nickname, bio, avatar, verification) plus follower, following, like and video counts.

  • unique_id · username, @handle or profile URL
  • user_id · numeric ID, instead of unique_id

/user/posts

Creator videos

The videos a creator has posted, one page at a time, with stats and download links.

  • unique_id required · username, @handle or profile URL
  • count · up to 10, default 10
  • cursor · from the previous page

/user/search

Search creators

Accounts matching a keyword, each with its profile and stats.

  • keywords required
  • count · 1–50, default 10
Followers 2

/user/followers

Followers

Accounts that follow a creator, each with its profile and counters, plus the creator’s total follower count.

  • user_id required · numeric ID from /user/info
  • count · 1–50, default 20

/user/following

Following

Accounts a creator follows, with the same fields, plus the total.

  • user_id required · numeric ID from /user/info
  • count · 1–50, default 20
Sounds 2

/music/info

Sound details

A sound’s title, author, album, duration, cover, audio link and how many videos use it.

  • music_id required · or 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.

  • music_id required · or url of the sound page
  • count · 1–35, default 10
  • cursor · from the previous page
Comments 2

/comment/list

Video comments

Comments on a video with text, like and reply counts, timestamps and commenter profiles, plus the total count.

  • url required · video URL
  • count · 1–50, default 20
  • cursor · from the previous page

/comment/reply

Comment replies

The replies to one comment, with text, likes, timestamps and replier profiles, one page at a time.

  • comment_id required · from /comment/list
  • video_id required · or the video url
  • count · 1–50, default 20
  • cursor · from the previous page

Full parameter reference and response examples are in the TikTok docs. New to TikTok data? Read the TikTok scraping guide.

Pagination

Page through a whole creator or sound.

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.

01

Send the cursor back

/user/posts, /music/posts and /comment/list return a cursor. Pass it in params to get the next page.

02

Stop on hasMore, not on page size

Pages typically hold around 10 videos, but sizes vary. Only hasMore: 0 means the list has ended.

03

Key your data on video_id

video_id is the stable post ID, so overlapping pages never create duplicates in your store.

Collect every video that uses a sound
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")
Use cases

What teams build with it.

A few patterns we see often, and the endpoints behind each one.

Creator analytics

Track followers, likes and posting cadence for a list of creators, see who they follow, and benchmark their videos against each other.

/user/info/user/posts/user/following

Sound and trend tracking

See which videos use a sound, how many there are and how they perform as a trend spreads.

/music/info/music/posts

Brand monitoring

Find new videos for your brand or category keywords and read what people say in the comments and their replies.

/feed/search/comment/list/comment/reply

Archiving and research

Store video metadata, captions, stats and media links for research datasets, moderation or reporting.

//user/posts
Billing

You pay for answers, not attempts.

A TikTok call costs 1 credit, and only when it succeeds. Every endpoint costs the same.

  • Failed calls are refundedErrors and timeouts are credited back automatically, and requests with missing or invalid parameters are never charged.
  • 100 free credits to startThat covers 100 TikTok calls on the free plan. No credit card needed to sign up.
  • See the cost of every callEach response carries a creditsUsed field, and your dashboard logs every request with its status, duration and credits.
  • One balance for every APIThe same credits work for website scraping, TikTok, Instagram, Google, Amazon and ChatGPT. Paid plans refresh them every billing cycle.

Every successful TikTok call

1credit

Free to start
100 calls
from 100 free credits
Failed calls
0 credits
refunded automatically

Questions, answered

Do I need a TikTok account, cookies or a session?

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.

What can I send as input?

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.

Can I get a creator’s followers?

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.

Can I read the replies to a comment?

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.

How do I get every video from a creator or a sound?

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.

Can I get download links?

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.

What does a call cost?

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.

How long can a request take?

TikTok requests time out after 30 seconds. A request that times out returns an error and its credit is refunded.

Where can I try it before writing code?

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.

Your first 100 TikTok calls are free.

Create an account, copy your API key and make your first request in a few minutes. No credit card required.