TikTok APIunofficial
Public TikTok profiles and videos, logged out: a profile's bio and counts, and one video's caption, stats, music and author, read from the data embedded in the server-rendered page.
- tiktok.com
all live 2 operations, checked by the installs that call them.
Seeded by the maintainers.
Try it
Set up API Anything for your agents:
npx -y api-anything setupThen ask your agent, which finds this site by itself, or call it from a shell:
api-anything pull tiktok
api-anything call tiktok getProfile username=nasaOperations
| Operation | Method | Login | Writes | Status |
|---|---|---|---|---|
getProfile(username) -> userId, username, nickname, bio, bioLink, verified, privateAccount, createTime, avatar, followers, following, likes, videosPublic profile by username: user id, display name, bio, bio link, verified and private flags, follower, following, like and video counts |
GET | no | no | Live0 confirmations · success unknown; last worked unknown |
getVideo(username, videoId) -> videoId, caption, createTime, author, authorName, durationSec, cover, plays, likes, comments, shares, saves, hashtags, music, musicAuthor, locationOne public video by its id: caption, createTime, author handle and name, duration, cover image, play, like, comment, share and save counts, hashtags, music title and author, and the region it was posted from |
GET | no | no | Live0 confirmations · success unknown; last worked unknown |
Notes
No account is needed.
- Counts (
followers,likes,plays, ...) are exact numbers as strings ("2151317").createTimeis seconds since the epoch (a string ingetVideo, a number ingetProfile). - There is no op for a profile's video list: TikTok loads it through signed requests. Get a video id from a video link (
tiktok.com/@<username>/video/<videoId>). getVideois keyed byvideoId; TikTok ignores theusernamein the URL.authoris the real handle, so check it when the video should be someone's.- A username that doesn't exist comes back
auth("login page instead of content"), because TikTok's not-found page carries a login form. Check the spelling before asking anyone to log in. avatarandcoverare signed CDN URLs that expire (x-expires).hashtagslists the video's challenge tags and can be empty when the caption has none.
About these operations
Each operation is a request learned from TikTok's own web pages: API Anything replays it over plain HTTP and falls back to a browser when it must. Read them as JSON.