Documentation
Both portals are authenticated with a single x-api-key header. The key carries
its own expiry date, so there is nothing else to configure and no token to refresh.
Quick start
Add x-api-key to every request you make.
Try requests live in the explorer on either portal.
Authentication
There is no login step. Your key is bound to the email address on your account and stops working the moment the subscription expires.
| Header | Value |
|---|---|
x-api-key |
Your key from My keys |
Content-Type |
application/json |
The quickest way to try a request is the explorer on either portal: paste your key into the API Authentication box and every endpoint becomes callable from the page.
Base URLs
https://mobile-api.tikapis.com
Android, iOS and Windows clients across Global, China and Default regions.
Open explorerhttps://web-api.tikapis.com
Browser and web clients: TikTok Web, TikTok Ads, CapCut Web and TikTok Music.
Open explorerEndpoint groups
What each group covers. The live explorers hold the full request and response schema for every endpoint.
Signing and decryption for the ByteDance mobile clients: X-Argus, X-Gorgon, X-Khronos and X-Ladon headers for both Global and China regions.
| POST | /algorithm/sign |
Generate the security headers for a request |
| POST | /algorithm/china/sign |
Same, for the China region |
| POST | /algorithm/generate-keypair |
Generate an ECDSA key pair |
| POST | /x-argus/decrypt |
Decrypt an X-Argus value |
| POST | /x-ladon/decrypt |
Decrypt an X-Ladon value |
| POST | /x-medusa/decrypt |
Decrypt an X-Medusa header |
| POST | /helios/encrypt |
Encrypt a Helios payload |
| POST | /helios/decrypt |
Decrypt a Helios payload |
Full account lifecycle: registration, login, verification codes and sessions.
| POST | /passport/register |
Email registration |
| POST | /passport/login |
Log in with a username or email |
| POST | /passport/email/signup |
Send an email verification code |
| POST | /passport/email/check_code |
Check an email code |
| POST | /passport/mobile/send_code |
Send an SMS code |
| POST | /passport/mobile/check_code |
Check an SMS code |
| POST | /passport/account_reset |
Look up an account for reset |
| POST | /passport/token/beat |
Keep a session token alive |
Profile reads and writes, social actions, video statistics and comments.
| POST | /user/info |
Get account info |
| POST | /user/profile |
Get a user profile |
| POST | /user/posts |
List a user's posts |
| POST | /user/followers/{user_id} |
List followers |
| POST | /user/follow/{user_id}/{sec_uid} |
Follow a user |
| POST | /user/edit-nickname |
Change the display name |
| POST | /like/{aweme_id} |
Like a video |
| POST | /comment/publish/{aweme_id} |
Publish a comment |
| POST | /stats/{aweme_id} |
Read video statistics |
Device registration and the mobile security SDK: seeds, tokens and reports.
| GET | /apps |
List every supported application |
| POST | /device_register |
Register a device, platform auto-detected |
| POST | /mssdk/get_seed |
Get an MSSDK seed |
| POST | /mssdk/get_token |
Get an MSSDK token |
| POST | /mssdk/ri_report |
Send a risk intelligence report |
Publish media with automatic media-type detection and CRC32 verification.
| POST | /share/video |
Upload a video |
| POST | /share/photo |
Upload a photo |
| POST | /share/story |
Share a story |
Signature generation for browser clients: X-Bogus, X-Gnarly and StrData.
| POST | /algorithm/signature |
Build a request signature |
| POST | /algorithm/x-bogus/decode |
Decode an X-Bogus value |
| POST | /algorithm/x-gnarly/decode |
Decode an X-Gnarly value |
| POST | /strData/encode |
Encode StrData |
| POST | /strData/decode |
Decode StrData |
| POST | /mssdk/info/encrypt |
Encrypt MssdkInfo |
| POST | /mssdk/info/decrypt |
Decrypt MssdkInfo |
Web login flows, including QR-code sign-in for TikTok Web.
| POST | /passport/login |
Log in with a username or email |
| POST | /passport/register |
Email registration |
| POST | /qrcode/get |
Get a login QR code |
| POST | /qrcode/check |
Poll a QR code for approval |
| POST | /passport/mobile/send_code |
Send an SMS code |
Automatic solving for slide (1105), 3D (1107) and whirl (1108) captchas.
| POST | /captcha/solve |
Solve a captcha challenge |
Error responses
Failures return an HTTP 4xx status with success: false and a machine-readable
code.
| HTTP | Code | Meaning | What to do |
|---|---|---|---|
| 401 | — | License expired | Renew your plan — the expiry is inside the key. |
| 401 | 4206 | Missing API key | Add the x-api-key header. |
| 400 | 4404 | Empty request body |
Send valid JSON, even if it is only {}.
|
Python SDK
Both portals ship helper code and configuration files you can download as a zip archive.