Skip to content

Event catalog

Every TikTokLive event, the Webcast message it carries, what it means, and the page that documents it.

Register a handler with the @client.on(Event) decorator or with client.add_listener(Event, handler). Both take the event class, and the handler receives one instance of it. A handler can be a coroutine or a plain function.

from TikTokLive import TikTokLiveClient
from TikTokLive.events import CommentEvent, LikeEvent
client: TikTokLiveClient = TikTokLiveClient(unique_id="@isaackogz")
@client.on(CommentEvent)
async def on_comment(event: CommentEvent) -> None:
if event.user is None:
return
print(f"{event.user.unique_id}: {event.content}")
def on_like(event: LikeEvent) -> None:
print(f"+{event.count} likes, {event.total} in total")
client.add_listener(LikeEvent, on_like)
if __name__ == "__main__":
client.run()

This checkout defines 74 events: 62 proto events and 12 custom events. A proto event subclasses its TikTokLiveProto v3 message, so its fields are the message’s fields; the tables below name the message, and each name on the grouped pages links to the schema reference for the full field list. A custom event is created by the client: ConnectEvent and DisconnectEvent from the connection, WebsocketResponseEvent and UnknownEvent from the raw traffic, and the other eight from a proto event whose payload matches a marker. Every class is importable from TikTokLive.events.

A derived event is emitted in addition to its source, so a follow arrives as FollowEvent and then as SocialEvent, and a stream end as LiveEndEvent and then as ControlEvent; listen to one or the other to avoid counting it twice. Every message is also emitted as WebsocketResponseEvent before its own event. Register listeners before connecting: the first signed response can carry messages, and they are emitted right after ConnectEvent unless process_connect_events=False. See connection lifecycle.

Nested messages such as event.user and event.gift are Optional and can be absent, so check for None before reading them. IDs are int, timestamps are int milliseconds or seconds as the schema says, and a message defined in the schema is not necessarily sent in every room or region.

The client’s own lifecycle and the raw WebSocket traffic. Details: Control events.

EventMessageDescription
ConnectEventcustomThe client connected to the room and parsed the first signed response
DisconnectEventcustomThe WebSocket loop exited and the client disconnected from the room
WebsocketResponseEventcustomAny Webcast message was received (carries the raw fetch result it came from)
UnknownEventcustomA Webcast message arrived that TikTokLive has no event class for yet, useful for debugging

Comments, joins, viewer counts, likes, follows, shares, questions, and emotes. Details: Chat and audience.

EventMessageDescription
CommentEventWebcastChatMessageA viewer sent a chat comment
JoinEventWebcastMemberMessageA viewer joined the livestream
RoomUserSeqEventWebcastRoomUserSeqMessageCurrent viewer count information
LikeEventWebcastLikeMessageThe stream received likes
SocialEventWebcastSocialMessageA viewer shared or followed the host (also surfaced as FollowEvent / ShareEvent custom events)
FollowEventcustomA viewer followed the streamer
ShareEventcustomA viewer shared the livestream
QuestionNewEventWebcastQuestionNewMessageSomeone asked a new question via the question feature
EmoteChatEventWebcastEmoteChatMessageA custom emote was sent in chat

Gifts, streaks, goals, and the gift panel. Details: Gifts and goals.

EventMessageDescription
GiftEventWebcastGiftMessageA gift was sent (see Gift handling below)
GoalUpdateEventWebcastGoalUpdateMessageSubscriber/follow goal updated
BoostCardEventWebcastBoostCardMessageBoost cards delivered to the room
GiftBroadcastEventWebcastGiftBroadcastMessageBig gift broadcast notice across rooms
GiftDynamicRestrictionEventWebcastGiftDynamicRestrictionMessageDynamic gift restriction update
GiftPanelUpdateEventWebcastGiftPanelUpdateMessageGift panel content update
GiftPromptEventWebcastGiftPromptMessageAnti-addiction / spending-limit prompt before gifting

Battles, Power-Ups, and link-mic (cohost and multi-guest) signalling. Details: Battles and cohosting.

EventMessageDescription
LinkMicBattleEventWebcastLinkMicBattleA battle was started
LinkMicArmiesEventWebcastLinkMicArmiesA battle user received points
LinkMicBattleItemCardEventWebcastLinkMicBattleItemCardA battle Power-Up card was obtained, used, or awarded
LinkMicBattlePunishFinishEventWebcastLinkMicBattlePunishFinishA battle’s punishment phase ended
LinkmicBattleTaskEventWebcastLinkmicBattleTaskMessageA battle task started, progressed, settled, or paid out its reward
LinkMicFanTicketMethodEventWebcastLinkMicFanTicketMethodFan-ticket totals for a link-mic session were announced
LinkMicMethodEventWebcastLinkMicMethodLink-mic signalling between cohosts (invite, reply, channel setup, and RTC details)
LinkEventWebcastLinkMessageGeneric link-mic event
LinkLayerEventWebcastLinkLayerMessageLink-mic layer/visibility change
LinkMicLayoutStateEventWebcastLinkMicLayoutStateMessageLink-mic layout state update
LinkStateEventWebcastLinkStateMessageLink-mic channel state update
SpeakerEventWebcastSpeakerMessageActive speaker update (link-mic audio)

Barrages, super fans, envelopes, and subscriptions. Details: Subscriptions and super fans.

EventMessageDescription
BarrageEventWebcastBarrageMessageA “VIP” viewer (based on gifting level) joins the chat room
SuperFanEventcustomA viewer became a super fan of the streamer
SuperFanJoinEventcustomAn existing super fan joined the livestream
EnvelopeEventWebcastEnvelopeMessageA treasure chest / envelope was sent
SuperFanBoxEventcustomA super-fan envelope (gift box) was delivered
SubNotifyEventWebcastSubNotifyMessageSubscription notification (subscribe / renew / gift sub)
SubPinEventEventWebcastSubPinEventMessageSubscription pin card action

Announcements, captions, polls, pins, banners, and other presentation messages. Details: Room messages and display.

EventMessageDescription
LiveIntroEventWebcastLiveIntroMessageLive-intro message appears
SystemEventWebcastSystemMessageA plain-text system message from TikTok
RoomEventWebcastRoomMessageBroadcast message to all room users (e.g. “Welcome to TikTok LIVE!”)
CaptionEventWebcastCaptionMessageAuto-caption update from the host’s audio
InRoomBannerEventWebcastInRoomBannerMessageIn-room banner notice
PollEventWebcastPollMessageThe creator launched / updated a poll
RoomPinEventWebcastRoomPinMessageA message was pinned
BottomEventWebcastBottomMessageBottom-of-screen notice (often a punishment or violation banner)
CapsuleEventWebcastCapsuleMessageIn-room capsule / promotional pill notice
GuideEventWebcastGuideMessageIn-room guide / tooltip prompt
MarqueeAnnouncementEventWebcastMarqueeAnnouncementMessageMarquee announcement scrolling across the room
NoticeEventWebcastNoticeMessageGeneric notice / system tip in the room
RoomNotifyEventWebcastRoomNotifyMessageRoom-wide notification banner
ToastEventWebcastToastMessageTransient toast notification
ViewerPicksUpdateEventWebcastViewerPicksUpdateMessageViewer-picks (audience-driven prompt) update

Hourly ranks, leaderboard entrances, and rank text. Details: Rankings.

EventMessageDescription
HourlyRankRewardEventWebcastHourlyRankRewardMessageHourly rank reward delivered
RankUpdateEventWebcastRankUpdateMessageRoom ranking entrance updated (rank types, current rank, and tabs)
RankTextEventWebcastRankTextMessageGift count made a viewer enter the top three
GameRankNotifyEventWebcastGameRankNotifyMessageGame-rank notification

Deletions, access control, verification, and warnings. Details: Moderation and access.

EventMessageDescription
ImDeleteEventWebcastImDeleteMessageA viewer’s messages were deleted by a moderator
UnauthorizedMemberEventWebcastUnauthorizedMemberMessageAn unauthorized viewer entered the room (nickname and entry text only, no user object)
MessageDetectEventWebcastMsgDetectMessageMessage-delivery probe carrying detection flags and timing information
RoomVerifyEventWebcastRoomVerifyMessageRoom verification action (e.g. forced verify / close)
AccessControlEventWebcastAccessControlMessageAccess-control update for the room (e.g. CAPTCHA challenge issued to a viewer)
AccessRecallEventWebcastAccessRecallMessageAccess restriction lifted / recalled for a viewer
PerceptionEventWebcastPerceptionMessagePerception dialog (warning / violation surfaced to a viewer)

Live shopping, live games, and partnership campaigns. Details: Games, commerce, and partnerships.

EventMessageDescription
OecLiveShoppingEventWebcastOecLiveShoppingMessageLive-shopping signal
LiveGameIntroEventWebcastLiveGameIntroMessageLive-game intro message
PartnershipDropsUpdateEventWebcastPartnershipDropsUpdateMessagePartnership drops campaign update
PartnershipGameOfflineEventWebcastPartnershipGameOfflineMessagePartnership game taken offline
PartnershipPunishEventWebcastPartnershipPunishMessagePartnership punishment notice

Stream start, pause, resume, end, and suspension. Details: Stream control.

EventMessageDescription
ControlEventWebcastControlMessageStream action (e.g. start, end, pause, unpause)
LiveEndEventcustomThe livestream ended or was suspended
LivePauseEventcustomThe livestream was paused
LiveUnpauseEventcustomA paused livestream resumed