TikTok scraper API
The TikTok scraper API for public profiles, videos, comments, followers and hashtags, as JSON, plus transcripts and audience countries. No Research API application.
37 endpoints · from 10 credits a call · 10 free calls up to 100 credits each · no credit card
curl "https://api.insightsocial.app/v1/tiktok/profile?handle=example_creator" \-H "x-api-key: $INSIGHTSOCIAL_API_KEY"
What TikTok data can you get?
Public TikTok data only, returned in the same JSON envelope as every other platform.
Profiles and audience
Bio, followers, total likes and verification, plus the top countries in a creator's audience.
Videos and transcripts
An account's videos with view, like, comment and share counts, a single video in full, and its spoken text.
Comments and replies
Every public comment under a video with like and reply counts, and the replies under each one.
Search, hashtags and trends
Videos by keyword or hashtag, account search, trending videos and the TikTok Ad Library.
TikTok API endpoints
All 37 TikTok endpoints and their price in credits. 9 are metered: they show a range and charge what the call actually read.
| Endpoint | Credits | What it returns |
|---|---|---|
| /profile | 10 | Returns a TikTok account's public profile: display name, bio, follower count on author.followers (or the rounded figure with followers_approximate), likes, verification, and user id. |
| /profile/videos | 10 | Returns a page of an account's recent public videos, each with caption, view, like, comment and share counts, and a thumbnail URL. |
| /post | 10 | Returns one TikTok video in full: caption, engagement counts, author, sound, video metadata, and any on-screen text the creator typed with TikTok's text tool (post.ext.on_screen_texts). |
| /post/comments | 10–30 | Returns a page of comments on one TikTok video, each with the commenter's username, comment text, like count, reply count, and timestamp. |
| /video/comment/replies | 10 | Returns the replies under a single TikTok comment, with each reply's text, author, likes, and timestamps. |
| /comment | 20–60 | Returns one TikTok comment with its current like count, reply count, pinned flag, author, and timestamp, found by link, by id, or by its text. |
| /search | 10–370 | Returns TikTok videos matching a keyword, each with caption, view and like counts, author details, a thumbnail, and post.ext.region (the country the video is registered to). |
| /trending | 50 | Returns a page of popular TikTok videos with caption, view and like counts, author and thumbnail. |
| /search/hashtag | 10 | Returns TikTok videos posted under a given hashtag, each with caption, view, like, comment and share counts, author details, and a thumbnail. |
| /search/top | 10 | Returns the videos TikTok ranks highest for a keyword on its Top tab, each with caption, author, engagement counts, a music id, and post.ext.region (the country the video is registered to). |
| /search/users | 10–1,310 | Returns TikTok accounts for a search term with username, name, avatar, followers, verification. |
| /similar | 50–50 | Returns about 30 TikTok accounts similar to a given creator, each with username, display name, avatar, bio, verification, and follower, following, video and like counts. |
| /user/audience | 50 | Returns where a creator's followers are: the top countries in their audience, with sampled follower counts and each country's share. |
| /user/followers | 10 | Returns a page of accounts that follow a TikTok user, each with username, display name, avatar, and its own follower count. |
| /user/following | 10 | Returns a page of accounts a TikTok user follows, each with username, display name, avatar, and its own follower count. |
| /user/live | 10 | Returns a TikTok account's live room in the platform's own shape: cover image, title, start time, status code, viewer and entry counts, stream ids, and the host's profile. |
| /post/transcript | 100 | Returns the spoken text of a TikTok video from its captions, with an option to fall back to AI transcription when no captions exist. |
| /video/screen-text | 50 | Returns the text shown on the video itself: native text stickers plus AI OCR of the cover frame, so burned-in editor captions are caught too. |
| /song | 10 | Returns one TikTok sound's details: title, artist, duration, how many videos use it, and its cover image. |
| /song/videos | 10 | Returns videos that use a given TikTok sound, each with caption, author details, and engagement counts. |
| /hashtags/popular | 60–960 | Returns TikTok's trending-hashtag board for one of 27 markets over 7, 30 or 90 days: each hashtag's rank, window post and view counts, daily popularity curve, industry board and top creators. |
| /videos/popular | 260–450 | Returns TikTok's Top Videos board for the US, Japan, Vietnam, Thailand or Indonesia over 7 or 30 days: each video's rank, lifetime and window views, organic views, engagement rate and creator. |
| /profile/region | 10 | Returns the two letter country code for a public TikTok profile, for example US or MX. |
| /adlibrary/search | 50–170 | Returns TikTok Ad Library ads matching a keyword or advertiser name, each with creative, title, advertiser, impressions and date; include=ad adds the brand, landing page and advertiser link. |
| /adlibrary/ad | 50 | Returns one TikTok Ad Library ad: creative video, title, advertiser account, landing page, brand name, and first-shown date. |
| /search/suggestions | 10 | Returns the autocomplete suggestions TikTok's own search box shows for a partial query, as a list of suggestion rows. |
| /collection/videos | 10 | Returns the public videos inside a TikTok collection, each with caption, play like comment share and save counts, author, and a playable URL. |
| /profile/playlists | 10 | Returns the playlists a TikTok creator has published on their profile, each with its playlist id, its name, and the number of videos it holds. |
| /playlist/videos | 10 | Returns the videos inside one of a creator's profile playlists, in playlist order, each with engagement counts, caption, author, and a playable URL. |
| /user/liked | 10 | Returns the videos a TikTok account has liked, newest first, each carrying its own third party author, engagement counts, caption, and a playable URL. |
| /location/posts | 10 | Returns public TikTok videos tagged at a place, each with engagement counts, caption, author, and a playable URL. |
| /effects | 10 | Returns TikTok camera effects by id, each with its name, its designer, the views of videos made with it, and how many such videos exist. |
| /effect/videos | 10 | Returns public TikTok videos created with a camera effect, each with engagement counts, caption, author, and a playable URL. |
| /search/music | 10 | Returns TikTok sounds matching a keyword, each with title, artist, duration, cover art, a preview audio URL, and how many videos use it. |
| /hashtag | 10 | Returns TikTok's own record for a hashtag, with its display name, its description where one exists, the live total views under the tag, and how many videos carry it. |
| /ads/top | 100–1,000 | Returns TikTok's Creative Center leaderboard of top-performing ads for a market and time window, each with click-through rate, board rank, like count, industry, objective, and the ad video. |
| /profile/full | 50 | Returns a TikTok profile plus its latest 10 videos in one call. |
Parameters, response fields and examples for each endpoint are in the TikTok API reference.
InsightSocial vs the official TikTok API
TikTok's Research API is open to approved non-commercial researchers, and its Display API reads only the users who log in to your app.
| InsightSocial API | Official TikTok API | |
|---|---|---|
| Who can use it | Any developer with an API key | Research API: approved researchers only |
| Whose data | Any public account or video | Display API: users who authorize your app |
| Approval | None. Sign in and copy a key | An application reviewed by TikTok |
| Transcripts | Spoken text of any public video | Not offered |
| Cost per call | 10 credits | Not sold; the Research API is for approved researchers |
The official API is the right tool for posting, messaging or managing accounts you own. This one is read-only public data.
How much does the TikTok API cost?
TikTok calls start at 10 credits. Every endpoint's price is in the table above and in the free GET /v1/endpoints catalogue, so you know the cost before you call. Pro's 10,000 monthly credits cover about 1,000 profiles at 10 credits each.
Failed calls are free
A call that errors or finds nothing costs 0 credits.
Retries are free
Resend a request with the same Idempotency-Key and the replay costs 0. Repeating a call without one is charged like the first time, because it can return newer data.
One balance
API calls and Chrome extension exports share the same credits. The free plan includes 500 a month.
Not writing code?
Connect InsightSocial to Claude or ChatGPT and ask for TikTok data in plain English. Same account, same credits.
TikTok API: frequently asked questions
No. TikTok grants the Research API to approved academic and non-profit researchers. The InsightSocial API needs no application; how you use the data is still yours to check against TikTok's terms and the law where you operate.
Yes. /v1/tiktok/post/comments takes the video URL and returns comments page by page with the commenter, text, likes and reply count. /v1/tiktok/video/comment/replies returns the replies under one comment.
Yes. /v1/tiktok/post/transcript returns the spoken text from the video's captions, with an option to fall back to AI transcription when there are none.
/v1/tiktok/profile/region returns the country an account is registered to, and /v1/tiktok/user/audience returns where its followers are. Search results also carry the region each video is registered to.
No. There is no TikTok app, OAuth flow or review. One API key in the x-api-key header works for TikTok and the other 24 platforms.
Yes. Your first 10 calls priced at 100 credits or less are free, and the free plan includes 500 credits every month. No credit card is needed to get a key.
60 requests a minute and 10 requests in flight at once, per API key. Going over either returns a 429 with a Retry-After header, and a rejected request costs nothing. There is no daily quota: past those two limits, your credit balance is what bounds volume.
List endpoints return rows in data.items and a pagination object with next_cursor and has_more. Send next_cursor back unchanged as the cursor parameter for the next page, and stop when has_more is false. A handful of endpoints page with their own parameter instead; their reference pages name it.
No. A call that errors or finds nothing costs 0 credits. A live fetch costs the endpoint's price, or for a metered endpoint what it actually read. An answer served from the shared cache costs 2 credits. Repeating a call is charged like the first time, because it can return newer data.
A call fetches live unless a recent copy is in the shared cache, and every response says which with the cached field; a cached answer costs 2 credits. Add fresh=1 or send Cache-Control: no-cache to skip the cache; that call is charged at the normal price.
Collecting publicly available data is generally treated differently from accessing private data, but the answer depends on your jurisdiction, TikTok's terms and what you do with personal data afterwards. The API reads public data only. Talk to a lawyer for anything commercial.
The same key works for 24 more platforms
- Instagram scraper API
- Facebook scraper API
- LinkedIn scraper API
- Twitter/X scraper API
- YouTube scraper API
- Reddit scraper API
- Threads scraper API
- Pinterest scraper API
- Bluesky scraper API
- Truth Social scraper API
- Snapchat scraper API
- Telegram scraper API
- Twitch scraper API
- Kick scraper API
- Rumble scraper API
- Kwai scraper API
- Douyin scraper API
- Xiaohongshu (RedNote) scraper API
- Quora scraper API
- TikTok Shop scraper API
- Weibo scraper API
- Zhihu scraper API
- Substack scraper API
- Nextdoor scraper API