Reference

TikTok Live API Events Reference

Complete reference for all real-time events available through the TikTok Live API. Every event includes user data, timestamps, and rich metadata.

tiktok.com/@
Stream offlineEnter a live TikTok username above
Connecting to @ live
Offline
Live Stream Monitor
@
<50msLatency
99.9%Uptime
FreeTo Test

Event Format

Every WebSocket message follows this structure:

{
  "event": "chat",
  "data": {
    "user": { "uniqueId": "viewer42", "nickname": "Viewer", "profilePictureUrl": "..." },
    "comment": "Hello!",
    "userId": "123456789",
    ...
  }
}

chat

Fired when a viewer sends a chat message in the live stream. This is the most common event.

Very frequent — fires for every chat message.

Data Fields

FieldTypeDescription
userObjectSender info: uniqueId, nickname, profilePictureUrl, badges
commentStringThe chat message text
userIdStringNumeric TikTok user ID

Example

{
  "event": "chat",
  "data": {
    "user": {
      "uniqueId": "viewer42",
      "nickname": "Viewer 42"
    },
    "comment": "Hello everyone!",
    "userId": "7123456789"
  }
}

gift

Fired when a viewer sends a virtual gift. Includes the gift name, diamond value, and whether it is a streak gift.

Moderate — depends on stream engagement.

Data Fields

FieldTypeDescription
userObjectSender info
giftNameStringName of the gift (e.g., "Rose", "Lion")
giftIdNumberNumeric gift identifier
diamondCountNumberDiamond value of the gift
repeatCountNumberNumber of times this gift was sent in a streak
repeatEndBooleanTrue when the streak has ended

Example

{
  "event": "gift",
  "data": {
    "user": {
      "uniqueId": "big_fan"
    },
    "giftName": "Rose",
    "giftId": 5655,
    "diamondCount": 1,
    "repeatCount": 5,
    "repeatEnd": true
  }
}

like

Fired when a viewer taps the like button. Includes the total accumulated like count.

Very frequent — viewers can tap rapidly.

Data Fields

FieldTypeDescription
userObjectUser who liked
likeCountNumberNumber of likes from this event
totalLikeCountNumberTotal accumulated likes for the stream

Example

{
  "event": "like",
  "data": {
    "user": {
      "uniqueId": "liker1"
    },
    "likeCount": 15,
    "totalLikeCount": 12500
  }
}

member

Fired when a viewer joins the live stream room.

Moderate — fires for visible joins.

Data Fields

FieldTypeDescription
userObjectUser who joined: uniqueId, nickname, profilePictureUrl

Example

{
  "event": "member",
  "data": {
    "user": {
      "uniqueId": "new_viewer",
      "nickname": "New Viewer"
    }
  }
}

follow

Fired when a viewer follows the streamer during the live stream.

Low — depends on viewer engagement.

Data Fields

FieldTypeDescription
userObjectUser who followed

Example

{
  "event": "follow",
  "data": {
    "user": {
      "uniqueId": "new_follower",
      "nickname": "New Follower"
    }
  }
}

share

Fired when a viewer shares the live stream with others.

Low — occasional sharing events.

Data Fields

FieldTypeDescription
userObjectUser who shared

Example

{
  "event": "share",
  "data": {
    "user": {
      "uniqueId": "sharer",
      "nickname": "Sharer"
    }
  }
}

roomUserSeq

Periodic viewer count update. This is the primary way to track real-time viewer numbers.

Periodic — every few seconds.

Data Fields

FieldTypeDescription
viewerCountNumberCurrent number of live viewers
topViewersArrayTop viewers ranked by engagement

Example

{
  "event": "roomUserSeq",
  "data": {
    "viewerCount": 1234,
    "topViewers": [
      {
        "user": {
          "uniqueId": "top_fan"
        },
        "coinCount": 5000
      }
    ]
  }
}

subscribe

Fired when a viewer subscribes to the streamer.

Rare — subscription events.

Data Fields

FieldTypeDescription
userObjectUser who subscribed

Example

{
  "event": "subscribe",
  "data": {
    "user": {
      "uniqueId": "subscriber1"
    }
  }
}

linkMicBattle

Fired when a TikTok Live battle starts, updates, or ends. Includes battle scores and participants.

During battles — start/update/end events.

Data Fields

FieldTypeDescription
battleUsersArrayBattle participants with scores
typeNumberBattle event type (1=start, 2=update, 3=end)

Example

{
  "event": "linkMicBattle",
  "data": {
    "type": 1,
    "battleUsers": [
      {
        "uniqueId": "streamer1"
      },
      {
        "uniqueId": "streamer2"
      }
    ]
  }
}

roomPin

Fired when the streamer pins a message in the live chat.

Rare — only when streamer pins.

Data Fields

FieldTypeDescription
pinnedMessageObjectThe pinned message content and sender info

Example

{
  "event": "roomPin",
  "data": {
    "pinnedMessage": {
      "text": "Welcome to my stream!",
      "user": {
        "uniqueId": "streamer"
      }
    }
  }
}

All Events — Quick Reference

EventFired WhenKey Data
chatViewer sends chat messageuser, comment
giftViewer sends a giftgiftName, diamondCount, repeatCount
likeViewer likes the streamlikeCount, totalLikeCount
memberViewer joins the streamuser
followViewer follows streameruser
shareViewer shares streamuser
roomUserSeqViewer count updateviewerCount, topViewers
subscribeViewer subscribesuser
linkMicBattleBattle status changebattleUsers, battleStatus
roomPinMessage pinned in chatpinnedMessage