TikTok LIVE API

There is no official TikTok LIVE API. TikTool is a managed alternative - connect to any live stream and receive real-time chat, gifts, viewers via WebSocket. Signature server, CAPTCHA solving, and Public Broadcast Telemetry rotation included. No reverse engineering needed.

Live video player
Stream offlineEnter a live TikTok username above
Live events monitor
<50msLatency
99.9%Uptime
FreeCommunity Tier

What Is the TikTok LIVE API?

TikTok does not offer a public API for live stream data like chat, gifts, or viewer counts. The TikTok Business API only covers ads and shop analytics. To access real-time LIVE data, developers use third-party APIs.

The open-source libraries tiktok-live-connector (Node.js) and TikTokLive (Python) are MIT-licensed and free to use. They delegate TikTok signing to a backend - the default is Euler Stream, the paid signing service built by the same team that maintains those libraries. Euler Stream has its own free tier and paid plans for higher volumes.

TikTool is an independent alternative with its own signing infrastructure. It's a fully managed API where signature generation, CAPTCHA solving, and Public Broadcast Telemetry rotation are all included. One WebSocket connection delivers 18+ event types - chat, gifts, likes, follows, viewers, battles, and more. Official SDKs for Node.js and Python. Free Community tier, no credit card required.

How Does the TikTok LIVE API Work?

TikTool sits between your application and TikTok's live streaming infrastructure. Here's the architecture:

1

Your App Connects

Your app opens a WebSocket to wss://api.tik.tools with a TikTok username and your API key.

2

TikTool Resolves

TikTool resolves the room ID, handles authentication, solves challenges, and joins the live stream.

3

Events Flow

Real-time events (chat, gifts, viewers, etc.) stream to your app as clean JSON - parsed, structured, and typed.

You never deal with TikTok's protocol directly. When TikTok changes their internal systems (which happens frequently), TikTool adapts - your code keeps working unchanged.

Quick Start - Node.js / TypeScript

Install the official SDK from npm:

npm install tiktok-live-api

Connect to a live stream and receive events:

import { TikTokLive } from 'tiktok-live-api';

const client = new TikTokLive('streamer_username', {
  apiKey: 'YOUR_API_KEY' // Get free key → https://tik.tools
});

client.on('chat', (event) => {
  console.log(`${event.user.uniqueId}: ${event.comment}`);
});

client.on('gift', (event) => {
  console.log(`🎁 ${event.user.uniqueId} sent ${event.giftName} (${event.diamondCount} 💎)`);
});

client.on('roomUserSeq', (event) => {
  console.log(`👀 ${event.viewerCount} viewers watching`);
});

client.connect();

Full TypeScript support - every event type, field, and parameter is fully typed with autocompletion in your IDE. Read the complete Node.js guide →

Quick Start - Python

Install from PyPI:

pip install tiktok-live-api

Connect and receive events:

import asyncio, websockets, json

async def connect():
    uri = "wss://api.tik.tools?uniqueId=streamer_username&apiKey=YOUR_API_KEY"
    async with websockets.connect(uri) as ws:
        async for message in ws:
            event = json.loads(message)
            if event["event"] == "chat":
                user = event["data"]["user"]["uniqueId"]
                comment = event["data"]["comment"]
                print(f"{user}: {comment}")
            elif event["event"] == "gift":
                user = event["data"]["user"]["uniqueId"]
                gift = event["data"]["giftName"]
                print(f"🎁 {user} sent {gift}")

asyncio.run(connect())

Read the complete Python guide →

Quick Start - Raw WebSocket (Any Language)

Any language with WebSocket support works - Go, Rust, Java, C#, Ruby, PHP, Dart, Kotlin, Swift. Just connect to:

wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEY

Every message is a JSON object with event and data fields. Clean, structured data - no binary parsing needed. Full WebSocket API reference →

All Event Types

The TikTok LIVE API streams 18+ real-time events from any live stream:

chat

Chat message from a viewer. Includes user info, comment text, emotes, and badges.

gift

Virtual gift sent by a viewer. Includes gift name, diamond value, repeat count, and combo status.

like

A viewer liked the stream. Includes per-event count and total likes.

member

A viewer joined the live room. Fires when users enter the stream.

follow

A viewer followed the streamer during the live stream.

share

A viewer shared the live stream with their friends.

subscribe

A viewer subscribed to the streamer.

roomUserSeq

Viewer count update. Current viewer count and top viewers list.

battle

Battle/LinkMic event. Battle status, teams, scores, and participants.

battleArmies

Battle armies update with team scores and participant rankings.

roomPin

A chat message was pinned or starred by the streamer.

caption

AI-powered live caption. Real-time speech-to-text with translation support.

envelope

Treasure chest or envelope event in the stream.

emote

Custom emote sent in chat by a viewer.

liveIntro

Stream intro update - title and description changes.

streamEnd

The live stream has ended. Includes the reason code.

connected

Successfully connected to the TikTok live stream.

error

Connection error occurred. Includes error details.

See full event reference with example payloads →

What Can You Build?

🤖

Chat Assistants

Build automated chat assistants that respond to viewer messages, commands, and gifts in real-time.

📊

Analytics

Track viewer counts, engagement rates, gift revenue, and chat activity across streams.

🎮

Interactive Games

Let viewers control game elements with gifts, chat commands, and likes.

🎬

Stream Overlays

Create OBS/Streamlabs overlays showing chat, gift alerts, and viewer stats.

🗣️

Live Captions

AI-powered speech-to-text transcription and real-time translation in 50+ languages.

📱

Mobile Apps

Build mobile apps that monitor and interact with TikTok LIVE streams.

See more use cases →

TikTool vs Euler Stream vs tiktok-live-connector

The open-source tiktok-live-connector (Node.js) and TikTokLive (Python) libraries are maintained by the same team that runs Euler Stream. Together they form a well-supported ecosystem with MIT-licensed clients and a managed signing backend. TikTool is an independent managed alternative with its own signing infrastructure and a different feature focus.

FeatureTikToolTikTokLive (Python)tiktok-live-connectorEuler Stream
Managed service✓ 99.9% uptimeSelf-hosted clientSelf-hosted client✓ Managed
Node.js SDK✓ Official✓ Officialeulerstream
Python SDK✓ Official✓ Official✓ via TikTokLive
AI Live Captions✓ Speech-to-text
Unreal Engine plugin
Gifter intel (LTV, archetypes)
Live leaderboards✓ Real-time
Battle history + timeline✓ Per-match
League rankings✓ Diamond Rush
Real-time alerts✓ Discord + Telegram
Sniper Gap (live battle tracker)
Agency CRM + watchlists
Public profile pages (creator + gifter)✓ Indexed
Free tier✓ 2,500 req/day✓ MIT-licensed✓ MIT-licensed✓ 1,000 req/day
WebSocket API✓ Any languagePython onlyNode.js only
CAPTCHA handling✓ Built-inVia signing backendVia signing backend✓ Built-in

See the full comparison →

Pricing & Free Tier

Start building with the TikTok LIVE API for free. No credit card required.

TierWebSocketRESTPrice
Community15 connections2,500/dayFree Community Tier
Pro50 connections75,000/day$15/week
Ultra250 connections300,000/day$45/week
Agency250 + Firehose300,000/day$119/week

Frequently Asked Questions

Is there a public API for live stream data?

Is the TikTok LIVE API free?

What programming languages does the TikTok LIVE API support?

How is TikTool different from open-source live stream libraries?

What data can I get from TikTok LIVE streams?

What is the latency?

Can I build a TikTok LIVE chat assistant?

How many streams can I monitor simultaneously?

How does TikTool compare to Euler Stream?

Is TikTool better than TikFinity for developers?

Can I use TikTok LIVE API for stream analytics?

Does the TikTok LIVE API work with OBS and Streamlabs?