tiktok-private-api
Unofficial TikTok mobile API SDK for Python. Talks to the same private
endpoints the real Android/iOS app uses — feed, profiles, search, comments,
likes, follows, uploads — with full request signing (X-Argus / X-Ladon /
X-Gorgon / X-Khronos). No TikTok for Developers account, no OAuth, no app
review, no SELF_ONLY limit. You drive a real logged-in session, not the
throttled official API.
This is a reverse-engineering / automation toolkit. Use it on accounts and data you are authorized to access.
Why this instead of the official API
| Official TikTok API | tiktok-private-api | |
|---|---|---|
| Developer account / app review | required | not needed |
client_key / client_secret |
required | not needed |
| Reading feed, other users, search | ❌ not exposed | ✅ |
| Likes / comments / follows / blocks | ❌ | ✅ |
Public posting (not just SELF_ONLY) |
after review only | ✅ |
| Rate limits | tight, per-app | per-account, mobile-grade |
The official Content Posting / Display API only lets you touch your own connected account in a sandbox. This SDK speaks the mobile protocol, so it does what the app does.
Features
- Full mobile signing — X-Argus, X-Ladon, X-Gorgon, X-Khronos, device fingerprint, auto device registration.
- Android + iOS — one API surface (
AndroidClient/IOSClient), the iOS layer overrides device params + Safari TLS impersonation. - ~110 endpoints across 14 modules — feed, user, video, search, comment, social (like/follow/block), music, notice, live, dm, effect, upload, passport.
- Reliable engagement writes — like, comment, follow, block, collect routed through the device's own TTNet/QUIC stack to pass server-side checks (Janus/SC).
- Session-based auth — extract a logged-in session from an emulator or jailbroken device; no password handling in the SDK.
- Extras — async client, multi-account fleet with cooldown/ban tracking, web-scraping fallbacks, proxy rotation, MCP server.
Quick start
Request signing runs on our hosted service — you just need an API key. No device, no local signing setup, no fragile Frida bridge to maintain.
from tiktokflow import TikTokAPI
tt = TikTokAPI(api_key="sk_...") # get a key — see Contact below
me = tt.user.profile_self()
feed = tt.feed.for_you(count=10)
tt.social.like(feed["aweme_list"][0]["aweme_id"])
tt.social.follow(feed["aweme_list"][0]["author"]["uid"])
tt.comment.publish(feed["aweme_list"][0]["aweme_id"], "🔥")
# iOS device profile, proxy rotation, rate limiting — all one call:
tt = TikTokAPI(api_key="sk_...", platform="ios",
proxies=["socks5://user:pass@host:port"], rate_limit=2.0)
Endpoint modules
| Module | What it covers |
|---|---|
feed |
For You, Following, Friends, Nearby |
user |
profiles, followers/following, block list, settings, username lookup |
video |
detail, my posts, favorites, collections, stats, delete |
search |
universal / video / user search, suggestions, trending, hashtags |
comment |
list, replies, publish, delete, digg |
social |
follow, like, block, dislike, friend list, digg list, recommend users |
music |
detail, videos by track, search, trending, collections |
notice |
notifications, unread count, inbox |
effect |
sticker/effect detail, videos by effect |
live |
search, room info, gifts |
dm |
conversations, messages, send, stranger inbox |
passport |
email/SMS login, register, account info, token refresh |
upload |
video + photo-carousel upload and publish |
Install
pip install tiktok-private-api
How it works
Mobile request signing (X-Argus / X-Ladon / X-Gorgon / device fingerprint) is the hard part that breaks every few app updates. We run it as a managed service: your client sends the request, our signing server returns valid headers, TikTok accepts it. You get a stable API and never touch signing internals — they're kept server-side, not shipped in this package.
Get an API key and see plans, limits, and hosted-account options below.
Get access
API keys, pricing, higher-volume plans, and custom work: @mxmtkchk on Telegram.
Disclaimer
Not affiliated with or endorsed by TikTok / ByteDance. Provided for research and automation on authorized accounts. You are responsible for complying with TikTok's terms and applicable law.
Release files for tiktok-private-api 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tiktok_private_api-0.4.0.tar.gz | 73.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tiktok_private_api-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 157.3 kB
Release files / tiktok_private_api-0.4.0.tar.gz
| Download URL | tiktok_private_api-0.4.0.tar.gz |
|---|---|
| Size | 73.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ee9dc2c1428f5ad08f7788858f84a4bbefa167c5363a0d8019ad72d7d48dff4
|
|
BLAKE2b-256 checksum How to use checksums |
ea133598a6756083900dfba88d5c7cd0d619c087be1df6fadf3f245376ec4ef5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / tiktok_private_api-0.4.0-py3-none-any.whl
| Download URL | tiktok_private_api-0.4.0-py3-none-any.whl |
|---|---|
| Size | 83.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9fc3a918c8c03c7f1651418978c4933b48aae682cf1dff068fc456084eeebca8
|
|
BLAKE2b-256 checksum How to use checksums |
2783bbf9c269a5e64e9ce689c67f2f505dda1664634e7f4a5fc6356f25c569e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|