TikTok video API: creator feeds, video stats and transcripts as JSON

You can get TikTok video data with three REST calls: the video feed of a creator by handle, the full details of one video by URL, or the videos saved in a public collection. Every response is JSON with captions and engagement stats such as plays, likes, comments, shares and saves, and a single video call can also return its transcript.

Buy credits

Use cases

Endpoints and cost

EndpointWhat it returnsCredits/callUSD/call (Freelance plan)
/v1/tiktok/user_videos_proProfile Videos1$0.0017
/v1/tiktok/video_plusVideo Info1$0.0017
/v1/tiktok/collection_videosCollection Videos1$0.0017

Endpoint details

/v1/tiktok/user_videos_pro

Profile Videos 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
handlestringyesTikTok handle
user_idstringnoTikTok user id. Use this for faster responses.
sort_bystringnoWhat to sort by
regionstringnoCountry code passed to the profile-feed source. Defaults to US. If a profile should have videos but returns none, try another relevant two-letter country code.
include_pinnedbooleannoWhether to include pinned posts. Defaults to true. Set to false to exclude posts marked as pinned, including with trim=true. Keep this value unchanged while pag
trimbooleannoSet to true for a trimmed down version of the response
max_cursorstringnoCursor to get more videos. Get 'max_cursor' from previous response.

Sample response (trimmed):

{
 "videos": [
  {
   "video_id": "7517114944362499342",
   "desc": "You can say whatever you want about the WNBA is but it’s never boring",
   "desc_language": "en",
   "region": "US",
   "statistics": {
    "video_id": "7517114944362499342",
    "collect_count": 1565,
    "comment_count": 587,
    "like_count": 59605,
    "download_count": 178,
    "forward_count": 0,
    "lose_comment_count": 0,
    "lose_count": 0,
    "view_count": 559925,
    "repost_count": 0,
    "share_count": 3424,
    "whatsapp_share_count": 7
   },
   "video": {
    "cover_tsp": 140.193500922967,
    "ai_dynamic_cover": {
     "uri": "tos-useast5-p-0068-tx/o0QcUfjIQHA8EQBSBQtAfYqKkCX9eKpMEOHl1H",
     "url_list": [
      "https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/o0QcUfjIQHA8EQBSBQtAfYqKkCX9eKpMEOHl1H~tplv-tiktokx-origin.image?dr=9229&refresh_token=2a5a8daf&x-exp..."
     ],
     "url_prefix": null
    },
    "ai_dynamic_cover_bak": {
     "uri": "tos-useast5-p-0068-tx/o0QcUfjIQHA8EQBSBQtAfYqKkCX9eKpMEOHl1H",
     "url_list": [
      "https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/o0QcUfjIQHA8EQBSBQtAfYqKkCX9eKpMEOHl1H~tplv-tiktokx-origin.image?dr=9229&refresh_token=2a5a8daf&x-exp..."
     ],
     "url_prefix": null
    },
    "animated_cover": {
     "uri": "tos-useast5-p-0068-tx/o0QcUfjIQHA8EQBSBQtAfYqKkCX9eKpMEOHl1H",
     "url_list": [
      "https://p16-sign.tiktokcdn-us.

/v1/tiktok/video_plus

Video Info 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringyesTikTok video or photo/slideshow URL
regionstringnoTwo-letter country code passed to the primary post source. Defaults to US. Try the creator's country if a post is unavailable. This does not guarantee a matchin
get_transcriptbooleannoNative captions are opt-in via get_transcript=true and are included in the existing base endpoint price. This detail endpoint does not use AI transcription or a
trimbooleannoSet to true to get a trimmed response
download_mediabooleannoSet to true to download the video/images and get back permanent Supabase URLs. Costs 10 credits if media is found, 1 credit otherwise.
cache_max_agestringnoIf we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp).

/v1/tiktok/collection_videos

Collection Videos 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.

ParameterTypeRequiredDescription
urlstringyesPublic TikTok collection URL
next_cursorstringnoCursor to get more videos. Use max_cursor from the previous response.

Example: curl

curl -H "X-Scapi-Key: $SCAPI_KEY" "https://api.scrapall.bipsport.com/scapi/v1/tiktok/user_videos_pro"

Example: Python

import os, requests
r = requests.get("https://api.scrapall.bipsport.com/scapi/v1/tiktok/user_videos_pro",
    headers={"X-Scapi-Key": os.environ["SCAPI_KEY"]})
print(r.json())

FAQ

How do I get all videos from a TikTok user?

Call the profile videos endpoint with the handle and choose sort_by latest or popular. Each page returns a list of video objects with caption, statistics and video URLs. Pass max_cursor from the previous response to load the next page, and keep the same region and sort_by for the whole cursor chain.

Can I get the transcript of a TikTok video?

Yes. Call the video info endpoint with the video URL and set get_transcript=true. When captions exist, the response includes the transcript in WEBVTT format next to the caption, author, music and engagement statistics of the video.

Which stats come back for each video?

Each video carries play_count, digg_count (likes), comment_count, share_count and collect_count (saves), plus the caption, duration, cover image and download URLs. The single video endpoint also returns author and music info.

Is the creator feed a complete list of every post?

Not always. The feed is a practical way to read recent or popular videos, but it is not guaranteed to be an exhaustive inventory of every public post. For a known video, request it directly by URL with the video info endpoint.

Can I read a TikTok collection or playlist?

Yes. Pass the public collection URL to the collection videos endpoint. It returns the saved videos and a next_cursor value that you send back to fetch further pages.

How do I pay and get my API key?

Open the Buy page, pick the Freelance plan and pay in USDT on TRC20 or ERC20. The key is shown once, right after the payment is confirmed on-chain.

How many credits does one call use?

The cost table on this page lists credits per call for each endpoint. The Freelance plan is $45 for 27,000 credits per 30 days.

Get an API key and credits

Full reference: all tiktok endpoints.