TikTok Live Scraper avatar

TikTok Live Scraper

Pricing

from $5.00 / 1,000 live result (status / room / discover)s

Go to Apify Store
TikTok Live Scraper

TikTok Live Scraper

Scrape TikTok LIVE: check whether a username is live, get room metadata with viewer count and stream URLs, follow the real-time chat and gifts feed, or discover creators live now. The mode is auto-detected, with no cookies or login.

Pricing

from $5.00 / 1,000 live result (status / room / discover)s

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

33

Total users

8

Monthly active users

15 days ago

Last modified

Share

What is TikTok Live Scraper?

TikTok Live Scraper returns TikTok LIVE data for creators and rooms you name: whether a username is live right now, the live room's title, viewer counts, start time, hashtag and stream URLs, a timed capture of the real-time chat and gift feed, or a list of rooms broadcasting now in a category. Each dataset row has a recordType and a status, so brand monitors, live-shopping analysts, talent scouts and AI agents can branch on the result without parsing pages. No cookies or TikTok login are needed.

Why teams use this TikTok LIVE scraper

  • Four LIVE jobs, one input. Fill usernames, liveRoomUrls, chatFeedUsername or discoverCategory, and the Actor picks the matching mode.
  • A clear answer per creator. Live-status rows carry isLive plus room details when the creator is broadcasting.
  • Real-time chat and gifts. Chat capture listens to a live room for chatCaptureSeconds and saves one row per chat, gift, join or like you choose in chatEventTypes.
  • Labeled outcomes. Offline creators, rooms that end mid-capture and empty discovery pages come back as rows with a status and a human-readable note.
  • Agent-friendly rows. Flat, consistently named fields that an MCP client can read straight from the dataset.

Best fit for this Actor

  • Best fit for checking a list of creators for live status, pulling a live room's metadata, or recording a live session's chat and gifts while it airs.
  • Use it on a short schedule when you want to know when creators go live.
  • For a dedicated watchlist that alerts on changes, continue with TikTok Live Status Monitor.
  • For follower counts, bio and engagement of the same creators, pass the handles to TikTok Profile Scraper — Followers, Bio & Score.

What people and AI agents ask this Actor to do

Is this creator live on TikTok right now? Record the chat and gifts from this live stream for five minutes. Get the room title and viewer count for this live link. Which gaming creators are live in the US right now?

RequestInput to send
Live status for a list of creators{"usernames": ["stoolpresidente", "khaby.lame"]}
Live room details{"liveRoomUrls": ["https://www.tiktok.com/@stoolpresidente/live"]}
Chat and gifts for five minutes{"chatFeedUsername": "stoolpresidente", "chatCaptureSeconds": 300}
Rooms live now in a category{"discoverCategory": "gaming", "discoverRegion": "US", "maxDiscoverResults": 50}

Example workflow: from a creator list to a live-shopping report

A live-commerce manager starts with the handles of eight partner creators in usernames and schedules the Actor every ten minutes during launch week. Each run returns a live-status row per creator. When a row shows isLive as true, her automation starts a second run with chatFeedUsername set to that creator and chatEventTypes set to chat and gift. She exports the chat rows, compares gift totals across creators, and feeds the comment text into an LLM summary of what buyers asked about the product.

Input

Fill one of the four mode fields. The others stay empty.

{
"usernames": ["stoolpresidente", "khaby.lame"],
"maxResults": 100
}
FieldTypeWhat it controls
usernamesarrayTikTok handles or profile URLs for live-status checks
liveRoomUrlsarrayLive room URLs such as tiktok.com/@user/live, or numeric room IDs
chatFeedUsernamestringOne handle whose live chat and gifts to capture
chatCaptureSecondsintegerListening time for chat capture. Default 60, range 10 to 1800
chatEventTypesarraychat, gift, member, like, social. Default ["chat", "gift"]
discoverCategorystringgaming, lifestyle, music, fashion, food, sports, education, entertainment, beauty or comedy
discoverRegionstringTwo-letter country code for discovery. Default US
maxDiscoverResultsintegerCap on discovered rooms. Default 50
maxResultsintegerCap on live-status and room-details rows. Default 100

Output

Every row has recordType (live-status, room-details, chat-event or discover-live), status and scrapedAt.

FieldWhat it contains
recordType, status, note, sourceMode, outcome label, readable detail and data route
username, userId, secUid, nickname, verified, avatarUrl, followerCountCreator identity
isLive, roomId, roomTitle, coverUrl, liveUrlLive room identity
viewerCount, totalEnterCount, startedAt, hashTagAudience and timing while live
isPaidEvent, isSubOnly, streamUrlsRoom access flags and stream URLs
chatEventType, chatText, chatTimestamp, fromUsername, fromUserId, fromNicknameChat feed rows
giftName, giftCount, giftDiamondValue, giftTotalDiamondsGift rows
discoverRank, discoverCategoryPosition and category for discovered rooms

A live-status row for a creator who is offline at check time:

{
"recordType": "live-status",
"status": "ok",
"isLive": false,
"username": "stoolpresidente",
"userId": null,
"secUid": null,
"nickname": null,
"verified": false,
"avatarUrl": null,
"followerCount": null,
"roomId": null,
"roomTitle": null,
"coverUrl": null,
"viewerCount": null,
"totalEnterCount": null,
"startedAt": null,
"hashTag": null,
"isPaidEvent": false,
"isSubOnly": false,
"liveUrl": null,
"streamUrls": null,
"scrapedAt": "2026-10-02T15:02:01.057Z"
}

When the creator is broadcasting, the same row fills isLive, roomId, roomTitle, viewerCount, startedAt and liveUrl. Status labels such as not_live, not_found, chat_disconnected and discover_blocked tell you exactly what happened for each input.

Pricing

This Actor uses Pay per event with Apify platform usage included in the event price. You pay one Actor Start event per run, one Live result (status / room / discover) event per live-status check, room-details row or discovered room, and one Chat / gift / join / like event captured event per chat-feed row. The live Pricing tab on this page shows the current event prices.

Worked example: a scheduled check of eight creators costs eight Live result events plus one Actor Start event. A chat capture costs one Chat event per saved chat or gift row, so a busy stream with a long chatCaptureSeconds produces more rows than a quiet one; keep chatEventTypes to chat and gift for the highest-signal rows. Set a maximum charge per run in the run options to cap spend.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~tiktok-live-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"usernames": ["stoolpresidente", "khaby.lame"]}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/tiktok-live-scraper").call(run_input={
"usernames": ["stoolpresidente", "khaby.lame"],
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["username"], row["isLive"], row.get("viewerCount"))

Use with AI agents (MCP)

Connect the Actor through Apify MCP in Claude, ChatGPT or Cursor and ask:

Check whether these five TikTok creators are live right now. For anyone live, give me the room title, viewer count and live link.

The agent sends the handles in usernames, reads rows back with get-dataset-items, and answers from isLive, roomTitle, viewerCount and liveUrl. It should read status and note before concluding, and cite scrapedAt because live data is a point-in-time snapshot. Chat capture is one creator per run and bills per saved row, so agents should set a short chatCaptureSeconds unless the user asks for a long session.

Best results

Starting situationHelpful actionExpected outcome
You track a creator rosterPut all handles in usernames and schedule short intervalsA live or offline row per creator each run
A creator just went liveStart a chat capture with chatFeedUsername while the room is on airChat and gift rows for the session
You need joins and likes tooAdd member and like to chatEventTypesFuller engagement rows
Discovery returns a discover_blocked rowTry another discoverRegion or discoverCategory on the next runA fresh discovery list
Viewer trends over a streamSchedule liveRoomUrls every few minutes during the broadcastA time series of viewerCount

Builder's note

I built the four LIVE jobs behind one input because people usually move through them in order: check who is live, open the room, then record the chat. I designed every outcome, including offline creators and rooms that close mid-capture, to arrive as a labeled row so schedules and agents can branch on status instead of guessing why a dataset is short.

FAQ

Can I capture chat from a creator who is offline?

Chat exists only while a room is broadcasting. Start the capture while the creator is live; an offline creator returns a chat_disconnected row with a note.

Does it return past LIVE replays?

It works with rooms that are on air at run time. For recorded TikTok videos, use a TikTok video Actor instead.

Can I capture several creators' chat at once?

Chat capture follows one creator per run. Start one run per creator, in parallel if needed.

Responsible use

This Actor reads public TikTok LIVE information without a login. Chat rows contain usernames and comments, which are personal data under laws such as the GDPR and CCPA; collect them only with a lawful basis, keep them no longer than needed and respect TikTok's terms of service. TikTok is a trademark of its owner, and this independent Actor is not affiliated with it. For questions, open a ticket in the Issues tab.