TikTok API
Twelve endpoints for TikTok profiles, user posts, video detail, transcripts, comments, hashtags and search — each one a single POST returning structured JSON. Extract the transcript of any TikTok video, read a profile, or search the platform: no developer application, no scraping stack, a flat 1 credit per call.
50 free credits on signup. No card, no developer application.
{ "data": { "user": { "uid": "107955", "unique_id": "tiktok", "nickname": "TikTok", "sec_uid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM", "signature": "One TikTok can make a big impact", "follower_count": 94643563, "following_count": 1, "aweme_count": 1545, "total_favorited": 461111057, "category": "Media & Entertainment", "enterprise_verify_reason": "Verified account", "bio_url": "linktr.ee/tiktok" }, "status_msg": "" }, "response_time": 1542, "credits_used": 1, "credits_remaining": 4750}A real captured response from this endpoint. Sign up to run your own.
What is the Scavio TikTok API?
The Scavio TikTok API is a REST API that returns public TikTok data as structured JSON. You send a username, sec_user_id, video id, video URL, hashtag or keyword to one of 12 POST endpoints with your API key, and get back profiles, videos, transcripts, comments, hashtag listings or search results — with no TikTok developer application and no login.
- 12
- endpoints, all live in production
- 1
- credit per call, every endpoint
- 0
- developer applications to file
Start with these four
They cover most of what people build. The full twelve are below.
Profile
POST /api/v1/tiktok/profileFollower, following and like counts by username — and the sec_user_id that the posts, followers and following endpoints all key on.
Search videos
POST /api/v1/tiktok/search/videosKeyword search with author and statistics on every row. TikTok is a discovery engine, and this is the way in.
Hashtag videos
POST /api/v1/tiktok/hashtag/videosEvery video under a hashtag, paginated — size a trend before you commit budget or a content calendar to it.
Video comments
POST /api/v1/tiktok/video/commentsComment threads with like counts, plus reply expansion under any single comment. Where sentiment actually lives.
All 12 TikTok endpoints
Every route is a POST, returns JSON, and takes the same API key. TikTok is flat-priced: 1 credit per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Profile/api/v1/tiktok/profile | Nickname, bio, follower / following / like counts, and the sec_user_id | 1 |
User posts/api/v1/tiktok/user/posts | A creator's videos by sec_user_id — id, description, statistics | 1 |
Video detail/api/v1/tiktok/video | One video — description, author, music and full statistics | 1 |
Video transcript/api/v1/tiktok/video/transcript | The spoken-word transcript of a video — timestamped segments and full text | 1 |
Video comments/api/v1/tiktok/video/comments | Comment id, text, author and like count, paginated | 1 |
Comment replies/api/v1/tiktok/video/comments/replies | Replies under a single comment, paginated | 1 |
Search videos/api/v1/tiktok/search/videos | Videos by keyword — id, description, author and statistics | 1 |
Search users/api/v1/tiktok/search/users | Accounts by keyword — username, nickname, followers, verified | 1 |
Hashtag detail/api/v1/tiktok/hashtag | A hashtag's id, name, view count and description | 1 |
Hashtag videos/api/v1/tiktok/hashtag/videos | Videos under a hashtag_id, with authors and statistics, paginated | 1 |
Followers/api/v1/tiktok/user/followers | A creator's follower list by sec_user_id, paginated | 1 |
Following/api/v1/tiktok/user/followings | The accounts a creator follows, paginated | 1 |
50 free credits on signup covers 50 calls of any kind. See plans
Profile to full catalogue in two calls
Resolve the handle, read the sec_uid, then page the creator's videos. The response on the right is a real capture, field names and all.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
user = client.tiktok.profile(username="tiktok")["data"]["user"]
print(user["nickname"], user["follower_count"])
# Posts key on sec_uid, not the handle - 1 credit
posts = client.tiktok.user_posts(sec_user_id=user["sec_uid"]){
"data": {
"user": {
"uid": "107955",
"unique_id": "tiktok",
"nickname": "TikTok",
"sec_uid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"signature": "One TikTok can make a big impact",
"follower_count": 94643563,
"following_count": 1,
"aweme_count": 1545,
"total_favorited": 461111057,
"category": "Media & Entertainment",
"enterprise_verify_reason": "Verified account",
"bio_url": "linktr.ee/tiktok"
},
"status_msg": ""
},
"response_time": 1542,
"credits_used": 1,
"credits_remaining": 4750
}Why not TikTok's official API?
If you are building for creators who log into your app, use theirs. For reading public data about accounts you do not control, they are not substitutes.
TikTok Research / Display API
- Research API access is by application, and is limited by region and approved use case
- Display API returns data for accounts that have authorised your app, not arbitrary public profiles
- OAuth tokens to issue, refresh and store per user
- No practical path to hashtag or keyword discovery across the platform
Scavio TikTok API
- One API key, issued at signup — no application, no review, no waiting
- Any public profile, video, hashtag or keyword search
- Twelve endpoints live today, versioned and documented
- Same key and JSON envelope as 30 other Scavio platforms
Scavio returns publicly available data only, and never authenticates as a TikTok user.
What developers build with it
Creator vetting for paid campaigns
Resolve a handle to real follower and total-like counts, then page the creator's videos and read per-video statistics. Engagement you computed beats the screenshot in a media kit.
profile + user/postsTrend and hashtag sizing
Read a hashtag's view count, then page its videos to see whether the trend is broad or three big accounts. Both calls are 1 credit, so you can check a dozen angles before picking one.
hashtag + hashtag/videosComment mining and sentiment
Pull a video's comments and expand replies under any thread, then run an LLM over the text for objections, requests and purchase intent — on your videos or a competitor's.
video/comments + video/comments/repliesTranscript mining and video RAG
Pull the spoken-word transcript of a talking-head, news or how-to video as timestamped segments and full text, then summarise it, translate it, or embed it into a RAG index — no audio pipeline to run.
video/transcriptCompetitive content monitoring
Track a set of accounts on a schedule and diff their output. Posting cadence, format mix and which videos outperform all fall out of the profile and posts pair.
profile + user/postsDiscovery and prospecting
Search users and videos by keyword to build a list of creators in a niche, filtered by follower count and verification, then enrich each with a profile call.
search/users + search/videosAgent tools and RAG pipelines
Point an agent at the MCP server and TikTok becomes a callable tool alongside every other Scavio platform — same key, same JSON envelope, no per-platform glue.
MCP + RESTNo code today? Use the free tools
Same endpoints behind them. No signup for the first few runs.
How to get TikTok data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no TikTok developer application to submit.
- 2
POST a handle, id or keyword
Send {"username": "tiktok"} to https://api.scavio.dev/api/v1/tiktok/profile with an Authorization: Bearer header. Every TikTok endpoint is a POST and takes a username, sec_user_id, video id, hashtag or keyword.
- 3
Read the JSON, then follow the sec_uid
The response wraps the payload under data, plus credits_used and credits_remaining. Posts, followers and following key on sec_uid rather than the handle, so read it from the profile call first.
TikTok API FAQ
What is the Scavio TikTok API?
+
It is a REST API that returns public TikTok data as structured JSON. Twelve POST endpoints cover profiles, user posts, video detail, video transcripts, comments and replies, video and user search, hashtag detail and hashtag videos, followers and following. You authenticate with a Scavio API key.
Who are these endpoints for?
+
Developers embedding social data in a product; AI agent builders wiring TikTok in as an MCP or SDK tool; automation engineers running it inside n8n, Zapier or Make; GTM and sales teams building creator prospect lists; brand managers tracking competitor content and comment sentiment; and creators or agencies vetting collaborators on real numbers. Same API for all of them — what changes is which of the 12 endpoints you call.
Do I need a TikTok developer account?
+
No. TikTok's official Research and Display APIs are gated behind an application, are restricted by region and use case, and mostly serve accounts that have authorised your app. Scavio needs none of that: sign up, take the key, send a handle.
What is sec_user_id and why do I need it?
+
TikTok keys a creator's posts, followers and following on sec_uid rather than the @handle. Call /api/v1/tiktok/profile first, read sec_uid from the response, and pass it to those endpoints. There is also a free secUID finder tool if you just need one by hand.
How much does a TikTok request cost?
+
Every TikTok endpoint costs 1 credit, including comments and hashtag video listings. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
Can I get the transcript of a TikTok video?
+
Yes. POST a video id or a video URL to /api/v1/tiktok/video/transcript and get back the spoken-word transcript as timestamped segments and one full-text string, for 1 credit like every other TikTok endpoint. Transcripts are available for videos that carry captions — talking or narrated content such as news, how-to and commentary. A silent music or dance clip has nothing to transcribe and returns available: false.
What does the response look like?
+
The API wraps the provider payload under a data key and adds credits_used and credits_remaining. A profile returns uid, unique_id, nickname, sec_uid, signature, follower_count, following_count, aweme_count and total_favorited, among other fields.
How does pagination work?
+
User posts, comments, hashtag videos, followers and following return a cursor alongside the results. Pass it back as the cursor parameter on the next call to get the following page.
Can it read private accounts?
+
No. Only data TikTok makes publicly available is returned. A private account resolves to its public profile shell, and its videos are not accessible.
Which languages and tools are supported?
+
Official Python (pip install scavio) and JavaScript/TypeScript (npm i scavio) SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node. Any language can call the REST endpoints directly with an HTTP client.
Is scraping TikTok data legal?
+
Scavio returns publicly available data and does not access private content or authenticate as a user. You remain responsible for how you use the data, including compliance with TikTok's terms and with privacy law where personal data is involved. Talk to your own counsel for your specific use case.
Explore more of Scavio
Instagram API
Profiles, posts, reels and hashtag search.
YouTube API
Transcripts, search, channels and comments.
TikTok Shop API
Shop search, products, reviews and sellers.
Reddit API
Search Reddit and pull full comment threads.
MCP server
Every platform as a callable tool for agents.
Pricing
Credit packs and plans, no per-platform surcharge.
Start pulling TikTok data today
50 free credits on signup, no card. Your first request is a POST with a handle in it.