TikTok Live Scraper
Pricing
from $5.00 / 1,000 live result (status / room / discover)s
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
Maintained by CommunityActor stats
0
Bookmarked
33
Total users
8
Monthly active users
15 days ago
Last modified
Categories
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,chatFeedUsernameordiscoverCategory, and the Actor picks the matching mode. - A clear answer per creator. Live-status rows carry
isLiveplus room details when the creator is broadcasting. - Real-time chat and gifts. Chat capture listens to a live room for
chatCaptureSecondsand saves one row per chat, gift, join or like you choose inchatEventTypes. - Labeled outcomes. Offline creators, rooms that end mid-capture and empty discovery pages come back as rows with a
statusand a human-readablenote. - 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?
| Request | Input 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}
| Field | Type | What it controls |
|---|---|---|
usernames | array | TikTok handles or profile URLs for live-status checks |
liveRoomUrls | array | Live room URLs such as tiktok.com/@user/live, or numeric room IDs |
chatFeedUsername | string | One handle whose live chat and gifts to capture |
chatCaptureSeconds | integer | Listening time for chat capture. Default 60, range 10 to 1800 |
chatEventTypes | array | chat, gift, member, like, social. Default ["chat", "gift"] |
discoverCategory | string | gaming, lifestyle, music, fashion, food, sports, education, entertainment, beauty or comedy |
discoverRegion | string | Two-letter country code for discovery. Default US |
maxDiscoverResults | integer | Cap on discovered rooms. Default 50 |
maxResults | integer | Cap 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.
| Field | What it contains |
|---|---|
recordType, status, note, source | Mode, outcome label, readable detail and data route |
username, userId, secUid, nickname, verified, avatarUrl, followerCount | Creator identity |
isLive, roomId, roomTitle, coverUrl, liveUrl | Live room identity |
viewerCount, totalEnterCount, startedAt, hashTag | Audience and timing while live |
isPaidEvent, isSubOnly, streamUrls | Room access flags and stream URLs |
chatEventType, chatText, chatTimestamp, fromUsername, fromUserId, fromNickname | Chat feed rows |
giftName, giftCount, giftDiamondValue, giftTotalDiamonds | Gift rows |
discoverRank, discoverCategory | Position 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 ApifyClientclient = 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 situation | Helpful action | Expected outcome |
|---|---|---|
| You track a creator roster | Put all handles in usernames and schedule short intervals | A live or offline row per creator each run |
| A creator just went live | Start a chat capture with chatFeedUsername while the room is on air | Chat and gift rows for the session |
| You need joins and likes too | Add member and like to chatEventTypes | Fuller engagement rows |
Discovery returns a discover_blocked row | Try another discoverRegion or discoverCategory on the next run | A fresh discovery list |
| Viewer trends over a stream | Schedule liveRoomUrls every few minutes during the broadcast | A 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.