One-line migration

Move from TikAPI to Tik.Tools in 30 seconds

Same endpoints. Same response shape. Real-time WebSocket events on top. Swap the base URL, keep your code.

Get free API key
Live preview

Same TikAPI shape, served from api.tik.tools

The iframe below is the literal HTML example file - it pulls live channels from /api/live/top-channels and streams events via WebSocket. Copy it, save as .html, double-click. Identical output.

live-events.htmlRUNNING
Preview loads once visible.
Node / Python / HTML / LLM prompt
1

Change one line

Point your existing TikAPI base URL at https://api.tik.tools. The path stays the same.

// Before
const BASE = 'https://api.tikapi.io';

// After
const BASE = 'https://api.tik.tools';
2

Use your Tik.Tools API key

Get one free at tik.tools/login. Pass it as ?apiKey= or X-API-Key: header - both work.

fetch(`${BASE}/live/check?username=aljazeeraenglish&apiKey=tk_xxxx`)
3

That's it

Your existing handlers keep working. Every migration response carries a _tiktool hint pointing at the native endpoint - switch when you're ready for faster + richer data.

Endpoint map

Every TikAPI live-data call works against Tik.Tools

VOD, profile metadata, and search are TikAPI-only - we are a TikTok LIVE specialist. Everything below is a drop-in.

TikAPI endpointTik.Tools (compat)Native equivalentTier
GET /live/check?username=XGET /live/check?username=XPOST /webcast/room_idFree
GET /live/check/list?usernames=A,BGET /live/check/list?usernames=A,BPOST /webcast/bulk_live_checkBasic+
GET /live/info?room_id=XGET /live/info?room_id=XPOST /webcast/room_infoFree
GET /live/info?username=XGET /live/info?username=XPOST /webcast/room_id + /webcast/room_infoFree
GET /live/details/:room_idGET /live/details/:room_idPOST /webcast/room_infoFree
POST /live/chatPOST /live/chatPOST /webcast/chatBasic+
GET /users/:name/videosGET /users/:name/videosreturns empty + live statusFree
GET /user/info?username=XGET /user/info?username=Xreturns user + live statusFree
GET /search/videos | /search/usersGET /search/*returns empty + noteFree
GET /hashtag/:tag | /trendingGET /hashtag/* | /trendingreturns empty + noteFree
GET /video/list | /video/:idGET /video/*returns empty + noteFree
Bonus (not in TikAPI): real-time WS events for chat / gifts / likes / joins / battleswss://api.tik.toolsFree (15 conn)
Bonus: AI live captions + translation (60+ languages)POST /webcast/captionsBasic+
Bonus: creator + gifter leaderboards (28 regions)/api/leaderboards/*Free
VOD endpoints don't crash your code: /users/x/videos, /search/*, /hashtag/*, /video/*, /trending, /comment/* all return HTTP 200 with empty arrays + a _tiktool note. The user-shaped endpoints also include live_status so your migration script keeps shipping. Keep TikAPI for actual VOD data; we cover everything LIVE.
Response shape

Identical JSON, plus a migration hint

Every compat response carries a _tiktool envelope so you know exactly which native endpoint to call when you're ready to switch.

GET https://api.tik.tools/live/check?username=aljazeeraenglish&apiKey=tk_xxxx

{
  "username": "aljazeeraenglish",
  "is_live": true,
  "live": true,
  "room_id": "7643424275830934286",
  "roomId": "7643424275830934286",
  "_tiktool": {
    "native_endpoint": "POST /webcast/room_id { unique_id: 'aljazeeraenglish' }",
    "note": "Migration shim. Switching to the native endpoint above unlocks lower latency + richer fields.",
    "upgrade": "https://tik.tools/pricing",
    "guide": "https://tik.tools/guides/migrate-from-tikapi"
  }
}

Free tier is enough to migrate + test

2,500 REST requests/day. 15 concurrent WebSocket connections. No credit card. Upgrade only when you ship.