TikTok API without approval
StoriesFly runs an unofficial TikTok API for public data. Send a username or a video link and get the profile, videos, stories, followers, following, reposts or the video without the watermark as JSON. You do not apply to TikTok or register an app. You send an API key.
What the TikTok API returns
Profile, videos, stories, followers, following and reposts of a public account, and one video with its numbers and the file without the watermark. Each is a GET request under /api/v1/ with your key in the X-Api-Key header. A call costs 1 request, and so does each page of a list.
Followers, following, videos and reposts come a page at a time: pass next_cursor back as cursor for the next page. Page size follows TikTok and varies by endpoint.
| Endpoint | Returns | Cost |
|---|---|---|
| GET /api/v1/tiktok/user/profile | TikTok profile with followers, following, likes and video count. | 1 request |
| GET /api/v1/tiktok/user/videos | A TikTok account's videos with numbers, page by page; file links on page one. | 1 request per page |
| GET /api/v1/tiktok/user/stories | TikTok stories live now. | 1 request |
| GET /api/v1/tiktok/user/followers | TikTok followers, page by page; a hidden list answers an empty page. | 1 request per page |
| GET /api/v1/tiktok/user/following | TikTok accounts followed, page by page; a hidden list answers an empty page. | 1 request per page |
| GET /api/v1/tiktok/user/reposts | Videos a TikTok account reposted, page by page, with their authors. | 1 request per page |
| GET /api/v1/tiktok/video | One TikTok video without the watermark, with views, likes, comments and shares. | 1 request |
Make the first call
Get a key from the dashboard, then ask for a profile by username. The answer is JSON with the numbers TikTok shows on the profile.
curl "https://storiesfly.com/api/v1/tiktok/user/profile?username=khaby.lame" \
-H "X-Api-Key: sf_live_your_key"import { StoriesFly } from "storiesfly";
const sf = new StoriesFly({ apiKey: process.env.STORIESFLY_KEY! });
const profile = await sf.tiktok.user.profile({ username: "khaby.lame" });
console.log(profile);import { StoriesFly } from "storiesfly";
const sf = new StoriesFly({ apiKey: process.env.STORIESFLY_KEY! });
for await (const page of sf.paginate(sf.tiktok.user.followers, { username: "khaby.lame" }, { maxPages: 3 })) {
console.log(page.users.length);
}{
"id": null,
"sec_uid": null,
"username": "khaby.lame",
"full_name": "Khabane lame",
"bio": "Se vuoi ridere sei nel posto giusto😎 If u wanna laugh u r in the right place😎",
"profile_pic_url": "https://p16-common.tiktokcdn.com/tos-useast8-avt-0068-tx2/08987e23b94057953fd4f1738694bf5f~tplv-tiktokx-cropcenter:720:720.webp",
"followers": 162979750,
"following": null,
"likes": null,
"videos": null,
"verified": true,
"is_private": null
}Official TikTok APIs vs StoriesFly
TikTok's official APIs are the right tool when you build an app that people sign in to, or when you post to an account you own. The StoriesFly API is for reading public accounts you name. The two do different jobs, and some teams use both.
| Official TikTok APIs | StoriesFly API | |
|---|---|---|
| Approval | You register a developer app, and TikTok reviews it before it goes live | No app and no review: an API key as soon as you sign in with Telegram |
| What it reads | The data the signed-in person allows your app to use, within the permissions TikTok approves; the Research API is for approved researchers | The public data of any public account you name: profile, videos, stories, followers, following, reposts |
| Who can use it | Developers whose app and use case TikTok approves | Anyone with an API key |
| Posting and account management | Yes, with the right product and permission | No, read only |
| Setup | An app, redirect URLs, a sign-in flow for your users | One header: X-Api-Key |
What it costs
Every TikTok call is 1 request, or one page of a list. That is $1.50 per 1,000 at the Start rate, and it is paid from a prepaid balance that never expires, from $10. Your first 100 requests are free when you sign in with Telegram.
A video file without the watermark by its link, with no numbers, is cheaper through download: $0.20 per 1,000 for a TikTok link, $0.50 per 1,000 for an Instagram link. See pricing for the levels and the billing rules.
Answers are between 10 minutes and 60 minutes old, depending on the endpoint. A wrong parameter and a failure on our side cost nothing.
What it cannot do
- It reads public accounts only.
- It reads the accounts and videos you name. It does not list trending sounds or hashtags.
- An account that hides its followers or following list answers an empty page with
hiddenset totrue. - It cannot post, comment, like, follow or send messages.
- File links in an answer are temporary: save the video when you need it later.
- You never log in to TikTok. You send an API key.
Docs, MCP and next steps
Every parameter, error and example is in the docs: tiktok/user/profile, tiktok/user/videos, tiktok/user/stories, tiktok/user/followers, tiktok/user/following, tiktok/user/reposts and tiktok/video.
To use the same data from ChatGPT or Claude without code, see the TikTok MCP server. For Instagram, see Instagram API without login. Get your key to start.
Questions developers ask
Is this the official TikTok API?
No. It is a separate API by StoriesFly, not affiliated with or endorsed by TikTok. Use TikTok's official APIs to post to or manage an account you own, or to build an app people sign in to. Use this one to read public accounts.
Do I need TikTok's approval or a developer app?
No. You need a StoriesFly API key, which you get when you sign in with Telegram. There is no app to register and no review.
Is there a TikTok followers API?
Yes. tiktok/user/followers returns the followers of a public account a page at a time, each with a username, name, picture, verified badge and the follower, following and like counts, and next_cursor for the next page. tiktok/user/following does the same for the accounts it follows. An account that hides the list answers an empty page with hidden set to true.
Can I get a TikTok video without the watermark?
Yes. tiktok/video takes the link of a video, a short vm.tiktok.com link too, and returns the file without the watermark, the sound, the caption, hashtags, author, time and the views, likes, comments and shares.
What does the TikTok API cost?
1 request per call, or per page of a list: $1.50 per 1,000 at the Start rate. Your first 100 requests are free. It is paid from a prepaid balance that never expires, from $10.
Can I use it from ChatGPT or Claude?
Yes. The same data is available as the TikTok MCP server: paste one address into ChatGPT, Claude or Cursor, sign in with Telegram and ask about an account in plain words.
Your first 100 requests are on us
Sign in with Telegram, create a key, call any endpoint. Top up only when you need more.
