tiktok-private-api

Unofficial TikTok Private API SDK for Python. Scrape, automate, and interact — full mobile signing, 50+ endpoints.

50+ Endpoints R/W Write Actions 2 Platforms 0 Key Needed
pip install tiktok-private-api

Quick Start

from tiktokflow import TikTokAPI

# Trial mode — no key needed, 10 requests/day
api = TikTokAPI()

# Get trending videos
feed = api.feed.for_you(count=5)
for video in feed["aweme_list"]:
    print(video["desc"], video["statistics"]["digg_count"], "likes")

# Like a video
api.social.like(aweme_id=feed["aweme_list"][0]["aweme_id"])

# Search
results = api.search.videos("python", count=10)
# With full API key — unlimited requests
api = TikTokAPI(api_key="sk_your_key")

How It Works

Your IP connects to TikTok directly. The signing server only computes cryptographic headers — it never sees TikTok's responses or your data.

Your Code
api.feed.for_you()
SDK
POST /v1/sign
Signing Server
Gorgon+Argus+Ladon
TikTok
JSON response

Endpoints

Feed read

  • feed.for_you()
  • feed.following()
  • feed.user_posts()
  • feed.hashtag()
  • feed.music()

User read

  • user.info()
  • user.profile_self()
  • user.followers()
  • user.following()
  • user.search()

Video read

  • video.detail()
  • video.multi_detail()
  • video.my_posts()
  • video.favorites()
  • video.delete()

Social write

  • social.like() / unlike()
  • social.follow() / unfollow()
  • social.block() / unblock()

Comments write

  • comment.list()
  • comment.replies()
  • comment.publish()
  • comment.delete()
  • comment.like()

Search read

  • search.general()
  • search.users()
  • search.videos()
  • search.music()
  • search.hashtags()

DM read

  • dm.conversations()
  • dm.messages()
  • dm.unread_count()

Account write

  • passport.email_login()
  • passport.sms_login()
  • passport.register()
  • passport.logout()

Comparison

tiktok-private-api Official API Web scrapers
Endpoints 50+ ~10 5-10
Write actions Like, follow, comment, DM Post only None
Auth required No OAuth needed OAuth app + review No
Rate limits Mobile-grade (high) Strict quotas IP bans
Signing Full (Gorgon+Argus+Ladon+Guard) N/A None
Platforms Android + iOS N/A Browser
Anti-detection TLS impersonation N/A HTTP only

Configuration

api = TikTokAPI(
    api_key="sk_...",              # optional for trial
    platform="ios",                # or "android" (default)
    proxy="socks5://user:pass@host:1080",
    proxies=["socks5://..."],      # list for rotation
    proxy_rotate="round_robin",    # or "random"
    rate_limit=2.0,                # max req/sec
)

# Session persistence
api.device.save("session.json")

from tiktokflow.android import Device
device = Device.load("session.json")
api = TikTokAPI(api_key="sk_...", device=device)

Get Started

Trial mode works instantly. Full API keys for production use.